如何在 R 中手动找到 se.fit?

机器算法验证 r 回归 标准错误 线性的
2022-03-23 18:32:45

我正在尝试手动查找 se.fit。当我们编写以下代码时,关注第一个观察结果(weight=):1.9

install.packages("DAAG")
library("DAAG")

roller.lm <- lm(depression~weight,data=roller)
roller.pred <- predict(roller.lm,se.fit=T)
summary(roller.lm)[4]
roller.pred$fit[1]
roller.pred$se.fit[1]

我们有这个输出

  > summary(roller.lm)[4]

  $coefficients
                Estimate  Std. Error   t value    Pr(>|t|)
  (Intercept)  -2.087148  4.7542813  -0.4390038  0.672274166
     weight     2.666746  0.7002426   3.8083171  0.005175013

   > roller.pred$fit[1]
   1 
   2.979669

   > roller.pred$se.fit[1]
   [1] 3.614297

所以我想使用这些信息来查找se.fit. 使用系数的se,我们有:

y^1=

=(2.087148±4.7542813)+(2.666746±0.7002426)×1.9

=(2.087148+2.666746×1.9)±(4.7542813+0.7002426×1.9)

=2.9796694±5.4545239

那么为什么 R 给我而不是我的计算我怎样才能发现使用这些数据?3.6142975.4545239se.fit

1个回答

你不能只是把标准错误加起来。您需要处理系数估计的方差和协方差,然后取平方根以返回标准误差尺度。

相关变量加权和的方差公式是关键,因为截距和斜率的估计是相关的随机变量,而不是独立的。用于vcov(roller.lm)获取方差/协方差矩阵(方差是对角线元素,协方差是非对角线)。然后应用该公式来获得加权和的估计方差(截距的权重为 1,斜率的权重为x您想要估计的值)。平方根给出标准误差。

该答案详细介绍了基础代码,展示了如何使用标准误差来获得置信限和预测区间。