1. Chargement des packages:

Dans la première section de votre document, chargeons les packages R nécessaires, par exemple, “tidyverse” pour manipuler les données et générer des graphiques et “FactoMineR” pour formuler des régressions.

# install.packages("tidyverse")
# install.packages("FactoMineR")
library(tidyverse)
library(FactoMineR)

2. Chargement et exploration des données:

La base de données “mtcars” est déjà incluse dans R. nous pouvons la charger et explorer ses premières lignes.

data(mtcars)
head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

3. Analyse des statistiques descriptives:

Créons une section pour effectuer une analyse des statistiques descriptives des variables dans la base de données “mtcars”. nous pouvons générer des résumés statistiques, des graphiques de distribution et des statistiques clés pour chaque variable.

summary(mtcars)
##       mpg             cyl             disp             hp       
##  Min.   :10.40   Min.   :4.000   Min.   : 71.1   Min.   : 52.0  
##  1st Qu.:15.43   1st Qu.:4.000   1st Qu.:120.8   1st Qu.: 96.5  
##  Median :19.20   Median :6.000   Median :196.3   Median :123.0  
##  Mean   :20.09   Mean   :6.188   Mean   :230.7   Mean   :146.7  
##  3rd Qu.:22.80   3rd Qu.:8.000   3rd Qu.:326.0   3rd Qu.:180.0  
##  Max.   :33.90   Max.   :8.000   Max.   :472.0   Max.   :335.0  
##       drat             wt             qsec             vs        
##  Min.   :2.760   Min.   :1.513   Min.   :14.50   Min.   :0.0000  
##  1st Qu.:3.080   1st Qu.:2.581   1st Qu.:16.89   1st Qu.:0.0000  
##  Median :3.695   Median :3.325   Median :17.71   Median :0.0000  
##  Mean   :3.597   Mean   :3.217   Mean   :17.85   Mean   :0.4375  
##  3rd Qu.:3.920   3rd Qu.:3.610   3rd Qu.:18.90   3rd Qu.:1.0000  
##  Max.   :4.930   Max.   :5.424   Max.   :22.90   Max.   :1.0000  
##        am              gear            carb      
##  Min.   :0.0000   Min.   :3.000   Min.   :1.000  
##  1st Qu.:0.0000   1st Qu.:3.000   1st Qu.:2.000  
##  Median :0.0000   Median :4.000   Median :2.000  
##  Mean   :0.4062   Mean   :3.688   Mean   :2.812  
##  3rd Qu.:1.0000   3rd Qu.:4.000   3rd Qu.:4.000  
##  Max.   :1.0000   Max.   :5.000   Max.   :8.000
hist(mtcars$mpg)

boxplot(mtcars$hp)

4. Matrice de corrélation:

Créons une matrice de corrélation pour identifier les relations linéaires entre les variables.

correlation_matrix <- cor(mtcars)
heatmap(correlation_matrix)

5. Construction du modèle de régression linéaire:

Définissons et ajustons le modèle de régression linéaire en utilisant les variables de la base de données “mtcars”. Affichons un résumé du modèle qui comprend les coefficients, les intervalles de confiance, et les p-valeurs.

model_reg <- lm(mpg ~ hp, data = mtcars)
summary(model_reg)
## 
## Call:
## lm(formula = mpg ~ hp, data = mtcars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.7121 -2.1122 -0.8854  1.5819  8.2360 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 30.09886    1.63392  18.421  < 2e-16 ***
## hp          -0.06823    0.01012  -6.742 1.79e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.863 on 30 degrees of freedom
## Multiple R-squared:  0.6024, Adjusted R-squared:  0.5892 
## F-statistic: 45.46 on 1 and 30 DF,  p-value: 1.788e-07

Interprétation :

1 - Modèle de Régression Linéaire : Le modèle de régression linéaire utilisé est le suivant : mpg ~ hp, ce qui signifie que la variable “mpg” (miles per gallon) est expliquée en fonction de la variable “hp” (horsepower).

2 - Residuals (Résidus) : Les résidus représentent les erreurs du modèle. Ils varient de -5.7121 à 8.2360, ce qui signifie que les erreurs varient dans cette plage. Les résidus sont répartis autour de zéro, ce qui est un bon signe pour la qualité du modèle.

