线性回归误差的方差-协方差矩阵

机器算法验证 方差 错误 协方差矩阵 贝塔回归
2022-03-05 20:19:58

在实践中统计分析包是如何计算 var/cov 误差矩阵的?

这个想法在理论上对我来说是很清楚的。但在实践中并非如此。我的意思是,如果我有一个随机变量向量,我知道方差/协方差矩阵将给出均值偏差向量的外积:X=(X1,X2,,Xn)ΣΣ=E[(XE(X))(XE(X))]

但是当我有一个样本时,我的观察误差不是随机变量。或者更好的是,它们是,但前提是我从同一人群中抽取了许多相同的样本。否则,他们会被给予。所以,我的问题再次是:统计包如何从研究人员提供的观察列表(即样本)开始生成 var/cov 矩阵?

3个回答

类型的模型的协方差矩阵通常计算为其中是残差平方和,是自由度(通常是观察数减去参数数)。y=Xβ+ϵ

(XtX)1σ2d
σ2σ2=i(yiXiβ^)2d

对于稳健和/或聚集的标准误差,乘积稍作修改。也可能有其他方法来计算协方差矩阵,例如由外部产品的期望所建议的。XtX

  1. 误差方差OLS 估计σ2

s2=ε^ε^np

这包含在Julian J. Faraway 的 Practical Regression and Anova using R 中,第 21 页

它在 R 中的计算示例,基于对mtcars数据库中包含的多个汽车模型规格进行回归的每加仑英里数的线性模型: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
  1. Variance - 估计系数的协方差矩阵β^

Var[β^X]=σ2(XX)1

在本在线文档的第 8 页中估计

Var^[β^X]=s2(XX)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 

通过线性回归,我们拟合了一个模型是因变量,是预测(解释)变量。我们使用提供给我们的数据(训练集或样本)来估计总体不被视为随机变量由于是随机的。Y=βX+εYXβXY