Le modèle linéaire est écrit comme
où Y désigne le vecteur des réponses, est le vecteur des paramètres d'effets fixes, est la matrice de plan correspondant dont les colonnes sont les valeurs des variables explicatives et est le vecteur des erreurs aléatoires.
∣∣∣y=Xβ+ϵϵ∼N(0,σ2I),
yX ϵβXϵ
Il est bien connu qu'une estimation de est donnée par (voir, par exemple, l'article de Wikipédia )
D'où
[rappel: , pour un vecteur aléatoire et pour une matrice non aléatoire ]ß = ( X ' X ) - 1 X ' y . Var ( β ) = ( X ' X ) - 1 X 'β
β^=(X′X)−1X′y.
Var ( A X ) = A × Var ( X ) × A ' X AVar(β^)=(X′X)−1X′σ2IX(X′X)−1=σ2(X′X)−1,
Var(AX)=A×Var(X)×A'XA
afin que
où peut être obtenu par l'erreur quadratique moyenne (MSE) dans la table ANOVA. σ 2
Varˆ(β^)=σ^2(X′X)−1,
σ^2
Exemple avec une régression linéaire simple en R
#------generate one data set with epsilon ~ N(0, 0.25)------
seed <- 1152 #seed
n <- 100 #nb of observations
a <- 5 #intercept
b <- 2.7 #slope
set.seed(seed)
epsilon <- rnorm(n, mean=0, sd=sqrt(0.25))
x <- sample(x=c(0, 1), size=n, replace=TRUE)
y <- a + b * x + epsilon
#-----------------------------------------------------------
#------using lm------
mod <- lm(y ~ x)
#--------------------
#------using the explicit formulas------
X <- cbind(1, x)
betaHat <- solve(t(X) %*% X) %*% t(X) %*% y
var_betaHat <- anova(mod)[[3]][2] * solve(t(X) %*% X)
#---------------------------------------
#------comparison------
#estimate
> mod$coef
(Intercept) x
5.020261 2.755577
> c(betaHat[1], betaHat[2])
[1] 5.020261 2.755577
#standard error
> summary(mod)$coefficients[, 2]
(Intercept) x
0.06596021 0.09725302
> sqrt(diag(var_betaHat))
x
0.06596021 0.09725302
#----------------------
Lorsqu'il n'y a qu'une seule variable explicative, le modèle se réduit à
et
pour que
et les formules deviennent plus transparentes. Par exemple, l’erreur type de la pente estimée est
X = ( 1 x 1 1 x 2 ⋮ ⋮ 1 x n ) ,
yi=a+bxi+ϵi,i=1,…,n
( X ' X ) - 1 = 1X=⎛⎝⎜⎜⎜⎜11⋮1x1x2⋮xn⎞⎠⎟⎟⎟⎟,β=(ab)
√(X′X)−1=1n∑x2i−(∑xi)2(∑x2i−∑xi−∑xin)
Varˆ(b^)−−−−−−√=[σ^2(X′X)−1]22−−−−−−−−−−−√=nσ^2n∑x2i−(∑xi)2−−−−−−−−−−−−−−−√.
> num <- n * anova(mod)[[3]][2]
> denom <- n * sum(x^2) - sum(x)^2
> sqrt(num / denom)
[1] 0.09725302