Modélisation Data Science: Comment utiliser la régression linéaire avec Python

Jetez un coup d'œil à R², à l'erreur quadratique moyenne et plus encore

par Brian Henriquez, Chris Kazakis et Dean Sublett

Photo par les créateurs de campagne sur Unsplash

Introduction et objectifs

La régression linéaire est une technique largement utilisée en science des données en raison de la simplicité relative dans la mise en œuvre et l'interprétation d'un modèle de régression linéaire.

Ce didacticiel vous expliquera quelques modèles de régression linéaire simples et multiples du jeu de données 80 Céréales à l’aide de Python, et abordera quelques mesures de régression pertinentes, mais nous ne présumons pas d’expérience préalable en régression linéaire en Python. Vous pouvez trouver le jeu de données 80 Céréales ici.

Voici quelques objectifs:

  • Comprendre le sens et les limites de R²
  • En savoir plus sur les métriques d'évaluation pour la régression linéaire et sur quand les utiliser
  • Implémentation d'un modèle de régression linéaire simple et multiple avec le jeu de données 80 céréales

Explorer les données

Après avoir téléchargé le jeu de données, importez les packages Python nécessaires et le jeu de données céréales lui-même:

Sortie de cereal.head ()

Nous voyons ici que chaque rangée est une marque de céréale et que chaque colonne est une caractéristique nutritionnelle (protéines, lipides, etc.) ou identifiante (fabricant, type) de la céréale. Notez que rating est la réponse ou la variable dépendante.

Ensuite, nous avons créé un graphe de paires des corrélations entre chaque caractéristique du jeu de données. À partir de cette visualisation, nous avons sélectionné trois variables prédictives: les calories, les fibres et les sucres. Le graphe affichant chaque corrélation est trop grand pour être partagé ici, mais nous pouvons regarder de plus près avec un graphe de paires plus petit qui n'inclut que nos variables de prédicteur. En utilisant seaborn.pairplot, nous pouvons voir trois diagrammes de dispersion avec des lignes de moindres carrés ajustées:

Le graphique des paires de chaque variable prédictive avec la variable de réponse

Maintenant que nous connaissons mieux les données, nous pouvons commencer à configurer nos modèles de régression linéaire.

Remarque: pour faciliter la compréhension des concepts, nous ne calculons pas les valeurs R² et les valeurs R² ajustées à l'aide d'une ventilation test / train des données. Mais s'il vous plait, reconnaissez que l'utilisation d'une division test / train d'observations choisies au hasard est considérée comme la meilleure pratique, et c'est ainsi que nous présentons nos erreurs et AIC / BIC vers la fin du tutoriel.

Le modèle de régression linéaire

Nous voulons discuter de R² et de son importance pour les modèles de régression linéaire. Mais pour comprendre exactement ce qu'est R², nous devons d'abord comprendre ce qu'est un modèle linéaire. Examinons un diagramme de dispersion comparant les calories dans une portion de céréale et son classement:

Nuage de points et de calories

Nous pouvons clairement voir que les portions de céréales avec plus de calories reçoivent généralement des critiques moins favorables. Si nous supposons qu’il existe une relation entre ces deux variables, nous pouvons alors construire un modèle qui prédit la note d’une céréale en fonction du nombre de calories.

Pour vérifier que la relation est en réalité linéaire, nous pouvons tracer les résidus de notre modèle sur un graphique et rechercher des modèles. Une tendance claire dans le résidu pourrait suggérer qu'un autre modèle, tel qu'un modèle quadratique ou logarithmique, pourrait mieux décrire la relation entre les deux variables. Vérifions les résidus:

Il n’ya pas de schéma clair dans les résidus, il n’ya donc aucune preuve qu’il existe une équation mieux ajustée et non linéaire.

Pour la régression linéaire, nous nous intéresserons à la formule:

x est la variable prédictive pour la variable de réponse y

Pour créer un modèle, nous pouvons utiliser la méthode scipy linregress.

Et nous obtenons la sortie suivante:

  • LinregressResult (pente = -0,49701318979564285, intersection = 95,78802384439143, rvalue = -0,6893760311652586, pvalue = 4.1402774000064275e-12, stderr = 0.0603061702424228)

