Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Choix des Variables | Régression Linéaire Multiple
Régression Linéaire Avec Python

bookChoix des Variables

Dans de nombreuses tâches, il se peut que vous disposiez de nombreuses variables dont vous ne savez pas si elles sont utiles ou non. Heureusement, vous pouvez entraîner un modèle avec toutes ces variables, observer lesquelles n'ont pas d'impact, puis réentraîner le modèle uniquement avec celles qui sont pertinentes.

Pourquoi supprimer des variables du modèle ?

Si vous ajoutez une variable au modèle qui n'a aucun lien avec la cible, cela introduira du bruit dans le modèle, ce qui dégradera la qualité de la prédiction. Lorsque vous avez de nombreuses variables inutiles, ce bruit s'accumule, rendant les performances du modèle de plus en plus mauvaises.

Comment savoir si les variables sont pertinentes ou non ?

Comme vous le savez déjà, lors de l'entraînement, la classe OLS calcule également des informations statistiques. Parmi d'autres analyses, elle effectue un test t pour déterminer si chaque variable a un impact significatif sur la cible. Les résultats de ce test se trouvent dans le tableau summary() comme illustré ci-dessous :

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

Ce qui nous intéresse, c'est la valeur p pour chaque variable.

En résumé, plus la valeur p est faible, plus la confiance dans l'impact de la variable est élevée.

En statistique, il est nécessaire de définir le seuil de la p-value, appelé niveau de signification. Il est généralement fixé à 0,05, et dès que la p-value dépasse ce niveau de signification, la variable est considérée comme non significative.

Cependant, en pratique, les variables ayant une p-value légèrement supérieure à 0,05 peuvent également améliorer le modèle. Il est donc préférable de tester le modèle avec et sans cette variable, plutôt que de la supprimer immédiatement, sauf si sa p-value est vraiment élevée (>0,4). Dans ce cas, la variable peut être supprimée sans risque.

Note
Remarque

La p-value varie de 0 à 1, donc lorsqu'on parle de faible p-value, cela signifie inférieure à 0,05 et une p-value élevée signifie généralement supérieure à 0,3-0,5.

Dans notre exemple, nous avons obtenu des valeurs p pour la taille de la mère et la constante de 0,087 et 0,051. Si nous supprimons les variables avec une valeur p > 0,05, nous obtiendrons le résultat ci-dessous (à gauche).

Même visuellement, on peut constater que le modèle avec la constante (à droite) est meilleur, il est donc préférable de ne pas la retirer du modèle.

Note
Note

Il est courant d'obtenir des valeurs p relativement élevées (0,05 à 0,2) pour des variables influentes lorsque l'ensemble de données est petit. La valeur p indique la confiance que la variable est influente, et il est naturel que plus nous avons d'observations, plus il est facile de distinguer les variables influentes des mauvaises.
Supposons que vous ayez des données montrant que 9/10 des personnes grandes que vous connaissez mangeaient des pommes tous les jours. Pouvez-vous être certain qu'il y a un lien ? Mais si c'était 9000/10000 ? Cela vous rendrait plus confiant.

Comment supprimer les mauvaises variables ?

Il suffit de retirer la colonne correspondant à la variable de X_tilde. Cela peut être réalisé avec le code suivant :

X_tilde = X_tilde.drop(___, axis=1)

Par exemple, pour supprimer les colonnes 'const' et 'Mother', utilisez :

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Ensuite, créez un nouvel objet OLS en utilisant le X_tilde mis à jour :

regression_model=sm.OLS(y, X_tilde)

1. Parmi les variables, lesquelles devez-vous CONSERVER ?

2. Choisissez l'affirmation INCORRECTE.

question mark

Parmi les variables, lesquelles devez-vous CONSERVER ?

Select the correct answer

question mark

Choisissez l'affirmation INCORRECTE.

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 5.26

bookChoix des Variables

Glissez pour afficher le menu

Dans de nombreuses tâches, il se peut que vous disposiez de nombreuses variables dont vous ne savez pas si elles sont utiles ou non. Heureusement, vous pouvez entraîner un modèle avec toutes ces variables, observer lesquelles n'ont pas d'impact, puis réentraîner le modèle uniquement avec celles qui sont pertinentes.

Pourquoi supprimer des variables du modèle ?

Si vous ajoutez une variable au modèle qui n'a aucun lien avec la cible, cela introduira du bruit dans le modèle, ce qui dégradera la qualité de la prédiction. Lorsque vous avez de nombreuses variables inutiles, ce bruit s'accumule, rendant les performances du modèle de plus en plus mauvaises.

Comment savoir si les variables sont pertinentes ou non ?

Comme vous le savez déjà, lors de l'entraînement, la classe OLS calcule également des informations statistiques. Parmi d'autres analyses, elle effectue un test t pour déterminer si chaque variable a un impact significatif sur la cible. Les résultats de ce test se trouvent dans le tableau summary() comme illustré ci-dessous :

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

Ce qui nous intéresse, c'est la valeur p pour chaque variable.

En résumé, plus la valeur p est faible, plus la confiance dans l'impact de la variable est élevée.

En statistique, il est nécessaire de définir le seuil de la p-value, appelé niveau de signification. Il est généralement fixé à 0,05, et dès que la p-value dépasse ce niveau de signification, la variable est considérée comme non significative.

Cependant, en pratique, les variables ayant une p-value légèrement supérieure à 0,05 peuvent également améliorer le modèle. Il est donc préférable de tester le modèle avec et sans cette variable, plutôt que de la supprimer immédiatement, sauf si sa p-value est vraiment élevée (>0,4). Dans ce cas, la variable peut être supprimée sans risque.

Note
Remarque

La p-value varie de 0 à 1, donc lorsqu'on parle de faible p-value, cela signifie inférieure à 0,05 et une p-value élevée signifie généralement supérieure à 0,3-0,5.

Dans notre exemple, nous avons obtenu des valeurs p pour la taille de la mère et la constante de 0,087 et 0,051. Si nous supprimons les variables avec une valeur p > 0,05, nous obtiendrons le résultat ci-dessous (à gauche).

Même visuellement, on peut constater que le modèle avec la constante (à droite) est meilleur, il est donc préférable de ne pas la retirer du modèle.

Note
Note

Il est courant d'obtenir des valeurs p relativement élevées (0,05 à 0,2) pour des variables influentes lorsque l'ensemble de données est petit. La valeur p indique la confiance que la variable est influente, et il est naturel que plus nous avons d'observations, plus il est facile de distinguer les variables influentes des mauvaises.
Supposons que vous ayez des données montrant que 9/10 des personnes grandes que vous connaissez mangeaient des pommes tous les jours. Pouvez-vous être certain qu'il y a un lien ? Mais si c'était 9000/10000 ? Cela vous rendrait plus confiant.

Comment supprimer les mauvaises variables ?

Il suffit de retirer la colonne correspondant à la variable de X_tilde. Cela peut être réalisé avec le code suivant :

X_tilde = X_tilde.drop(___, axis=1)

Par exemple, pour supprimer les colonnes 'const' et 'Mother', utilisez :

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Ensuite, créez un nouvel objet OLS en utilisant le X_tilde mis à jour :

regression_model=sm.OLS(y, X_tilde)

1. Parmi les variables, lesquelles devez-vous CONSERVER ?

2. Choisissez l'affirmation INCORRECTE.

question mark

Parmi les variables, lesquelles devez-vous CONSERVER ?

Select the correct answer

question mark

Choisissez l'affirmation INCORRECTE.

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 4
some-alt