Analyse de corrélation et de régression linéaire

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 (x,y)(x,y) pour les deux grandeurs numériques étudiées, puis à tracer un nuage de points représentant les couples ordonnés (x,y)(x,y). La grandeur indépendante, ou explicative, est désignée comme la variable xx, et la grandeur dépendante, ou réponse, est désignée comme la variable yy.

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 (x,y)(x,y), 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 (xx) Cours de l'action Nike (yy)
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
Tableau 4.14 Cours de l'action Nike ($) et valeur du S&P 500 sur une période d'un an
(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.

Un nuage de points pour l'action Nike par rapport au S&P 500. Le graphique montre que le cours de l'action Nike passe d'environ 85 à 140 lorsque le S&P 500 passe d'environ 2 900 à 4 000. Les points de données s'alignent généralement le long d'une droite de pente ascendante.
Figure 4.5 Nuage de points du cours de l'action Nike ($) et de la valeur du S&P 500
(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 rr).

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 xx et la variable dépendante yy.

La formule de calcul de rr est présentée ci-dessous ; toutefois, on utilise généralement un logiciel pour calculer le coefficient de corrélation.

r=nΣxy−(Σx)(Σy)nΣx2−(Σx)2nΣy2−(Σy)2r=nΣxy−(Σx)(Σy)nΣx2−(Σx)2nΣy2−(Σy)2

où nn désigne le nombre de paires de données et le symbole ΣxΣx indique qu'il faut faire la somme des valeurs de x.

Notez que cette valeur « rr » 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 rr.

Étape Représentation sous forme de symboles
1. Calculer la somme des valeurs de x. ΣxΣx
2. Calculer la somme des valeurs de y. ΣyΣy
3. Multiplier chaque valeur de x par la valeur de y correspondante et calculer la somme de ces produits xyxy. ΣxyΣxy
4. Élever au carré chaque valeur de x, puis calculer la somme de ces valeurs au carré. Σx2Σx2
5. Élever au carré chaque valeur de y, puis calculer la somme de ces valeurs au carré. Σy2Σy2
6. Déterminer la valeur de nn, 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. r=nΣxy−(Σx)(Σy)nΣx2−(Σx)2nΣy2−(Σy)2r=nΣxy−(Σx)(Σy)nΣx2−(Σx)2nΣy2−(Σy)2
Tableau 4.15 Étapes de calcul du coefficient de corrélation

Notez que puisque rr est calculé à partir de données d'échantillon, rr 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 (rr).

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 (x,y)(x,y) 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 rr calculée, cette mesure fournit deux indications sur la corrélation :

  1. la force de la corrélation d'après la valeur de rr
  2. la direction de la corrélation d'après le signe de rr

La valeur de rr nous fournit les informations suivantes :

  • La valeur de rr est toujours comprise entre -1-1 et +1+1 : −1≤r≤1−1≤r≤1.
  • L'amplitude de la corrélation rr indique la force de la relation linéaire entre les deux variables. Des valeurs de rr proches de -1-1 ou de +1+1 indiquent une relation linéaire plus forte.
  • Si r=0r=0, il n'y a aucune relation linéaire entre les deux variables (aucune corrélation linéaire).
  • Si r=1r=1, il y a une corrélation positive parfaite. Si r=−1r=−1, 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 rr nous fournit les informations suivantes :

  • Une valeur positive de rr signifie que lorsque xx augmente, yy a tendance à augmenter, et lorsque xx diminue, yy a tendance à diminuer (corrélation positive).
  • Une valeur négative de rr signifie que lorsque xx augmente, yy a tendance à diminuer, et lorsque xx diminue, yy a tendance à augmenter (corrélation négative).

D'après les résultats statistiques obtenus dans la sortie Python, le coefficient de corrélation rr 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, rr, renseigne sur la force et la direction de la relation linéaire entre xx et yy. Les données d'échantillon servent à calculer rr, 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, rr, constitue notre estimation du coefficient de corrélation inconnu de la population.

  • ρ=population correlation coefficient (unknown)ρ=coefficient de corrélation de la population (inconnu)
  • r=sample correlation coefficient (known; calculated from sample data)r=coefficient de corrélation de l'échantillon (connu ; calculé à partir des données de l'échantillon)

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 yy fondées sur les valeurs de xx. 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 rr 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 : H0:ρ=0H0:ρ=0
  • Hypothèse alternative : Ha:ρ≠0Ha:ρ≠0