Le premier élément est b_1, le second est b_0 et la troisième valeur est la valeur R, également appelée coefficient de corrélation. La valeur de R va de 1 à -1 et mesure la force de la relation entre les variables explicatives et une variable de réponse. La valeur R pour le nombre de calories par rapport à la note est de -689, ce qui montre qu'il existe une forte relation négative entre les deux variables. Plus la valeur R est éloignée de 0, meilleur est le modèle prédictif des valeurs.

En quadrillant R, on obtient le coefficient de détermination, R². R² est une valeur qui représente quel pourcentage de la variation de la variable y peut être expliqué par la variation de la variable x. Une valeur R² élevée indique un modèle plus fort. Regardons quelques valeurs R² dans notre jeu de données:

Nous imprimons ce qui suit:

  • R² de modèle avec prédicteur de coupe: 0.0412740112014871
  • R² du modèle avec Predictor Calories: 0.4752393123451636

Ces valeurs R² nous indiquent que les calories sont un meilleur prédicteur de l’évaluation que les tasses.

Une régression linéaire simple est utile, mais nous voulons souvent voir comment plusieurs variables peuvent être utilisées pour prédire une seule variable. Obtenons un tableau 2D de prédicteurs à partir de céréales en prenant une tranche avec toutes nos variables d’intérêt. les calories, les fibres et le sucre semblaient être de bons prédicteurs lorsque nous avons examiné le graphique des paires de corrélations plus tôt, examinons donc un modèle utilisant ces trois méthodes:

Nous obtenons la sortie suivante:

  • R²: 0.8483669504178866
  • R² ajusté: 0,8070124823500374

Nous trouvons que la valeur de R² a augmenté de 0,475 dans le modèle à une variable (avec les calories comme prédicteur) à 0,848. Cela semble indiquer que le pouvoir prédictif de notre modèle a augmenté.

Cependant, ajoutons un prédicteur médiocre, des tasses, à ce modèle de régression linéaire multiple et voyons ce qui se passe:

Ce code donne la sortie suivante:

  • R²: 0.8490487016343364
  • R² ajusté: 0,788668182288071

Rappelons que le nombre de tasses par portion de céréales semblait n'avoir presque aucune corrélation avec l'évaluation du consommateur dans le cas d'une seule variable. Mais quand on l'ajoute au modèle, le R² global augmente à 0,849, ce qui implique une amélioration du pouvoir prédictif du modèle. Cependant, sur la base de ce que nous savons, ce modèle à quatre variables ne devrait pas être meilleur que le modèle à trois variables. En vertu de la manière dont la valeur R² est calculée, l'ajout de plus de variables à un modèle augmentera toujours la valeur R². Il faut donc comparer les valeurs de R² ajustées, ce qui atténue l’augmentation de R² due à des variables supplémentaires. La formule pour le R² ajusté est

N échantillon total taille, p-nombre de prédicteurs

En utilisant cela, nous trouvons que le modèle à trois variables a un R² ajusté de 0,807, tandis que le modèle à quatre variables a un R² ajusté de 0,788. Par conséquent, le modèle à trois variables est meilleur par cette métrique.

R² est l’un des paramètres les plus importants pour évaluer dans quelle mesure un modèle linéaire correspond aux données. Il est donc important d’avoir une compréhension intuitive de ce qu’il signifie. Il est tout aussi important de connaître les limites de R² et de savoir comment les limiter, afin de mettre en œuvre des modèles de régression linéaire.

Erreur quadratique moyenne (MSE)

Les modèles de régression comportent un certain nombre de mesures d'évaluation différentes. L’une des métriques les plus populaires et dont nous discuterons en premier est l’erreur quadratique moyenne (MSE).

La source

La MSE est une mesure d'évaluation qui mesure la moyenne des différences au carré entre les valeurs observées et prédites. En d'autres termes, le MSE nous indique le degré de précision ou d'inexactitude de notre modèle de régression linéaire: plus le MSE est faible, plus le modèle est performant pour prédire les valeurs. Trouvons le MSE de notre modèle de régression:

Notre variable mse renvoie 26.6329.

Une autre mesure d'évaluation à notre disposition est l'erreur quadratique moyenne (RMSE), qui est simplement la racine carrée de notre MSE. À l'aide de la fonction racine carrée du module mathématique Python, sqrt (mse) est renvoyé sous la forme 5.1607.

