- OLS推定の誤差分散、:σ2
s2=ε^⊤ε^n−p
これは、ジュリアンJ.ファラウェイのRを使用した実用的な回帰とAnovaの21ページに含まれています
。
mtcars
データベースに含まれる複数の車モデルの仕様に回帰したガロンあたりのマイル数の線形モデルに基づく、Rでの計算例:ols = lm(mpg ~ disp + drat + wt, mtcars)
。これらは手動の計算とlm()
関数の出力です:
> rdf = nrow(X) - ncol(X) # Residual degrees of freedom
> s.sq = as.vector((t(ols$residuals) %*% ols$residuals) / rdf)
> # s square (OLS estimate of sigma square)
> (sigma = sqrt(s.sq)) # Residual standar error
[1] 2.950507
> summary(ols)
Call:
lm(formula = mpg ~ disp + drat + wt, data = mtcars)
...
Residual standard error: 2.951 on 28 degrees of freedom
- 分散-推定された係数の共分散行列、:β^
Var[β^∣X]=σ2(X⊤X)−1
このオンラインマニュアルの8ページのように推定さなど
Var^[β^∣X]=s2(X⊤X)−1
> X = model.matrix(ols) # Model matrix X
> XtX = t(X) %*% X # X transpose X
> Sigma = solve(XtX) * s.sq # Variance - covariance matrix
> all.equal(Sigma, vcov(ols)) # Same as built-in formula
[1] TRUE
> sqrt(diag(Sigma)) # Calculated Std. Errors of coef's
(Intercept) disp drat wt
7.099791769 0.009578313 1.455050731 1.217156605
> summary(ols)[[4]][,2] # Output of lm() function
(Intercept) disp drat wt
7.099791769 0.009578313 1.455050731 1.217156605