4.3 Analyse de corrélation et de régression linéaire
Objectifs d'apprentissage
À la fin de cette section, vous devriez être en mesure de :
- 4.3.1 Créer des nuages de points, puis calculer et interpréter des coefficients de corrélation.
- 4.3.2 Effectuer une régression linéaire et déterminer l'équation linéaire du meilleur ajustement.
- 4.3.3 Utiliser Python pour calculer des coefficients de corrélation et déterminer les équations de modèles de régression linéaire.
Nous avons brièvement abordé l'analyse de corrélation (correlation analysis) au début de ce chapitre, mais nous souhaitons maintenant approfondir le sujet. Les scientifiques des données cherchent fréquemment à savoir s'il existe des relations, ou une corrélation, entre deux grandeurs numériques. Par exemple, un chercheur en médecine pourrait vouloir déterminer s'il existe un lien entre l'âge et la pression artérielle. Un professeur d'université pourrait chercher à savoir s'il existe un lien entre le temps passé par les étudiants sur les réseaux sociaux et leurs résultats universitaires correspondants.
L'analyse de corrélation permet de mettre en évidence une relation statistique entre deux grandeurs numériques, ou variables : une variable indépendante et une variable dépendante. La variable indépendante (independent variable) est la variable que l'on peut modifier ou contrôler, tandis que la variable dépendante (dependent variable) est celle que l'on mesure ou observe afin d'étudier comment elle réagit à ces changements. L'analyse de régression va plus loin en quantifiant la relation entre les deux variables, et elle peut être utilisée pour prédire une quantité à partir d'une seconde, à condition qu'il existe une corrélation significative entre les deux grandeurs. Par exemple, la valeur d'une voiture peut être estimée en fonction de son âge.
Plus tôt, nous avons mentionné de nombreuses applications commerciales faisant appel à l'analyse de corrélation et de régression. Par exemple, l'analyse de régression peut servir à établir une équation mathématique reliant une variable dépendante (comme les ventes) à une variable indépendante (comme les dépenses publicitaires). Mais elle trouve également de multiples applications en dehors du monde des affaires. Un ingénieur de l'automobile s'intéresse, par exemple, à la corrélation entre la température extérieure et l'autonomie de la batterie d'un véhicule électrique.
Notre étude portera ici sur la régression linéaire, c'est-à-dire l'analyse de la relation entre une variable dépendante et une variable indépendante, dans le cas où cette relation peut être modélisée par une équation linéaire.
Nuages de points et corrélation
Dans l'analyse de corrélation, nous étudions la relation entre des données bivariées (bivariate data), c'est-à-dire des données recueillies sur deux variables où les valeurs sont appariées les unes aux autres. La corrélation mesure l'association entre deux variables numériques. Nous pouvons vouloir déterminer s'il existe une corrélation entre le prix des obligations et les taux d'intérêt, ou entre l'âge d'une voiture et sa valeur. Pour étudier la corrélation entre deux grandeurs numériques, la première étape consiste à collecter des données pour les deux grandeurs numériques étudiées, puis à tracer un nuage de points représentant les couples ordonnés . La grandeur indépendante, ou explicative, est désignée comme la variable , et la grandeur dépendante, ou réponse, est désignée comme la variable .
Supposons par exemple qu'un analyste financier souhaite savoir si le cours de l'action Nike est corrélé à la valeur du S&P 500 (l'indice boursier Standard & Poor's 500). Pour l'étudier, on peut collecter des données mensuelles sur le cours de l'action Nike et la valeur du S&P 500 sur une période donnée, puis construire et analyser un nuage de points. Un nuage de points, ou diagramme de dispersion (scatterplot, or scatter diagram) est une représentation graphique destinée à montrer la relation entre deux variables. La disposition du nuage de points consiste à placer une variable sur l'axe horizontal et l'autre variable sur l'axe vertical. Chaque paire de valeurs est considérée comme un point , et les différents points sont reportés sur le graphique. Une inspection visuelle du tracé est ensuite réalisée pour détecter des régularités ou des tendances sur le diagramme de dispersion. Le Tableau 4.14 présente la relation entre le cours de l'action Nike et la valeur du S&P sur une base mensuelle au cours d'une période d'un an.
| Date | S&P 500 () | Cours de l'action Nike () |
|---|---|---|
| Mois 1 | 2912.43 | 87.18 |
| Mois 2 | 3044.31 | 98.58 |
| Mois 3 | 3100.29 | 98.05 |
| Mois 4 | 3271.12 | 97.61 |
| Mois 5 | 3500.31 | 111.89 |
| Mois 6 | 3363.00 | 125.54 |
| Mois 7 | 3269.96 | 120.08 |
| Mois 8 | 3621.63 | 134.70 |
| Mois 9 | 3756.07 | 141.47 |
| Mois 10 | 3714.24 | 133.59 |
| Mois 11 | 3811.15 | 134.78 |
| Mois 12 | 3943.34 | 140.45 |
(source : Yahoo! Finance)
Pour évaluer la corrélation linéaire (linear correlation), examinez la tendance graphique des points de données sur le nuage de points pour déterminer s'il existe une configuration rectiligne (voir Figure 4.5). Si une tendance linéaire apparaît, la corrélation peut être positive ou négative. Une corrélation positive indique que lorsque la variable indépendante augmente, la variable dépendante a également tendance à augmenter, ou que lorsque la variable indépendante diminue, la variable dépendante a tendance à diminuer (les deux grandeurs évoluent dans le même sens). Une corrélation négative indique que lorsque la variable indépendante augmente, la variable dépendante diminue, ou que lorsque la variable indépendante diminue, la variable dépendante augmente (les deux grandeurs évoluent en sens inverse). S'il n'y a aucune relation ni association entre les deux grandeurs, c'est-à-dire que la variation de l'une n'influe pas sur l'autre, nous concluons à l'absence de corrélation entre les deux variables.
(source : Yahoo! Finance)
D'après le nuage de points illustrant l'action Nike par rapport au S&P 500, nous constatons que la tendance traduit une corrélation positive dans la mesure où, lorsque la valeur du S&P 500 augmente, le cours de l'action Nike a également tendance à augmenter.
Lors de l'examen d'un nuage de points, il peut être difficile d'évaluer une corrélation sur la seule base d'une inspection visuelle du graphique. Une évaluation plus précise de la corrélation entre les deux grandeurs peut être obtenue en calculant le coefficient de corrélation numérique (désigné par le symbole ).
Le coefficient de corrélation (correlation coefficient) est une mesure de la force et de la direction de la corrélation entre la variable indépendante et la variable dépendante .
La formule de calcul de est présentée ci-dessous ; toutefois, on utilise généralement un logiciel pour calculer le coefficient de corrélation.
où désigne le nombre de paires de données et le symbole indique qu'il faut faire la somme des valeurs de x.
Notez que cette valeur « » est parfois appelée « coefficient de corrélation de Pearson ».
Le Tableau 4.15 fournit une procédure étape par étape pour calculer le coefficient de corrélation .
| Étape | Représentation sous forme de symboles |
|---|---|
| 1. Calculer la somme des valeurs de x. | |
| 2. Calculer la somme des valeurs de y. | |
| 3. Multiplier chaque valeur de x par la valeur de y correspondante et calculer la somme de ces produits . | |
| 4. Élever au carré chaque valeur de x, puis calculer la somme de ces valeurs au carré. | |
| 5. Élever au carré chaque valeur de y, puis calculer la somme de ces valeurs au carré. | |
| 6. Déterminer la valeur de , qui est le nombre de paires de données. | n |
| 7. Utiliser ces résultats pour les substituer dans la formule du coefficient de corrélation. |
Notez que puisque est calculé à partir de données d'échantillon, est considéré comme une statistique échantillonnale et est utilisé pour mesurer la force de la corrélation entre les deux variables de la population. Rappelons que les données d'échantillon désignent des données fondées sur un sous-ensemble de l'ensemble de la population.
Comme mentionné, compte tenu de la complexité de ce calcul, on utilise généralement un logiciel pour calculer le coefficient de corrélation. Il existe plusieurs options pour calculer le coefficient de corrélation en Python. L'exemple présenté utilise la bibliothèque scipy.stats (scipy.stats library) en Python, qui comprend la fonction pearsonr() pour calculer le coefficient de corrélation de Pearson ().
Nous allons créer deux tableaux numériques en Python à l'aide de la fonction np.array() (np.array() function), puis utiliser la fonction pearsonr() pour calculer le coefficient de corrélation de Pearson pour les données présentées dans le Tableau 4.15.
Le code Python suivant donne un coefficient de corrélation de 0,923 pour le jeu de données du cours de l'action Nike.
Code Python
# import libraries
import numpy as np
from scipy.stats import pearsonr
# establish x and y data, x-data is S&P500 value, y-data is Nike Stock Price
SP500 = np.array([2912.43, 3044.31, 3100.29, 3271.12, 3500.31, 3363.00, 3269.96, 3621.63, 3756.07, 3714.24, 3811.15, 3943.34])
Nike = np.array([87.18, 98.58, 98.05, 97.61, 111.89, 125.54, 120.08, 134.70, 141.47, 133.59, 134.78, 140.45])
#pearson r returns both value of r and corresponding p-value
r, p = pearsonr(SP500, Nike)
#print value of r , rounded to 3 decimal places
print("Correlation coefficient: ", round(r, 3))
Le résultat obtenu se présente ainsi :
Correlation coefficient: 0.923
Interpréter un coefficient de corrélation
Une fois la valeur de calculée, cette mesure fournit deux indications sur la corrélation :
- la force de la corrélation d'après la valeur de
- la direction de la corrélation d'après le signe de
La valeur de nous fournit les informations suivantes :
- La valeur de est toujours comprise entre et : .
- L'amplitude de la corrélation indique la force de la relation linéaire entre les deux variables. Des valeurs de proches de ou de indiquent une relation linéaire plus forte.
- Si , il n'y a aucune relation linéaire entre les deux variables (aucune corrélation linéaire).
- Si , il y a une corrélation positive parfaite. Si , il y a une corrélation négative parfaite. Dans ces deux cas, tous les points de données d'origine sont situés sur une ligne droite.
Le signe de nous fournit les informations suivantes :
- Une valeur positive de signifie que lorsque augmente, a tendance à augmenter, et lorsque diminue, a tendance à diminuer (corrélation positive).
- Une valeur négative de signifie que lorsque augmente, a tendance à diminuer, et lorsque diminue, a tendance à augmenter (corrélation négative).
D'après les résultats statistiques obtenus dans la sortie Python, le coefficient de corrélation est de 0,923, ce qui indique que la relation entre l'action Nike et la valeur du S&P 500 sur cette période représente une corrélation forte et positive.
Tester la significativité d'un coefficient de corrélation
Le coefficient de corrélation, , renseigne sur la force et la direction de la relation linéaire entre et . Les données d'échantillon servent à calculer , le coefficient de corrélation de l'échantillon. Si nous disposions de données pour l'ensemble de la population (c'est-à-dire l'ensemble des mesures d'intérêt), nous pourrions déterminer le coefficient de corrélation de la population, qui est désigné par la lettre grecque (prononcée « rhô »). Cependant, ne disposant que de données d'échantillon, nous ne pouvons pas calculer le coefficient de corrélation de la population. Le coefficient de corrélation échantillonnal, , constitue notre estimation du coefficient de corrélation inconnu de la population.
Une étape essentielle de l'analyse de corrélation consiste à déterminer si la corrélation est significative. Il s'agit de se demander si la corrélation est suffisamment forte pour permettre des prédictions (predictions) pertinentes de fondées sur les valeurs de . Une méthode pour tester la significativité de la corrélation consiste à utiliser un test d'hypothèses. Le test d'hypothèses permet de déterminer si la valeur du coefficient de corrélation de la population est proche de zéro ou significativement différente de zéro. Cette décision repose sur le coefficient de corrélation échantillonnal et la taille de l'échantillon n.
Si le test conclut que le coefficient de corrélation est significativement différent de zéro, nous disons que le coefficient de corrélation est significatif.
- Conclusion : Les données fournissent des preuves suffisantes pour conclure qu'il existe une relation linéaire significative entre les deux variables, car le coefficient de corrélation est significativement différent de zéro.
- Ce que signifie la conclusion : Il existe une relation linéaire significative entre les deux variables. Si le test conclut que le coefficient de corrélation n'est pas significativement différent de zéro (il est proche de zéro), nous disons que le coefficient de corrélation n'est pas significatif.
Un test d'hypothèses peut être effectué pour vérifier si la corrélation est significative. Un test d'hypothèses est une méthode statistique qui s'appuie sur des données d'échantillon pour tester une affirmation concernant la valeur d'un paramètre de population. Dans ce cas, le test d'hypothèses sera utilisé pour tester l'affirmation selon laquelle le coefficient de corrélation de la population est égal à zéro.
Utilisez ces hypothèses lors de la réalisation du test d'hypothèses :
- Hypothèse nulle :
- Hypothèse alternative :
Les hypothèses peuvent être formulées en langage naturel comme suit :
- Hypothèse nulle : Le coefficient de corrélation de la population n'est pas significativement différent de zéro. Il n'y a pas de relation linéaire significative (corrélation) entre et dans la population.
- Hypothèse alternative : Le coefficient de corrélation de la population est significativement différent de zéro. Il y a une relation linéaire significative (corrélation) entre et dans la population.
Une règle empirique rapide pour évaluer les corrélations repose sur la relation entre la taille de l'échantillon et la corrélation. Si , cela indique que la corrélation entre les deux variables démontre l'existence d'une relation linéaire statistiquement significative au niveau de signification d'environ 0,05. Comme la formule l'indique, il existe une relation inverse entre la taille de l'échantillon et la corrélation requise pour obtenir une relation linéaire significative. Avec seulement 10 observations, la corrélation requise pour la significativité est de 0,6325 ; pour 30 observations, elle tombe à 0,3651 ; et pour 100 observations, le niveau requis n'est plus que de 0,2000.
Interpréter la significativité du coefficient de corrélation échantillonnal
- Si est significatif et que le nuage de points présente une tendance linéaire, la droite peut être utilisée pour prédire la valeur de pour des valeurs de qui se situent dans le domaine des valeurs de x observées.
- Si n'est pas significatif OU si le nuage de points ne montre pas de tendance linéaire, la droite ne doit pas être utilisée pour effectuer des prédictions.
- Si est significatif et que le nuage de points montre une tendance linéaire, la droite peut ne pas être appropriée ni fiable pour faire des prédictions en dehors du domaine des valeurs de x observées dans les données.
Exemple 4.22
Problème
Supposons que le directeur financier (CFO) d'une entreprise étudie la corrélation entre les cours des actions et le taux de chômage sur une période de 10 ans et trouve un coefficient de corrélation de . Il y a 10 points de données dans le jeu de données. Le directeur financier doit-il conclure que la corrélation est significative pour la relation entre les cours des actions et le taux de chômage, sur la base d'un niveau de signification de 0,05 ?
Solution
En utilisant un niveau de signification de 0,05, si , cela implique que la corrélation entre les deux variables montre une relation linéaire statistiquement significative au seuil d'environ 0,05. Dans cet exemple, nous vérifions si est supérieur ou égal à où . Comme est égal à environ 0,632, cela indique que la valeur de r de est supérieure en valeur absolue à , et donc que la corrélation est jugée significative.
Régression linéaire
Un modèle de régression est généralement élaboré une fois que le coefficient de corrélation a été calculé et qu'il a été établi que la corrélation est significative. Le modèle de régression peut ensuite servir à prédire une grandeur (la variable dépendante) en fonction de l'autre (la variable indépendante). Par exemple, une entreprise peut souhaiter établir une corrélation entre les montants qu'elle consacre à la publicité (advertising) (la variable indépendante) et ses ventes enregistrées (la variable dépendante). Si une corrélation suffisamment forte est établie, le responsable de l'entreprise pourra prédire les ventes à partir du montant alloué à la publicité sur une période donnée. Dans cette section, nous nous concentrerons sur la régression linéaire, dans laquelle une ligne droite est utilisée pour modéliser la relation entre les deux variables. Une fois ce modèle linéaire élaboré, il peut servir à prédire la valeur de la variable dépendante pour une valeur particulière de la variable indépendante.
Méthode des moindres carrés et résidus
Pour construire un modèle linéaire qui s'ajuste au mieux aux points d'un nuage de points, les chercheurs font généralement appel à la méthode des moindres carrés (least squares method), basée sur un algorithme mathématique conçu pour minimiser la somme des carrés des distances entre les points de données et la droite ajustée.
Rappelons qu'en algèbre, l'équation d'une droite s'écrit sous la forme :
où est la pente de la droite et est l'ordonnée à l'origine de la droite.
La pente mesure l'inclinaison de la droite, et l'ordonnée à l'origine (y-intercept) est le point sur l'axe des où le graphique croise, ou intercepte, l'axe des .
Dans l'analyse de régression linéaire, l'équation de la droite est formulée de manière légèrement différente selon le modèle suivant :
Dans cette écriture, est la pente de la droite et est l'ordonnée à l'origine. La notation se lit « chapeau » et sert à indiquer une valeur prédite de la variable dépendante pour une valeur donnée de la variable indépendante .
Si une droite monte de gauche à droite, la pente est positive (voir Figure 4.6 ; si la droite descend de gauche à droite, la pente est négative).
En algèbre, pour déterminer l'équation d'une droite à l'aide de , deux points étaient nécessaires. En analyse de régression, en revanche, l'ensemble des points du jeu de données est utilisé pour construire le modèle de régression linéaire.
La première étape de toute analyse de régression consiste à créer le nuage de points. Il convient ensuite de calculer le coefficient de corrélation et de vérifier la significativité de cette valeur. Si nous estimons que les points présentent une relation linéaire, nous pouvons tracer une droite sur le nuage de points. Cette droite est déterminée au moyen d'un processus appelé régression linéaire. Cependant, nous ne calculons une droite de régression que si l'une des variables aide à expliquer ou à prédire l'autre. Si est la variable indépendante et la variable dépendante, nous pouvons alors utiliser une droite de régression pour prédire pour une valeur donnée de .
À titre d'exemple d'équation de régression, supposons qu'il existe une corrélation entre les dépenses publicitaires mensuelles et les revenus (revenue) mensuels d'une entreprise du Fortune 500. Après avoir recueilli des données sur une certaine période, l'entreprise détermine que l'équation de régression est de la forme suivante :
où représente les dépenses mensuelles en publicité (en milliers de dollars), représente les revenus mensuels de l'entreprise (en milliers de dollars), la pente est de 61,8 et l'ordonnée à l'origine est de 9 376,7.
Un nuage de points des données est présenté à la Figure 4.7.
L'entreprise souhaite estimer le revenu mensuel dans le cas où ses dirigeants décideraient de consacrer 150 000 $ à la publicité le mois prochain. Pour obtenir cette estimation du revenu mensuel, posons dans l'équation de régression et calculons la valeur correspondante de :
Cette valeur prédite de indique que le revenu prévu s'élèverait à 18 646 700 $, pour une dépense publicitaire de 150 000 $.
Remarquons que dans les données passées, il a pu exister un mois où l'entreprise a effectivement dépensé 150 000 $ en publicité, ce qui permet de disposer d'un résultat réel pour le revenu mensuel. Cette valeur réelle, ou observée, peut être comparée à la prédiction issue du modèle de régression linéaire afin de calculer ce que l'on appelle un résidu.
Un résidu (residual) est la différence entre une valeur de y observée et la valeur de y prédite obtenue à partir de l'équation de régression linéaire. À titre d'exemple, supposons qu'au cours d'un mois antérieur, le revenu mensuel réel pour une dépense publicitaire de 150 000 $ ait été de 19 200 000 $, ce qui donne . Le résidu pour ce point de données se calcule de la façon suivante :
Notez que les résidus peuvent être positifs, négatifs ou nuls. Si la valeur de y observée concorde exactement avec la valeur de y prédite, le résidu sera nul. Si la valeur de y observée est supérieure à la valeur de y prédite, le résidu sera positif. Si la valeur de y observée est inférieure à la valeur de y prédite, le résidu sera négatif.
Lors de la recherche de la droite de régression linéaire la mieux ajustée aux points du nuage de points, l'analyse mathématique produit une équation linéaire qui minimise la somme des carrés des résidus. Cette analyse porte le nom de méthode des moindres carrés (method of least squares). Par conséquent, cette démarche produit une équation linéaire qui correspond au « meilleur ajustement » aux points du nuage, au sens où la droite minimise les écarts entre les valeurs prédites et les valeurs observées de ; cette relation est généralement désignée sous le nom d'équation linéaire du meilleur ajustement (best-fit linear equation).
Exemple 4.23
Problème
Supposons que le directeur financier d'une entreprise a établi un modèle linéaire pour caractériser la relation entre l'action de l'entreprise et les taux d'intérêt. Lorsque les taux d'intérêt sont à 5 %, l'action de l'entreprise vaut 94 $. En utilisant le modèle linéaire, lorsque les taux d'intérêt s'élèvent à 5 %, le modèle prévoit une valeur de l'action de 99 $. Calculez le résidu pour ce point de données.
Solution
Un résidu est la différence entre une valeur de y observée et la valeur de y prédite obtenue par l'équation de régression linéaire :
L'objectif de l'analyse de régression est de déterminer les coefficients et dans l'équation de régression suivante :
Une fois les données collectées, la pente () et l'ordonnée à l'origine () peuvent être calculées à l'aide des formules suivantes :
où fait référence au nombre de paires de données et indique la somme des valeurs de x.
Remarquez que la formule de l'ordonnée à l'origine fait intervenir la pente calculée (b) ; il convient donc de calculer la pente en premier, puis l'ordonnée à l'origine en second.
Pour formuler des prédictions concernant , il est toujours important de tracer d'abord un nuage de points. Si ce dernier indique qu'il existe une relation linéaire entre les variables, il est alors pertinent d'utiliser une droite du meilleur ajustement pour prédire , à condition que se situe dans le domaine des valeurs de x des données d'échantillon, mais pas nécessairement pour les valeurs de x situées hors de ce domaine.
Utiliser la technologie pour la régression linéaire
En règle générale, on a recours à des outils technologiques pour calculer le modèle linéaire du meilleur ajustement, ainsi que pour déterminer les coefficients de corrélation et tracer les nuages de points. Les modalités d'utilisation de Python pour ces calculs sont présentées dans Utilisation de Python pour la corrélation et la régression linéaire.
Hypothèses de la régression linéaire
Tester la significativité du coefficient de corrélation exige que certaines hypothèses relatives aux données soient vérifiées. Le postulat fondamental de ce test est que les données constituent un échantillon de points observés issus d'une population plus vaste. Nous n'avons pas examiné l'ensemble de la population car cela n'est ni possible ni envisageable. Nous analysons l'échantillon afin de déterminer si la relation linéaire observée entre les données et de l'échantillon apporte des preuves suffisantes pour conclure à l'existence réelle d'une relation linéaire entre les données et dans la population.
L'équation de la droite de régression calculée à partir des données d'échantillon fournit la droite du meilleur ajustement pour notre échantillon particulier. Nous voulons utiliser cette droite du meilleur ajustement pour l'échantillon comme estimation de la droite du meilleur ajustement pour la population (Figure 4.8). L'examen du nuage de points et le test de significativité du coefficient de corrélation nous aident à déterminer s'il est opportun de procéder ainsi.
Voici les hypothèses qui sous-tendent le test de significativité :
- Il existe une relation linéaire dans la population qui modélise la valeur moyenne de pour différentes valeurs de . En d'autres termes, la valeur attendue de pour chaque valeur particulière se situe sur une ligne droite dans la population. (Nous ne connaissons pas l'équation de la droite pour la population. Notre droite de régression issue de l'échantillon constitue notre meilleure estimation de cette droite dans la population.)
- Les valeurs de y pour toute valeur particulière de x suivent une distribution normale autour de la droite. Cela implique qu'il y a plus de valeurs de y dispersées près de la droite que de valeurs éloignées. L'hypothèse (1) implique que ces distributions normales sont centrées sur la droite : les moyennes de ces distributions normales des valeurs de y se situent sur la droite.
- Les écarts types des valeurs de y de la population autour de la droite sont égaux pour chaque valeur de . En d'autres termes, chacune de ces distributions normales des valeurs de y a la même forme et la même dispersion autour de la droite.
- Les erreurs résiduelles sont mutuellement indépendantes (absence de structure particulière).
- Les données sont issues d'un échantillon aléatoire ou d'une expérience randomisée bien conçus.
Utilisation de Python pour la corrélation et la régression linéaire
Dès lors qu'une corrélation a été jugée significative, un modèle de régression linéaire est élaboré. L'objectif de l'analyse de régression est de déterminer les coefficients et dans l'équation de régression suivante :
Ces calculs manuels peuvent s'avérer particulièrement fastidieux, notamment pour un nombre important de paires de données ; c'est pourquoi on utilise fréquemment des logiciels (comme Excel, Python ou R).
Développer un modèle de régression linéaire
Dans l'exemple qui suit, Python sera employé pour réaliser l'analyse suivante à partir d'un ensemble de données donné.
- Créer un nuage de points.
- Calculer le coefficient de corrélation.
- Construire l'équation linéaire du meilleur ajustement.
- Prédire les valeurs de la variable dépendante pour des valeurs données de la variable indépendante.
Il existe plusieurs moyens d'accomplir ces tâches avec Python, mais nous ferons appel à diverses fonctions fournies par la bibliothèque scipy, notamment :
Pearsonr() pour le coefficient de corrélation
linregress() pour le modèle de régression linéaire
plt.scatter() pour la génération du nuage de points
Exemple 4.24
Problème
Un responsable marketing s'intéresse à l'étude de la corrélation entre les montants investis dans la publicité et le chiffre d'affaires au sein d'une entreprise donnée. Douze mois de données ont été recueillis, comme le montre le Tableau 4.16. (Les montants en dollars sont exprimés en milliers de dollars.)
Utilisez Python pour réaliser l'analyse suivante :
- Générer un nuage de points.
- Calculer le coefficient de corrélation .
- Déterminer si la corrélation est significative (utiliser un seuil de signification de 0,05).
- Construire un modèle de régression linéaire.
- Utiliser le modèle pour prédire les revenus d'un mois au cours duquel les dépenses publicitaires s'élèvent à 100 $.
| Mois | Dépenses publicitaires | Revenus |
|---|---|---|
| Janv. | 49 | 12210 |
| Févr. | 145 | 17590 |
| Mars | 57 | 13215 |
| Avr. | 153 | 19200 |
| Mai | 92 | 14600 |
| Juin | 83 | 14100 |
| Juil. | 117 | 17100 |
| Août | 142 | 18400 |
| Sept. | 69 | 14100 |
| Oct. | 106 | 15500 |
| Nov. | 109 | 16300 |
| Déc. | 121 | 17020 |
Solution
- La première étape de l'analyse consiste à générer un nuage de points. (Rappelons que les nuages de points ont également été abordés dans Nuages de points et corrélation.)
La fonction Pythonplt.scatter()peut servir à générer le nuage de points pour les données . Notez que nous considérons la publicité comme la variable indépendante (données ) et les revenus comme la variable dépendante (données ), puisque les revenus dépendent de l'effort publicitaire.
Voici le code Python permettant de générer le nuage de points :
Code Python
# import the matplotlib library
import matplotlib.pyplot as plt
# define the x-data, which is amount spent on advertising
x = [49, 145, 57, 153, 92, 83, 117, 142, 69, 106, 109, 121]
# define the y-data, which is revenue
y = [12210, 17590, 13215, 19200, 14600, 14100, 17100, 18400, 14100, 15500, 16300, 17020]
# use the scatter function to generate a time series graph
plt.scatter(x, y)
# Add a title using the title function
plt.title("Revenue versus Advertising for a Company")
# Add labels to the x and y axes by using xlabel and ylabel functions
plt.xlabel("Advertising $000")
plt.ylabel ("Revenue $000")
Le résultat obtenu se présente ainsi :
- La fonction Python
pearsonr()peut être employée pour déterminer le coefficient de corrélation, .
Voici le code Python permettant de calculer le coefficient de corrélation :
Code Python
# import libraries
import numpy as np
from scipy.stats import pearsonr
# define the x-data, which is amount spent on advertising
x = [49, 145, 57, 153, 92, 83, 117, 142, 69, 106, 109, 121]
# define the y-data, which is revenue
y = [12210, 17590, 13215, 19200, 14600, 14100, 17100, 18400, 14100, 15500, 16300, 17020]
#pearson r returns both value of r and corresponding p-value
r, p = pearsonr(x, y)
#print value of r, rounded to 3 decimal places
print("Correlation coefficient: ", round(r, 3))
Le résultat obtenu se présente ainsi :
Correlation coefficient: 0.981
Cette valeur de indique une forte corrélation positive entre les dépenses publicitaires et les revenus.
- En utilisant un niveau de signification de 0,05, si , cela indique que la corrélation entre les deux variables met en évidence une relation linéaire statistiquement significative au niveau de signification d'environ 0,05. Dans cet exemple, nous vérifions si est supérieur ou égal à où . Comme est égal à environ 0,577, cela montre que la valeur de r de 0,981 est supérieure à , et donc que la corrélation est considérée comme significative.
- Le modèle de régression linéaire sera de la forme :
Pour déterminer la pente et l'ordonnée à l'origine du modèle de régression, on peut utiliser la fonction Pythonlinregress().
Cette fonction prend les données et comme arguments et fournit la pente et l'ordonnée à l'origine, ainsi que d'autres résultats relatifs à la régression.
Voici le code Python permettant d'obtenir la pente et l'ordonnée à l'origine de la droite du meilleur ajustement :
Code Python
# import libraries
import numpy as np
from scipy.stats import linregress
# define the x-data, which is amount spent on advertising
x = [49, 145, 57, 153, 92, 83, 117, 142, 69, 106, 109, 121]
# define the y-data, which is revenue
y = [12210, 17590, 13215, 19200, 14600, 14100, 17100, 18400, 14100, 15500, 16300, 17020]
#pearson r returns both value of r and corresponding p-value
slope, intercept, r_value, p_value, std_err = linregress(x, y)
print ("slope =", slope)
print("intercept = ", intercept)
Le résultat obtenu se présente ainsi :
slope = 61.79775818816664
intercept = 9376.698881009072
À partir de ces résultats obtenus en Python, l'équation de régression peut s'écrire :
où représente les montants alloués à la publicité (en milliers de dollars) et représente les montants des revenus (en milliers de dollars).
Il est également utile de tracer cette droite du meilleur ajustement en la superposant au nuage de points pour illustrer la forte corrélation entre les dépenses publicitaires et les revenus, comme suit (voir Figure 4.9) :
- L'équation de régression est : .
Le montant donné des dépenses publicitaires de 100 $ correspond à une valeur de x donnée ; remplacez donc « » par 100 dans cette équation de régression pour obtenir le revenu prévu :
Comme les dépenses publicitaires et les revenus sont tous deux exprimés en milliers de dollars, la conclusion est que si les dépenses publicitaires sont de 100 000 $, le revenu prévu pour l'entreprise sera de 15 556 700 $.
Interpréter et appliquer la pente et l'ordonnée à l'origine
La pente de la droite, , décrit la manière dont les variations des variables sont liées entre elles. Il importe d'interpréter la pente de la droite dans le contexte de la situation représentée par les données. Vous devez être capable d'énoncer en une phrase simple la signification de la pente.
Interprétation de la pente
La pente de la droite du meilleur ajustement indique la manière dont la variable dépendante () varie pour chaque augmentation d'une unité de la variable indépendante (), en moyenne.
Dans l'exemple précédent, le modèle de régression linéaire portant sur le montant mensuel alloué à la publicité et les revenus mensuels d'une entreprise sur 12 mois a été établi comme suit :
Puisque la pente a été calculée à 61,8, l'entreprise peut interpréter cette valeur comme signifiant que pour chaque tranche de 1 000 $ dépensée en publicité, cela se traduira en moyenne par une augmentation des revenus de 61 800 $.
L'ordonnée à l'origine de l'équation de régression est la valeur correspondante de y lorsque .
Interprétation de l'ordonnée à l'origine
L'ordonnée à l'origine de la droite du meilleur ajustement fournit l'espérance de la valeur moyenne de dans le cas où la variable est égale à zéro.
Cependant, dans de nombreuses situations, le fait que la variable soit égale à zéro n'a pas de sens physique ou économique, et dans ces cas, l'ordonnée à l'origine ne possède aucune signification pratique dans le contexte du problème. Dans d'autres cas, la valeur de zéro pour x se situe en dehors de l'intervalle des données de collectées. Dans ce cas, il ne faut attribuer aucune interprétation à l'ordonnée à l'origine.
Dans l'exemple précédent, l'intervalle des données recueillies pour la variable allait de 49 000 $ à 153 000 $ consacrés chaque mois à la publicité. Comme cet intervalle n'inclut pas une valeur de x égale à zéro, nous ne donnerions aucune interprétation à l'ordonnée à l'origine.