Il est important de noter que notre valeur RMSE partage les mêmes unités que la variable de réponse (nous avons pris la racine carrée des erreurs au carré). Notre valeur RMSE de 5.1607 est relativement basse sur la plage de 0 à 100% de la variable de notation. Notre modèle de régression linéaire multiple permet donc de "bien" prédire la notation d'une marque de céréale. Mais il y a d'autres erreurs que nous pouvons utiliser.

Erreur absolue moyenne (MAE)

La prochaine mesure d’évaluation de la régression à prendre en compte est l’erreur moyenne absolue (EMA).

La source

Etant donné que la MSE correspond à la différence entre les résidus, de plus grandes disparités entre les valeurs réelles et prédites sont «punies» plus sévèrement par la MSE que par la MAE. En raison de la quadrature des termes, la MSE est plus sensible aux valeurs aberrantes que le MAE.

Si nous décidions que les valeurs aberrantes de notre ensemble de données n’étaient pas significatives dans l’analyse des données, nous pourrions nous tourner vers MAE avant MSE car les résidus des valeurs aberrantes ne seraient pas exagérés par rapport à la quadrature des résidus. Trouvons le MAE:

Notre variable mae renvoie 3.6153. Notre MAE est relativement petit étant donné la plage de notation allant de 0 à 100, notre MAE indique donc que notre modèle est raisonnablement précis dans ses prévisions.

Erreur de pourcentage absolu moyen (MAPE)

La métrique finale d’évaluation de la régression que nous prendrons en compte est l’erreur en pourcentage absolu moyen (MAPE).

La source

MAPE donne la précision des modèles prédictifs sous forme de pourcentage. Notez la similitude dans les formules MAE et MAPE. Comme MAE, MAPE n'est pas fortement influencé par les valeurs aberrantes. Cependant, utilisez MAPE avec prudence, car

  • MAPE est sujet aux erreurs de division par zéro (voir le dénominateur dans la somme);
  • MAPE peut devenir très important si les valeurs réelles sont très petites (voir l’opération de division dans la somme);
  • MAPE est biaisé en faveur de prédictions plus petites que les valeurs observées.

Trouvons le MAPE pour notre modèle:

Notre fonction MAPE renvoie le pourcentage suivant: 8,458%. Donc, notre prévision est "off" d'environ 8,5% en moyenne.

AIC et BIC

Les AIC (Akaike Information Criterion) et BIC (Bayesian Information Criterion) sont des méthodes objectives d'évaluation de vos modèles de régression et de détermination du meilleur sous-ensemble de prédicteurs (lequel correspond le mieux).

Lorsque vous ajoutez des paramètres à votre modèle, celui-ci sera toujours mieux adapté. Mais vous risquez alors de perdre des informations sur le modèle réel sous-jacent. Par conséquent, il existe un compromis entre le nombre de paramètres et le montant d'erreur pris en compte par votre modèle. AIC et BIC évaluent la capacité des modèles à prendre en compte la variation supplémentaire de la variable que vous prédisez mais sans sur-adapter le modèle.

AIC

AIC vous permet d'estimer la quantité d'informations perdues dans vos modèles, ce qui vous permet de comparer les modèles qui fonctionnent le mieux et de sélectionner le sous-ensemble de prédicteurs le plus approprié. Plus spécifiquement, la valeur AIC examine la distance relative entre la fonction de vraisemblance réelle des données et la fonction de vraisemblance ajustée de votre modèle. Plus cette distance est petite, plus le modèle est proche de la représentation réelle de vos données. AIC est noté par cette formule:

Nombre N d'observations, nombre K de paramètres ajustés + 1

Si nous comparons l'ajustement de deux modèles à l'aide de la méthode AIC, le modèle dont la valeur AIC est la plus basse est celui qui convient le mieux.

Trouvons les valeurs AIC de nos deux modèles de régression multiple que nous avons utilisés précédemment. L'un a trois prédicteurs et l'autre en a quatre. Nous allons d’abord définir les valeurs que nous ajouterons à la formule, puis nous exécuterons la formule:

Cela donne la sortie suivante:

  • AIC du modèle à trois prédicteurs: 60.51438447233831
  • AIC du modèle à quatre prédicteurs: 62.31365180026097