3 - Coefficients : Les coefficients du modèle sont les estimations des paramètres de la régression. Dans ce cas, il y a deux coefficients :

  • L’intercept (constante) : L’estimation est de 30.09886, ce qui signifie que lorsque la variable “hp” est égale à zéro, la variable “mpg” est estimée à 30.09886.
  • Le coefficient de “hp” : L’estimation est de -0.06823, ce qui signifie que pour chaque unité d’augmentation de “hp,” la variable “mpg” diminue en moyenne de 0.06823 unités.

4 - P-value : La colonne “Pr(>|t|)” indique les p-valeurs associées à chaque coefficient. Pour l’intercept, la p-valeur est très proche de zéro, ce qui signifie que l’intercept est statistiquement significatif. Pour “hp,” la p-valeur est également très proche de zéro, indiquant que “hp” est statistiquement significatif.

5 - Residual standard error : C’est l’écart-type des résidus. Il est de 3.863 dans ce cas, ce qui signifie que les résidus ont une dispersion d’environ 3.863 unités autour de la ligne de régression.

6 - R-squared (Coefficient de détermination) : Le R² est de 0.6024, ce qui signifie que le modèle explique environ 60.24 % de la variance dans la variable “mpg.” En d’autres termes, le modèle est capable d’expliquer 60.24 % de la variabilité de “mpg.”

7 - Adjusted R-squared (R² ajusté) : Le R² ajusté est de 0.5892. Il tient compte du nombre de prédicteurs dans le modèle. C’est une mesure plus robuste du modèle lorsqu’il y a plusieurs variables indépendantes.

8 - F-statistic : Le F-statistic est un test global de l’ensemble du modèle. Dans ce cas, il est de 45.46, avec 1 et 30 degrés de liberté, et une p-valeur très proche de zéro. Cela signifie que le modèle dans son ensemble est statistiquement significatif.

En résumé, ce modèle de régression linéaire suggère que la variable “hp” a un effet statistiquement significatif sur la variable “mpg.” Pour chaque augmentation d’une unité de “hp,” la valeur de “mpg” diminue d’environ 0.06823 unités. Le modèle est globalement significatif, et il explique environ 60 % de la variance de “mpg.”

6. Analyse de la qualité du modèle:

Vérifions les hypothèses de la régression linéaire et effectuez des tests de diagnostic, tels que l’analyse de résidus.

6.1 - Analyse des résidus :

Les résidus sont les erreurs du modèle, et il est essentiel de s’assurer qu’ils respectent les hypothèses de la régression linéaire.

# Extraction des résidus du modèle
residuals <- residuals(model_reg)

# Graphique de normalité des résidus
qqnorm(residuals)
qqline(residuals)

# Graphique de répartition des résidus en fonction de la prédiction
plot(model_reg)

