Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Escolhendo as Variáveis | Regressão Linear Múltipla
Regressão Linear com Python

bookEscolhendo as Variáveis

Ao trabalhar com muitos atributos, frequentemente não se sabe quais são relevantes. É possível treinar um modelo com todos eles, verificar quais atributos são pouco úteis e, em seguida, treinar novamente utilizando apenas os mais impactantes.

Por que remover atributos do modelo?

Adicionar um atributo não relacionado ao alvo introduz ruído e piora as previsões. Muitos atributos inúteis acumulam ruído e reduzem ainda mais a qualidade do modelo.

Como saber se os atributos são bons ou ruins?

OLS fornece testes estatísticos durante o treinamento. Cada atributo recebe um resultado de teste t, exibido na tabela summary(), indicando se ele afeta significativamente o alvo.

123456789
import 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
copy

O que nos interessa é o valor-p para cada característica.

Em resumo, quanto menor o valor-p, maior a confiança de que a característica é impactante.

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. Porém, se o p-valor for muito alto (>0,4), pode-se removê-la com confiança.

Note
Nota

O p-valor varia de 0 a 1, portanto, 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 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, é possível perceber que o modelo com constante (à direita) é melhor, portanto, é preferível não removê-la do modelo.

Note
Nota

Conjuntos de dados pequenos frequentemente produzem valores de p mais altos (0,05–0,2) mesmo para variáveis relevantes. Os valores de p refletem o grau de confiança: com mais dados, torna-se mais fácil distinguir variáveis 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)

Em seguida, crie um novo objeto OLS utilizando 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.

question mark

Quais das variáveis você deve MANTER?

Select the correct answer

question mark

Escolha a afirmação INCORRETA.

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 5.26

bookEscolhendo as Variáveis

Deslize para mostrar o menu

Ao trabalhar com muitos atributos, frequentemente não se sabe quais são relevantes. É possível treinar um modelo com todos eles, verificar quais atributos são pouco úteis e, em seguida, treinar novamente utilizando apenas os mais impactantes.

Por que remover atributos do modelo?

Adicionar um atributo não relacionado ao alvo introduz ruído e piora as previsões. Muitos atributos inúteis acumulam ruído e reduzem ainda mais a qualidade do modelo.

Como saber se os atributos são bons ou ruins?

OLS fornece testes estatísticos durante o treinamento. Cada atributo recebe um resultado de teste t, exibido na tabela summary(), indicando se ele afeta significativamente o alvo.

123456789
import 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
copy

O que nos interessa é o valor-p para cada característica.

Em resumo, quanto menor o valor-p, maior a confiança de que a característica é impactante.

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. Porém, se o p-valor for muito alto (>0,4), pode-se removê-la com confiança.

Note
Nota

O p-valor varia de 0 a 1, portanto, 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 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, é possível perceber que o modelo com constante (à direita) é melhor, portanto, é preferível não removê-la do modelo.

Note
Nota

Conjuntos de dados pequenos frequentemente produzem valores de p mais altos (0,05–0,2) mesmo para variáveis relevantes. Os valores de p refletem o grau de confiança: com mais dados, torna-se mais fácil distinguir variáveis 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)

Em seguida, crie um novo objeto OLS utilizando 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.

question mark

Quais das variáveis você deve MANTER?

Select the correct answer

question mark

Escolha a afirmação INCORRETA.

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 4
some-alt