D'après ce que nous voyons, le modèle à trois prédicteurs a une valeur AIC inférieure et correspond donc mieux que le modèle à quatre prédicteurs (mais pas beaucoup dans cet exemple).

BIC

BIC est similaire à AIC, mais il est beaucoup plus strict en termes de pénalisation de votre modèle pour l'ajout de paramètres supplémentaires. Il est noté par cette formule:

Nombre N d'observations, nombre K de paramètres ajustés + 1

Si nous comparons l'ajustement de deux modèles à l'aide de la méthode BIC, le modèle dont la valeur BIC est la plus basse est celui qui convient le mieux, comme dans le processus de la méthode AIC.

Trouvons les valeurs BIC pour les deux mêmes modèles que nous venons d’utiliser. Ici, la seule différence est la pénalité que nous multiplions le nombre de paramètres par:

Cela donne la sortie suivante:

  • BIC du modèle avec trois prédicteurs: 63.60473936129743
  • BIC du modèle à quatre prédicteurs: 66.17659541145987

D'après ce que nous voyons ici, le modèle à trois prédicteurs a une valeur BIC inférieure et correspond donc mieux que le modèle à quatre prédicteurs. La pénalité BIC étant plus stricte que la pénalité AIC, les valeurs de la méthode BIC sont supérieures à la méthode AIC pour leurs modèles respectifs.

En raison de la différence de pénalité, AIC peut choisir un modèle avec plus de paramètres que BIC. Il est recommandé d’utiliser AIC et BIC ensemble et de prendre des décisions concernant vos modèles en fonction des deux ensembles de résultats. Dans ce cas, l'AIC et le BIC se sont mis d'accord et ont choisi les mêmes modèles.

Vocabulaire clé

En résumé, nous avons discuté

  • R²: un indicateur de la force du modèle de régression linéaire prédit la variable de réponse
  • R² ajusté: indicateur de la force du modèle de régression linéaire multiple pour tenir compte de la variance de la variable dépendante tout en corrigeant le nombre de paramètres du modèle.
  • MSE (moyenne squared error): une métrique d'évaluation qui punit fortement les valeurs aberrantes; probablement la première erreur que vous calculerez et utiliserez lorsque les valeurs aberrantes représentent un phénomène réel du jeu de données
  • RMSE (erreur quadratique moyenne): la racine carrée de MSE; partage les mêmes unités que la variable de réponse, de sorte que RMSE peut être plus "interprétable" que MSE
  • MAE (moyenne absolue error): une métrique d'évaluation utilisée pour réduire l'importance des valeurs aberrantes lors de la mesure de l'erreur; utilisé lorsque les valeurs éloignées ne représentent pas un phénomène réel de l'ensemble de données
  • MAPE (moyenne absolue en pourcentage d’erreur): mesure de la précision d’un modèle de régression en pourcentage; sujet aux erreurs d'exécution ou aux valeurs inhabituellement élevées lorsque la variable de réponse prend de petites valeurs
  • AIC (Akaike Information Criterion): évaluation de la quantité d'informations perdues dans différents modèles, qui pénalise l'augmentation des paramètres. Quelle que soit la taille de vos données, il a toujours la possibilité de choisir un modèle trop volumineux. À utiliser de préférence avec BIC.
  • BIC (critère d'information bayésien): similaire à l'AIC mais pénalise davantage. Quelle que soit la taille de vos données, il a toujours la possibilité de choisir un modèle trop petit. Meilleur utilisé en conjonction avec AIC.

Conclusion

Dans ce tutoriel, nous avons montré comment implémenter des modèles de régression linéaire simples et multiples avec Python ainsi que les différentes méthodes d’évaluation de ces modèles et de leur erreur.

Lorsque vous travaillez avec vos propres jeux de données, vous pouvez choisir l’une de ces méthodes pour évaluer vos modèles de régression et vos erreurs. Cependant, il peut être dans votre intérêt d’en utiliser un certain nombre et de voir comment leurs résultats s’alignent ou se différencient afin de décider lequel de vos modèles offre la meilleure représentation de vos données.

Maintenant, vous devriez être plus à l'aise avec la mise en œuvre de vos propres modèles de régression linéaire et être plus conscient des similitudes et des différences entre tous les paramètres de régression discutés.