如何计算 R 中线性回归模型中斜率的 95% 置信区间

Posted

技术标签:

【中文标题】如何计算 R 中线性回归模型中斜率的 95% 置信区间【英文标题】:How to calculate the 95% confidence interval for the slope in a linear regression model in R 【发布时间】:2013-02-17 06:27:29 【问题描述】:

这是一个来自 Introductory Statistics with R 的练习:

使用 rmr 数据集,绘制代谢率与体重的关系图。将线性回归模型拟合到该关系。根据拟合模型,体重 70 公斤的预测代谢率是多少?给出直线斜率的 95% 置信区间。

rmr 数据集在“ISwR”包中。它看起来像这样:

> rmr
   body.weight metabolic.rate
1         49.9           1079
2         50.8           1146
3         51.8           1115
4         52.6           1161
5         57.6           1325
6         61.4           1351
7         62.3           1402
8         64.9           1365
9         43.1            870
10        48.1           1372
11        52.2           1132
12        53.5           1172
13        55.0           1034
14        55.0           1155
15        56.0           1392
16        57.8           1090
17        59.0            982
18        59.0           1178
19        59.2           1342
20        59.5           1027
21        60.0           1316
22        62.1           1574
23        64.9           1526
24        66.0           1268
25        66.4           1205
26        72.8           1382
27        74.8           1273
28        77.1           1439
29        82.0           1536
30        82.0           1151
31        83.4           1248
32        86.2           1466
33        88.6           1323
34        89.3           1300
35        91.6           1519
36        99.8           1639
37       103.0           1382
38       104.5           1414
39       107.7           1473
40       110.2           2074
41       122.0           1777
42       123.1           1640
43       125.2           1630
44       143.3           1708

我知道如何计算给定 x 处的预测 y,但如何计算斜率的置信区间?

【问题讨论】:

你试过?confint吗? 【参考方案1】:

让我们拟合模型:

> library(ISwR)
> fit <- lm(metabolic.rate ~ body.weight, rmr)
> summary(fit)

Call:
lm(formula = metabolic.rate ~ body.weight, data = rmr)

Residuals:
    Min      1Q  Median      3Q     Max 
-245.74 -113.99  -32.05  104.96  484.81 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 811.2267    76.9755  10.539 2.29e-13 ***
body.weight   7.0595     0.9776   7.221 7.03e-09 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 157.9 on 42 degrees of freedom
Multiple R-squared: 0.5539, Adjusted R-squared: 0.5433 
F-statistic: 52.15 on 1 and 42 DF,  p-value: 7.025e-09 

斜率的 95% 置信区间是估计系数 (7.0595) ± 两个标准误 (0.9776)。

这可以使用confint 计算:

> confint(fit, 'body.weight', level=0.95)
               2.5 % 97.5 %
body.weight 5.086656 9.0324

【讨论】:

这相当于:coef=summary(fit)$coefficients[2,1] err=summary(fit)$coefficients[2,2] coef + c(-1,1)*err*qt(0.975, 42) [1] 5.086656 9.032400: 估计系数 +- qt(1-alpha/2, df) 标准误差 谢谢你,NPE!所以估计系数+/-两个标准误差是一个近似值,后一种方法提供了一种准确的方法来计算置信区间,对吧? 是的,两个 SE 是一个不错的选择:如果线性模型假设是正确的,那么它将遵循 T 分布,因此随着样本量的增加,它接近 ~1.96,对于较小的样本,它会更高。 @NPE:您是否假设斜率值是高斯 pdf?如果这个假设不成立,您可以使用引导方法。

以上是关于如何计算 R 中线性回归模型中斜率的 95% 置信区间的主要内容,如果未能解决你的问题,请参考以下文章

R线性回归模型构建:残差值回归值预测域置信区间

R中线性回归模型后的置信区间[关闭]

多元线性回归方程公式

R中具有置信区间图的线性回归预测

绘制 lm 对象的 95% 置信区间

EXCEL线性回归中 df , significanceF , F , coefficients , Standard Error , t Stat , P-value 啥意思