# Test de normalité des résidus (test de Shapiro-Wilk)
shapiro.test(residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals
## W = 0.92337, p-value = 0.02568

Commentaire :

Les résidus suivent une distribution normale suivant le graphique QQ-Plot et le test de Shapiro de normalité.

6.2 - Test d’homoscédasticité :

L’homoscédasticité signifie que la variance des résidus est constante à tous les niveaux des valeurs prédites.

# Installer et charger le package "lmtest" si ce n'est pas déjà fait
# install.packages("lmtest")
library(lmtest)

# Effectuer le test de Breusch-Pagan pour l'homoscédasticité
bptest(model_reg)
## 
##  studentized Breusch-Pagan test
## 
## data:  model_reg
## BP = 0.049298, df = 1, p-value = 0.8243
# Effectuer le test de White pour l'homoscédasticité
waldtest(model_reg, vcov = vcov)
## Wald test
## 
## Model 1: mpg ~ hp
## Model 2: mpg ~ 1
##   Res.Df Df     F    Pr(>F)    
## 1     30                       
## 2     31 -1 45.46 1.788e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Effectuer le test de Goldfeld-Quandt pour l'homoscédasticité
gqtest(model_reg)
## 
##  Goldfeld-Quandt test
## 
## data:  model_reg
## GQ = 4.564, df1 = 14, df2 = 14, p-value = 0.003756
## alternative hypothesis: variance increases from segment 1 to 2
# Graphique de dispersion des résidus en fonction de la prédiction
plot(fitted(model_reg), residuals)

Commentaire 1 :

  • “BP” est la statistique de test de Breusch-Pagan. Dans votre cas, la valeur de cette statistique est de 0.049298.

  • “df” représente les degrés de liberté associés à la statistique du test. Ici, il y a 1 degré de liberté.

  • “p-value” est la valeur-p associée au test. Dans votre cas, la p-value est de 0.8243.

  • L’interprétation de ces résultats est la suivante :

Le test de Breusch-Pagan vise à évaluer l’hypothèse nulle que la variance des résidus est constante (homoscédasticité). Si la p-value est supérieure à un seuil de signification (généralement 0.05), cela suggère qu’il n’y a pas suffisamment de preuves pour rejeter l’hypothèse nulle. Dans notre cas, la p-value est très élevée (0.8243), bien supérieure à 0.05. Par conséquent, nous ne disposons pas de suffisamment de preuves pour conclure que l’homoscédasticité n’est pas respectée. En d’autres termes, le modèle semble respecter l’hypothèse d’homoscédasticité, ce qui est une bonne chose pour l’interprétation du modèle de régression.

Commentaire 2 :

  • Model 1 : mpg ~ hp (Un modèle incluant la variable “hp” comme prédicteur).

  • Model 2 : mpg ~ 1 (Un modèle qui ne comprend que l’intercept, c’est-à-dire un modèle sans prédicteur, c’est le modèle de base).

– “Res.Df” est le nombre de degrés de liberté résiduels, qui mesure la quantité d’informations restantes après avoir ajusté les modèles.

– “Df” est la différence entre les degrés de liberté des deux modèles. Dans ce cas, Model 2 a un degré de liberté supplémentaire par rapport à Model 1.

– “F” est la statistique F du test Wald. Il mesure la différence entre les deux modèles.

– “Pr(>F)” est la p-value associée à la statistique F. Elle indique si la différence entre les modèles est statistiquement significative.

Dans notre résultat, la p-value associée à la statistique F est très proche de zéro (1.788e-07). Cela signifie que la différence entre les deux modèles (Model 1 et Model 2) est statistiquement significative. En d’autres termes, il y a suffisamment de preuves pour rejeter le modèle plus simple (Model 2) en faveur du modèle plus complexe (Model 1) qui inclut la variable “hp” comme prédicteur.

Le modèle qui inclut la variable “hp” est donc statistiquement préférable à un modèle sans prédicteur. Cela suggère que la variable “hp” a un effet significatif sur la variable “mpg,” et le modèle global est significatif.

En résumé, le test Wald confirme que le modèle de régression qui inclut la variable “hp” est statistiquement significatif par rapport à un modèle plus simple sans prédicteur.

Commentaire 3 :

  • “GQ” est la statistique de test de Goldfeld-Quandt, qui est égale à 4.564 dans votre cas.

  • “df1” et “df2” sont les degrés de liberté associés au test. Dans votre cas, il y a 14 degrés de liberté pour chaque groupe ou segment de données.

  • “p-value” est la valeur-p associée au test. La p-value est de 0.003756.

  • L’hypothèse alternative est spécifiée : “variance increases from segment 1 to 2”, ce qui signifie que le test cherche à déterminer si la variance des résidus augmente significativement d’un segment de données à un autre.

Interprétation :

La p-value est très faible (0.003756), ce qui suggère que nous disposons de suffisamment de preuves pour rejeter l’hypothèse nulle selon laquelle la variance des résidus est constante d’un segment à l’autre. En d’autres termes, la variance des résidus semble varier de manière significative entre les deux segments de données.

L’hypothèse alternative indique que la variance des résidus augmente d’un segment à l’autre, ce qui est une indication d’hétéroscédasticité conditionnelle. Cela peut avoir des implications importantes pour l’interprétation du modèle de régression, car cela signifie que la variabilité des résidus dépend des valeurs d’une variable indépendante ou d’une caractéristique particulière des données.

En résumé, le test de Goldfeld-Quandt indique qu’il y a des preuves d’hétéroscédasticité conditionnelle dans nos données, ce qui peut affecter la fiabilité de notre modèle de régression.

6.3 - Evaluation globale du modèle :

Pour évaluer globalement la qualité du modèle, nous pouvons utiliser les métriques suivantes :

# Coefficient de détermination (R²)
summary(model_reg)$r.squared
## [1] 0.6024373
# Erreur quadratique moyenne (RMSE)
sqrt(mean(residuals^2))
## [1] 3.740297
# Erreur absolue moyenne (MAE)
mean(abs(residuals))
## [1] 2.907452

Le coefficient de détermination (R²) mesure la proportion de la variance de la variable dépendante expliquée par le modèle. Le RMSE et le MAE mesurent l’erreur moyenne du modèle.

6.4 - Analyse des valeurs aberrantes :

Pour détecter les valeurs aberrantes qui pourraient influencer le modèle, nous pouvons utiliser des tests ou des graphiques :

# Test de Grubbs pour détecter les valeurs aberrantes
library(car)
outlierTest(model_reg)
## No Studentized residuals with Bonferroni p < 0.05
## Largest |rstudent|:
##               rstudent unadjusted p-value Bonferroni p
## Maserati Bora 2.568387           0.015632      0.50021
# Graphique de résidus studentisés
plot(model_reg, which=4)

Le test de Grubbs permet de détecter les valeurs aberrantes. Le graphique de résidus studentisés identifie les observations potentiellement problématiques.

commentaire :

Le message “No Studentized residuals with Bonferroni p < 0.05” indique que, dans le contexte de l’analyse de régression, aucun résidu studentisé (studentized residuals) n’a été trouvé avec une valeur p inférieure à 0.05 après avoir appliqué l’ajustement de correction de Bonferroni.

Pour interpréter cela, il faut comprendre ce que sont les résidus studentisés et la correction de Bonferroni :

  • Résidus studentisés (Studentized Residuals) : Les résidus studentisés sont des résidus standardisés qui prennent en compte la variabilité des résidus. Ils sont utilisés pour détecter les valeurs aberrantes potentielles dans un modèle de régression.

  • Correction de Bonferroni : La correction de Bonferroni est une méthode statistique qui ajuste les seuils de signification (niveaux de confiance) pour contrôler le taux d’erreur de type I (faux positifs) lors de la réalisation de multiples tests.

Dans notre cas, le message indique que, après avoir calculé les résidus studentisés et appliqué la correction de Bonferroni, aucun résidu studentisé n’a été identifié comme une valeur aberrante significative (avec une valeur p inférieure à 0.05). En d’autres termes, il n’y a pas de valeurs aberrantes détectées dans le modèle de régression à un seuil de signification de 0.05 (après correction de Bonferroni).

Cela signifie que, selon cette analyse, il n’y a pas de données atypiques ou aberrantes qui ont un impact significatif sur les résultats de notre modèle de régression. notre modèle semble stable et n’est pas affecté de manière importante par des valeurs aberrantes, du moins selon les critères utilisés dans cette analyse spécifique.

7. Prédiction et validation du modèle:

Utilisons le modèle pour faire des prédictions sur de nouvelles données ou évaluez ses performances sur l’ensemble de données actuel.

7.1 - Prédiction sur de nouvelles données :

Pour effectuer des prédictions sur de nouvelles données, créons un nouveau jeu de données avec des valeurs pour les variables indépendantes, puis utilisez la fonction predict.

# Créer de nouvelles données de test
new_data <- data.frame(hp = c(100, 150, 200))

# Faire des prédictions avec le modèle
predictions <- predict(model_reg, newdata = new_data)
print(predictions)
##        1        2        3 
## 23.27603 19.86462 16.45320

Commentaire :

1 - Première Prédiction (Index 1, Valeur : 23.27603) : Cela signifie que pour la première observation (peut-être une voiture spécifique avec une valeur particulière de “hp”), le modèle prédit une consommation de carburant d’environ 23.28 miles per gallon (mpg) en fonction de la puissance du moteur.

2 - Deuxième Prédiction (Index 2, Valeur : 19.86462) : Pour la deuxième observation, le modèle prédit une consommation de carburant d’environ 19.86 mpg.

3 - Troisième Prédiction (Index 3, Valeur : 16.45320) : De même, pour la troisième observation, le modèle prédit une consommation de carburant d’environ 16.45 mpg.

7.2 - Évaluation des performances sur l’ensemble de données actuel :

Pour évaluer les performances du modèle sur l’ensemble de données actuel, vous pouvez utiliser des mesures d’évaluation telles que le coefficient de détermination (R²), l’erreur quadratique moyenne (RMSE), ou l’erreur absolue moyenne (MAE).

# Calculer les prédictions sur l'ensemble de données actuel
predictions_on_data <- predict(model_reg)

# Calculer le R²
R_squared <- 1 - sum((mtcars$mpg - predictions_on_data)^2) / sum((mtcars$mpg - mean(mtcars$mpg))^2)
print(paste("Coefficient de détermination (R²) :", R_squared))
## [1] "Coefficient de détermination (R²) : 0.602437341423934"
# Calculer le RMSE
RMSE <- sqrt(mean((mtcars$mpg - predictions_on_data)^2))
print(paste("Erreur quadratique moyenne (RMSE) :", RMSE))
## [1] "Erreur quadratique moyenne (RMSE) : 3.74029708689949"
# Calculer le MAE
MAE <- mean(abs(mtcars$mpg - predictions_on_data))
print(paste("Erreur absolue moyenne (MAE) :", MAE))
## [1] "Erreur absolue moyenne (MAE) : 2.90745247423476"

Interprétations :

1 - Coefficient de détermination (R²) : 0.6024

Le coefficient de détermination (R²) mesure la proportion de la variance de la variable dépendante (dans ce cas, “mpg”) expliquée par le modèle de régression.

Un R² de 0.6024 signifie que le modèle est capable d’expliquer environ 60.24 % de la variabilité de la consommation de carburant (mpg).

En d’autres termes, le modèle de régression linéaire a une capacité modérée à expliquer les variations de la consommation de carburant en fonction de la puissance du moteur (hp). Plus le R² est proche de 1, plus le modèle est capable d’expliquer la variabilité des données.

2 - Erreur quadratique moyenne (RMSE) : 3.7403

L’erreur quadratique moyenne (RMSE) est une mesure de l’erreur moyenne entre les valeurs observées (les données réelles) et les valeurs prédites par le modèle.

Un RMSE de 3.7403 indique que, en moyenne, les prédictions du modèle ont une erreur d’environ 3.74 unités (dans l’unité de mesure de la variable “mpg”). Plus le RMSE est faible, plus le modèle est précis dans ses prédictions.

3 - Erreur absolue moyenne (MAE) : 2.9075

L’erreur absolue moyenne (MAE) est une autre mesure de l’erreur moyenne entre les valeurs observées et prédites.

Un MAE de 2.9075 indique que, en moyenne, les prédictions du modèle ont une erreur absolue d’environ 2.91 unités (dans l’unité de mesure de la variable “mpg”). Le MAE est également une mesure de la précision du modèle, et un MAE plus faible indique une meilleure précision.

En résumé, ces résultats indiquent que le modèle de régression linéaire explique une proportion significative de la variance de la consommation de carburant (R² de 0.6024) et que les prédictions du modèle ont une erreur moyenne d’environ 3.74 unités (RMSE) ou une erreur absolue moyenne d’environ 2.91 unités (MAE). Cela suggère que le modèle a une certaine capacité à prédire la consommation de carburant en fonction de la puissance du moteur, bien qu’il puisse y avoir encore de la variabilité non expliquée.

# Autocorrélations des résidus
acf(residuals(model_reg))

# Installer le package "lmtest" si ce n'est pas déjà fait
# install.packages("lmtest")
library(lmtest)

# Effectuer le test de Durbin-Watson
dwtest(model_reg)
## 
##  Durbin-Watson test
## 
## data:  model_reg
## DW = 1.1338, p-value = 0.00411
## alternative hypothesis: true autocorrelation is greater than 0

Interprétations :

  • Statistique DW : DW = 1.1338

  • Valeur p (p-value) : p-value = 0.00411 Hypothèses de test :

  • Hypothèse nulle (H0) : Il n’y a pas d’autocorrélation positive des résidus (l’autocorrélation est égale à 0).

  • Hypothèse alternative (H1) : Il y a une autocorrélation positive des résidus (l’autocorrélation est supérieure à 0). Interprétation :

La statistique DW (DW = 1.1338) se situe entre 0 et 4, où une valeur de 2 indiquerait l’absence d’autocorrélation positive ou négative. La valeur p (p-value = 0.00411) est inférieure au seuil de signification communément utilisé de 0.05.

En conséquence :

Étant donné que la valeur p est inférieure à 0.05, nous avons des preuves statistiques pour rejeter l’hypothèse nulle (H0) selon laquelle il n’y a pas d’autocorrélation positive des résidus. Cela signifie que l’autocorrélation positive des résidus est statistiquement significative. En d’autres termes, il y a des indications que les résidus adjacents dans votre modèle de régression sont corrélés positivement.