Les hypothèses peuvent être formulées en langage naturel comme suit :

  • Hypothèse nulle H0H0 : 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 xx et yy dans la population.
  • Hypothèse alternative HaHa : 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 xx et yy 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 |r|≥2n|r|≥2n, 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 rr 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 yy pour des valeurs de xx qui se situent dans le domaine des valeurs de x observées.
  • Si rr 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 rr 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 -0.68-0.68. Il y a 10 points de données (x,y)(x,y) 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 |r|≥2n|r|≥2n, 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 |−0.68||−0.68| est supérieur ou égal à 2n2n où n=10n=10. Comme 210210 est égal à environ 0,632, cela indique que la valeur de r de -0.68-0.68 est supérieure en valeur absolue à 2n2n, 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 (x,y)(x,y) 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 (x,y)(x,y) et la droite ajustée.

Rappelons qu'en algèbre, l'équation d'une droite s'écrit sous la forme :

y=mx+by=mx+b

où mm est la pente de la droite et bb 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 yy où le graphique croise, ou intercepte, l'axe des yy.

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 :

y^=a+bxy^=a+bx

Dans cette écriture, bb est la pente de la droite et aa est l'ordonnée à l'origine. La notation y^y^ se lit « yy chapeau » et sert à indiquer une valeur prédite de la variable dépendante yy pour une valeur donnée de la variable indépendante xx.

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).

Trois encadrés distincts montrent des graphiques linéaires étiquetés respectivement a, b et c. Le graphique a montre une droite de pente ascendante vers la droite. Le graphique b montre une ligne horizontale. Le graphique c montre une droite de pente descendante vers la droite.
Figure 4.6 Trois exemples de représentations de y^=a+bxy^=a+bx. (a) Si b>0b>0, la droite monte vers la droite. (b) Si b=0b=0, la droite est horizontale. (c) Si b<0b<0, la droite descend vers la droite.

En algèbre, pour déterminer l'équation d'une droite à l'aide de y=mx+by=mx+b, deux points (x,y)(x,y) étaient nécessaires. En analyse de régression, en revanche, l'ensemble des points (x,y)(x,y) 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 rr 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 xx est la variable indépendante et yy la variable dépendante, nous pouvons alors utiliser une droite de régression pour prédire yy pour une valeur donnée de xx.

À 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 (x,y)(x,y) sur une certaine période, l'entreprise détermine que l'équation de régression est de la forme suivante :

y^=9376.7+61.8xy^=9376.7+61.8x

où xx représente les dépenses mensuelles en publicité (en milliers de dollars), y^y^ 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 (x,y)(x,y) est présenté à la Figure 4.7.

Un nuage de points des revenus par rapport aux dépenses publicitaires. Le graphique montre que les revenus augmentent d'environ 12 millions de dollars à 19 millions de dollars lorsque les dépenses publicitaires augmentent d'environ 50 000 dollars à 150 000 dollars.
Figure 4.7 Nuage de points des revenus par rapport aux dépenses publicitaires pour une entreprise du Fortune 500 (en milliers de dollars)

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 x=150x=150 dans l'équation de régression et calculons la valeur correspondante de y^y^ :

y^=9376.7+61.8xy^=9376.7+61.8(150)y^=18646.7y^=9376.7+61.8xy^=9376.7+61.8(150)y^=18646.7

Cette valeur prédite de yy 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 y=19,200y=19,200. Le résidu pour ce point de données se calcule de la façon suivante :

Résidu=(valeur y observée)−(valeur y prédite)Résidu=y−y^Résidu=19200−18646.7=553.3Résidu=(valeur y observée)−(valeur y prédite)Résidu=y−y^Résidu=19200−18646.7=553.3

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 yy ; 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 :

Résidu = ( valeur  y  observée ) − ( valeur  y  prédite ) Résidu = y − y ^ Résidu = 94 − 99 = − 5 Résidu = ( valeur  y  observée ) − ( valeur  y  prédite ) Résidu = y − y ^ Résidu = 94 − 99 = − 5

L'objectif de l'analyse de régression est de déterminer les coefficients aa et bb dans l'équation de régression suivante :

y^=a+bxy^=a+bx

Une fois les données (x,y)(x,y) collectées, la pente (bb) et l'ordonnée à l'origine (aa) peuvent être calculées à l'aide des formules suivantes :

b=nΣxy−(Σx)(Σy)nΣx2−(Σx)2a=Σyn−bΣxnb=nΣxy−(Σx)(Σy)nΣx2−(Σx)2a=Σyn−bΣxn

