El modelo lineal se escribe como
donde denota el vector de respuestas, es el vector de los parámetros de efectos fijos, es la matriz de diseño correspondiente cuyas columnas son los valores de las variables explicativas, y es el vector de errores aleatorios.
∣∣∣y=Xβ+ϵϵ∼N(0,σ2I),
yβXϵ
Es bien sabido que una estimación de viene dada por (consulte, por ejemplo, el artículo de Wikipedia )
Por lo tanto,
[recordatorio: , para algunos vectores aleatorios y algunas matrices no aleatorias ]β
β^=(X′X)−1X′y.
Var(β^)=(X′X)−1X′σ2IX(X′X)−1=σ2(X′X)−1,
Var(AX)=A×Var(X)×A'XA
para que
donde se puede obtener por el error cuadrático medio (MSE) en la tabla ANOVA.
Varˆ(β^)=σ^2(X′X)−1,
σ^2
Ejemplo con una regresión lineal 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
#----------------------
Cuando hay una sola variable explicativa, el modelo se reduce a
y
para que
y las fórmulas se vuelven más transparentes. Por ejemplo, el error estándar de la pendiente estimada es
yi=a+bxi+ϵi,i=1,…,n
X=⎛⎝⎜⎜⎜⎜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