如何在R中使用回归模型找到预测值的置信区间?
使用回归模型可以找到使用回归模型的预测值的置信区间,我们只需要使用区间参数作为置信度,并为此使用适当的水平即可。例如,如果我们有一个模型M,并且自变量值的数据帧被命名为newdata,那么我们可以对置信区间使用以下语法-
predict(M,newdata,se.fit=TRUE,interval="confidence",level=0.95)
示例
请看以下数据帧-
set.seed(1234)x1<-sample(0:10,20,replace=TRUE)
y1<-sample(6:10,20,replace=TRUE)
df1<-data.frame(x1,y1)
df1
输出结果
x1 y11 9 8
2 5 9
3 4 10
4 8 7
5 4 10
6 5 7
7 3 8
8 1 9
9 6 9
10 5 8
11 9 6
12 5 8
13 3 9
14 7 7
15 3 8
16 3 7
17 4 10
18 7 6
19 3 8
20 7 6
示例
M1<-lm(y1~x1,data=df1)summary(M1)
输出结果
Call:lm(formula = y1 ~ x1, data = df1)
Residuals:
Min 1Q Median 3Q Max
-1.6617 -0.6775 -0.1775 1.0566 1.6611
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 9.6299 0.6342 15.185 1.05e-11 ***
x1 -0.3228 0.1155 -2.795 0.012 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.113 on 18 degrees of freedom
Multiple R-squared: 0.3026, Adjusted R-squared: 0.2638
F-statistic: 7.809 on 1 and 18 DF, p-value: 0.01198
创建新数据并找到该数据的拟合值的95%置信区间-
示例
newdata_x1<-data.frame(x1=c(5,2,3))predict(M1,newdata_x1,se.fit=TRUE,interval="confidence",level=0.95)
$fit
输出结果
fit lwr upr1 8.016138 7.492902 8.539373
2 8.984400 8.078130 9.890670
3 8.661646 7.939804 9.383488
示例
$se.fit
输出结果
1 2 30.2490503 0.4313678 0.3435835
示例
$df
输出结果
[1] 18
示例
$residual.scale
输出结果
[1] 1.113487
找到该数据的拟合值的90%置信区间-
示例
predict(M1,newdata_x1,se.fit=TRUE,interval="confidence",level=0.90)$fit
输出结果
fit lwr upr1 8.016138 7.584269 8.448007
2 8.984400 8.236381 9.732419
3 8.661646 8.065850 9.257442
示例
$se.fit
输出结果
1 2 30.2490503 0.4313678 0.3435835
示例
$df
输出结果
[1] 18
示例
$residual.scale
输出结果
[1] 1.113487
找到该数据的拟合值的80%置信区间-
示例
predict(M1,newdata_x1,se.fit=TRUE,interval="confidence",level=0.80)$fit
输出结果
fit lwr upr1 8.016138 7.684803 8.347472
2 8.984400 8.410512 9.558288
3 8.661646 8.204546 9.118746
示例
$se.fit
输出结果
1 2 30.2490503 0.4313678 0.3435835
示例
$df
输出结果
[1] 18
示例
$residual.scale
输出结果
[1] 1.113487
找到该数据的拟合值的75%置信区间-
示例
predict(M1,newdata_x1,se.fit=TRUE,interval="confidence",level=0.75)$fit
输出结果
fit lwr upr1 8.016138 7.720089 8.312187
2 8.984400 8.471628 9.497172
3 8.661646 8.253224 9.070068
示例
$se.fit
输出结果
1 2 30.2490503 0.4313678 0.3435835
示例
$df
输出结果
[1] 18
示例
$residual.scale
输出结果
[1] 1.113487
找到该数据的拟合值的99%置信区间-
示例
predict(M1,newdata_x1,se.fit=TRUE,interval="confidence",level=0.99)$fit
输出结果
fit lwr upr1 8.016138 7.299261 8.733014
2 8.984400 7.742734 10.226067
3 8.661646 7.672662 9.650631
示例
$se.fit
输出结果
1 2 30.2490503 0.4313678 0.3435835
示例
$df
输出结果
[1] 18
示例
$residual.scale
输出结果
[1] 1.113487
以上是 如何在R中使用回归模型找到预测值的置信区间? 的全部内容, 来源链接: utcz.com/z/331232.html