Escolhendo as Variáveis
Deslize para mostrar o menu
Ao trabalhar com muitas variáveis, muitas vezes não se sabe quais são relevantes. É possível treinar um modelo com todas elas, verificar quais variáveis não são úteis e, em seguida, treinar novamente utilizando apenas as mais impactantes.
Por que remover variáveis do modelo?
Adicionar uma variável não relacionada ao alvo introduz ruído e piora as previsões. Muitas variáveis inúteis acumulam ruído e reduzem ainda mais a qualidade do modelo.
Como saber se as variáveis são boas ou ruins?
OLS fornece testes estatísticos durante o treinamento. Cada variável recebe um resultado de teste t, exibido na tabela summary(), indicando se afeta significativamente o alvo.
123456789import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train an OLS object print(regression_model.summary()) #Get the summary
O que nos interessa é o valor-p de cada variável.
Em resumo, quanto menor o valor de p, maior a confiança de que a variável é relevante
Em estatística, define-se um nível de significância, geralmente 0,05. Se o p-valor de uma variável exceder esse limite, ela é considerada sem impacto relevante.
Na prática, p-valores um pouco acima de 0,05 ainda podem contribuir para o modelo. É mais seguro testar o modelo com e sem essa variável. Mas se o p-valor for muito alto (>0,4), pode-se removê-la com confiança.
O p-valor varia de 0 a 1, então quando falamos de p-valor baixo significa menor que 0,05 e p-valor alto geralmente significa maior que 0,3-0,5.
No nosso exemplo, obtivemos valores de p para a altura da mãe e para a constante de 0,087 e 0,051. Se removermos as variáveis com valor de p > 0,05, teremos o resultado abaixo (à esquerda).
Mesmo visualmente, podemos perceber que o modelo com constante (à direita) é melhor, portanto é preferível não removê-la do modelo.
Conjuntos de dados pequenos frequentemente produzem valores de p mais altos (0,05–0,2) mesmo para características relevantes. Os valores de p refletem confiança: com mais dados, torna-se mais fácil distinguir características realmente impactantes de ruídos.
Como remover características inadequadas?
Basta remover a coluna relacionada à característica de X_tilde. Isso pode ser feito com o seguinte código:
X_tilde = X_tilde.drop(___, axis=1)
Por exemplo, para remover as colunas 'const' e 'Mother', utilize:
X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)
E então crie um novo objeto OLS usando o X_tilde atualizado:
regression_model=sm.OLS(y, X_tilde)
1. Quais das variáveis você deve MANTER?
2. Escolha a afirmação INCORRETA.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo