Charger les packages nécessaires
library(ggplot2)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
library(readxl)
library(dplyr)
library(ISLR)
data("Auto")
?Auto
## starting httpd help server ...
## done
Importation des données:
ind<-read.table("https://chesneau.users.lmno.cnrs.fr/profs.txt",header = T)
attach(ind)
head(ind)
## Y X1 X2 X3 X4 X5
## 1 489 81 151 45.50 43.61 1
## 2 423 68 156 46.45 44.69 1
## 3 507 80 165 76.50 54.57 1
## 4 467 107 149 55.50 43.27 1
## 5 340 43 134 49.40 49.21 1
## 6 524 129 163 72.00 49.96 1
reg<-lm(Y~X1+X2+X3+X4+X5)
Uniquement les coefficients
reg$coefficients
## (Intercept) X1 X2 X3 X4 X5
## -272.0388302 0.7913127 2.6828217 -1.4433759 6.8308063 14.9008181
Les coefficients estimés, l’écart-type la valeur du t de Student
ainsi que la p-value associée au test de nullité du coefficient
summary(reg)$coefficients
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -272.0388302 184.3864705 -1.4753731 0.158393132
## X1 0.7913127 0.5362797 1.4755597 0.158343514
## X2 2.6828217 0.9215630 2.9111647 0.009729533
## X3 -1.4433759 0.8216504 -1.7566789 0.096968221
## X4 6.8308063 1.8192024 3.7548357 0.001578265
## X5 14.9008181 27.3133610 0.5455505 0.592461950
Observer les graphiques retournés lorsque la fonction plot() est
appliquée au résultat de l’estimation;
op<-par(mfrow=c(2,2))
plot(reg)

par(op)
Créer un tableau de donnée scontenant les résidus de la régression,
ainsi qu’une colonne indiquant le numéro des lignes de chaque
observation (quel’on peut appeler index par exemple);
residus <- residuals(reg) # Extract residuals
residus_df <- data.frame(residus = residus) %>% # Create a data frame
mutate(index = row_number()) # Add an index column
Tracer les résidus àl’aided’un nuage de points(les valeurs de la
variable index seront représentées enabscisses). Puis, changer la
représentation géométrique pour afficher un histogramme des
résidus;
ggplot(data=residus_df,aes(x=index,y=residus))+
geom_point()

ggplot(data=residus_df,aes(x=residus))+ geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Construire un intervalle de confiance à 95% pour chacun des
coefficients de la régression. Pour un paramètre α, l’intervalle de
confiance est donné par :
coeffs <- summary(reg)$coef %>% data.frame()
colnames(coeffs) <- c("estimate", "std", "t_value", "p_value")
ddl <- reg$df.residual
coeffs %>%
mutate(b_inf = estimate- qt(p = 0.975, df = ddl) * std,
b_sup = estimate + qt(p = 0.975, df = ddl) * std)
## estimate std t_value p_value b_inf
## (Intercept) -272.0388302 184.3864705 -1.4753731 0.158393132 -661.0602779
## X1 0.7913127 0.5362797 1.4755597 0.158343514 -0.3401385
## X2 2.6828217 0.9215630 2.9111647 0.009729533 0.7384937
## X3 -1.4433759 0.8216504 -1.7566789 0.096968221 -3.1769067
## X4 6.8308063 1.8192024 3.7548357 0.001578265 2.9926246
## X5 14.9008181 27.3133610 0.5455505 0.592461950 -42.7253365
## b_sup
## (Intercept) 116.9826175
## X1 1.9227639
## X2 4.6271497
## X3 0.2901548
## X4 10.6689880
## X5 72.5269727
Les intervalles de Confiance au seuil de 5%
confint(reg, level = 0.95)
## 2.5 % 97.5 %
## (Intercept) -661.0602779 116.9826175
## X1 -0.3401385 1.9227639
## X2 0.7384937 4.6271497
## X3 -3.1769067 0.2901548
## X4 2.9926246 10.6689880
## X5 -42.7253365 72.5269727
Les commandes R por calculer un elipsoîde de Confiance pour (B1 et
B2) au niveau 95% sont:
library(ellipse)
##
## Attaching package: 'ellipse'
## The following object is masked from 'package:graphics':
##
## pairs
plot(ellipse(reg, c(2,3), level=0.95), type= "l")