où nn fait référence au nombre de paires de données et ΣxΣx 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 yy, 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 yy, à condition que xx 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 xx et yy de l'échantillon apporte des preuves suffisantes pour conclure à l'existence réelle d'une relation linéaire entre les données xx et yy 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é :

  1. Il existe une relation linéaire dans la population qui modélise la valeur moyenne de yy pour différentes valeurs de xx. En d'autres termes, la valeur attendue de yy 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.)
  2. 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.
  3. Les écarts types des valeurs de y de la population autour de la droite sont égaux pour chaque valeur de xx. 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.
  4. Les erreurs résiduelles sont mutuellement indépendantes (absence de structure particulière).
  5. Les données sont issues d'un échantillon aléatoire ou d'une expérience randomisée bien conçus.
Deux diagrammes d'une droite du meilleur ajustement. Le premier diagramme étiqueté a montre une droite linéairement descendante passant par le centre de trois ensembles verticaux de points dispersés. Le second diagramme étiqueté b montre une droite linéairement descendante passant par la moyenne de trois courbes en cloche inclinées. Le bas de chaque courbe en cloche s'aligne avec la position des trois points dispersés verticaux du diagramme a.
Figure 4.8 Droite du meilleur ajustement. Notez que les valeurs de y pour chaque valeur de x sont normalement distribuées autour de la droite avec le même écart type. Pour chaque valeur de x, la moyenne des valeurs de y se situe sur la droite de régression. Davantage de valeurs de y se trouvent près de la droite qu'éloignées de celle-ci

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 aa et bb dans l'équation de régression suivante :

y^=a+bxy^=a+bx

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 (x,y)(x,y) 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 :

  1. Générer un nuage de points.
  2. Calculer le coefficient de corrélation rr.
  3. Déterminer si la corrélation est significative (utiliser un seuil de signification de 0,05).
  4. Construire un modèle de régression linéaire.
  5. 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
Tableau 4.16 Revenus par rapport aux dépenses publicitaires pour une entreprise (en milliers de dollars)

Solution

  1. 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 Python plt.scatter() peut servir à générer le nuage de points pour les données (x,y)(x,y). Notez que nous considérons la publicité comme la variable indépendante (données xx) et les revenus comme la variable dépendante (données yy), 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 :

Un nuage de points des revenus par rapport aux dépenses publicitaires. Le graphique montre que les revenus augmentent d'environ 12 millions de dollars à 19 millions de dollars lorsque les dépenses publicitaires augmentent d'environ 50 000 dollars à 150 000 dollars.
  1. La fonction Python pearsonr() peut être employée pour déterminer le coefficient de corrélation, rr.

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 r=0.981r=0.981 indique une forte corrélation positive entre les dépenses publicitaires et les revenus.
  1. En utilisant un niveau de signification de 0,05, si |r|≥2n|r|≥2n, 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 |0.981||0.981| est supérieur ou égal à 2n2n où n=12n=12. Comme 212212 est égal à environ 0,577, cela montre que la valeur de r de 0,981 est supérieure à 2n2n, et donc que la corrélation est considérée comme significative.
  2. Le modèle de régression linéaire sera de la forme :
    y^=a+bxy^=a+bx
    Pour déterminer la pente et l'ordonnée à l'origine du modèle de régression, on peut utiliser la fonction Python linregress().
    Cette fonction prend les données xx et yy 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 :

y ^ = a + b x y ^ = 9376.7 + 61.8 x y ^ = a + b x y ^ = 9376.7 + 61.8 x

où xx représente les montants alloués à la publicité (en milliers de dollars) et yy 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) :

Nuage de points montrant une relation linéaire positive entre les dépenses publicitaires et les revenus. Les dépenses publicitaires varient de 40 000 $ à 160 000 $, et les revenus varient de 12 000 $ à 20 000 $. Une droite de régression est ajustée aux données, suggérant une forte corrélation entre les deux variables.
Figure 4.9 Droite du meilleur ajustement superposée au nuage de points
  1. L'équation de régression est : y^=9,376.7+61.8xy^=9,376.7+61.8x.
    Le montant donné des dépenses publicitaires de 100 $ correspond à une valeur de x donnée ; remplacez donc « xx » par 100 dans cette équation de régression pour obtenir le revenu prévu :
    y^=9376.7+61.8xy^=9376.7+61.8(100)y^=15556.7y^=9376.7+61.8xy^=9376.7+61.8(100)y^=15556.7
    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, bb, 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 (yy) varie pour chaque augmentation d'une unité de la variable indépendante (xx), 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 :

y^=a+bxy^=9376.7+61.8xy^=a+bxy^=9376.7+61.8x

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 x=0x=0.

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 yy dans le cas où la variable xx est égale à zéro.

Cependant, dans de nombreuses situations, le fait que la variable xx 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 xx 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 xx 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.