前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >R语言基于Bootstrap的线性回归预测置信区间估计方法分析汽车制动距离|数据分享

R语言基于Bootstrap的线性回归预测置信区间估计方法分析汽车制动距离|数据分享

作者头像
拓端
发布于 2025-01-15 13:52:40
发布于 2025-01-15 13:52:40
10200
代码可运行
举报
文章被收录于专栏:拓端tecdat拓端tecdat
运行总次数:0
代码可运行

阅读全文:http://tecdat.cn/?p=21625

我们知道参数的置信区间的计算,这些都服从一定的分布(t分布、正态分布),因此在标准误前乘以相应的t分值或Z分值。但如果我们找不到合适的分布时,就无法计算置信区间了吗?

幸运的是,有一种方法几乎可以用于计算各种参数的置信区间,这就是Bootstrap 法。

相关视频

本文使用BOOTSTRAP来获得预测的置信区间。我们将在线性回归基础上讨论汽车速度和制动距离数据查看文末了解数据获取方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 > reg=lm(dist~speed,data=cars)
> points(x,predict(reg,newdata= data.frame(speed=x)))

这是一个单点预测。当我们想给预测一个置信区间时,预测的置信区间取决于参数估计误差。

R语言Bootstrap、百分位Bootstrap法抽样参数估计置信区间分析通勤时间和学生锻炼数据

01

02

03

04

预测置信区间

让我们从预测的置信区间开始

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 > for(s in 1:500){
+ indice=sample(1:n,size=n,
+ replace=TRUE)
+ points(x,predict(reg,newdata=data.frame(speed=x)),pch=19,col="blue")

蓝色值是通过在我们的观测数据库中重新取样获得的可能预测值。值得注意的是,在残差正态性假设下(回归线的斜率和常数估计值),置信区间(90%)如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
predict(reg,interval ="confidence",

在这里,我们可以比较500个生成数据集上的值分布,并将经验分位数与正态假设下的分位数进行比较,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> hist(Yx,proba=TRUE
> boxplot(Yx,horizontal=TRUE
> polygon(c( x ,rev(x I]))))

可以看出,经验分位数与正态假设下的分位数是可以比较的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 > quantile(Yx,c(.05,.95))
      5%      95% 
58.63689 70.31281 
 + level=.9,newdata=data.frame(speed=x)) 
       fit      lwr      upr
1 65.00149 59.65934 70.34364

感兴趣变量的可能值

现在让我们看看另一种类型的置信区间,关于感兴趣变量的可能值。这一次,除了提取新样本和计算预测外,我们还将在每次绘制时添加噪声,以获得可能的值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> for(s in 1:500){
+ indice=sample(1:n,size=n,
+ base=cars[indice,]
+ erreur=residuals(reg)
+ predict(reg,newdata=data.frame(speed=x))+E

在这里,我们可以(首先以图形方式)比较通过重新取样获得的值和在正态假设下获得的值,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> hist(Yx,proba=TRUE)
> boxplot(Yx) abline(v=U[2:3)
> polygon(c(D$x[I,rev(D$x[I])

数值上给出了以下比较

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> quantile(Yx,c(.05,.95))
      5%      95% 
44.43468 96.01357 
U=predict(reg,interval ="prediction"
       fit      lwr      upr
1 67.63136 45.16967 90.09305

这一次,右侧有轻微的不对称。显然,我们不能假设高斯残差,因为有更大的正值,而不是负值。考虑到数据的性质,这是有意义的(制动距离不能是负数)。

然后开始讨论在供应中使用回归模型。为了获得具有独立性,有人认为必须使用增量付款的数据,而不是累计付款。

可以创建一个数据库,解释变量是行和列。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> base=data.frame(
+ y

> head(base,12)
      y   ai bj
1  3209 2000  0
2  3367 2001  0
3  3871 2002  0
4  4239 2003  0
5  4929 2004  0
6  5217 2005  0
7  1163 2000  1
8  1292 2001  1
9  1474 2002  1
10 1678 2003  1
11 1865 2004  1
12   NA 2005  1

然后,我们可以从基于对数增量付款数据的回归模型开始,该模型基于对数正态模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
(Intercept)         7.9471     0.1101  72.188 6.35e-15 ***
as.factor(ai)2001   0.1604     0.1109   1.447  0.17849    
as.factor(ai)2002   0.2718     0.1208   2.250  0.04819 *  
as.factor(ai)2003   0.5904     0.1342   4.399  0.00134 ** 
as.factor(ai)2004   0.5535     0.1562   3.543  0.00533 ** 
as.factor(ai)2005   0.6126     0.2070   2.959  0.01431 *  
as.factor(bj)1     -0.9674     0.1109  -8.726 5.46e-06 ***
as.factor(bj)2     -4.2329     0.1208 -35.038 8.50e-12 ***
as.factor(bj)3     -5.0571     0.1342 -37.684 4.13e-12 ***
as.factor(bj)4     -5.9031     0.1562 -37.783 4.02e-12 ***
as.factor(bj)5     -4.9026     0.2070 -23.685 4.08e-10 ***
---
Signif. codes:  0***0.001**0.01*0.05.0.1 ‘ ’ 1 

Residual standard error: 0.1753 on 10 degrees of freedom
  (15 observations deleted due to missingness)
Multiple R-squared: 0.9975,    Adjusted R-squared: 0.9949 
F-statistic: 391.7 on 10 and 10 DF,  p-value: 1.338e-11 

> 
exp(predict(reg1,
+ newdata=base)+summary(reg1)$sigma^2/2)

       [,1]   [,2] [,3] [,4] [,5] [,6]
[1,] 2871.2 1091.3 41.7 18.3  7.8 21.3
[2,] 3370.8 1281.2 48.9 21.5  9.2 25.0
[3,] 3768.0 1432.1 54.7 24.0 10.3 28.0
[4,] 5181.5 1969.4 75.2 33.0 14.2 38.5
[5,] 4994.1 1898.1 72.5 31.8 13.6 37.1
[6,] 5297.8 2013.6 76.9 33.7 14.5 39.3

> sum(py[is.na(y)])
[1] 2481.857

这与链式梯度法的结果略有不同,但仍然具有可比性。我们也可以尝试泊松回归(用对数链接)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
glm(y~
+ as.factor(ai)+
+ as.factor(bj),data=base,
+ family=poisson)


Coefficients:
                  Estimate Std. Error z value Pr(>|z|)    
(Intercept)        8.05697    0.01551 519.426  < 2e-16 ***
as.factor(ai)2001  0.06440    0.02090   3.081  0.00206 ** 
as.factor(ai)2002  0.20242    0.02025   9.995  < 2e-16 ***
as.factor(ai)2003  0.31175    0.01980  15.744  < 2e-16 ***
as.factor(ai)2004  0.44407    0.01933  22.971  < 2e-16 ***
as.factor(ai)2005  0.50271    0.02079  24.179  < 2e-16 ***
as.factor(bj)1    -0.96513    0.01359 -70.994  < 2e-16 ***
as.factor(bj)2    -4.14853    0.06613 -62.729  < 2e-16 ***
as.factor(bj)3    -5.10499    0.12632 -40.413  < 2e-16 ***
as.factor(bj)4    -5.94962    0.24279 -24.505  < 2e-16 ***
as.factor(bj)5    -5.01244    0.21877 -22.912  < 2e-16 ***
---
Signif. codes:  0***0.001**0.01*0.05.0.1 ‘ ’ 1 

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 46695.269  on 20  degrees of freedom
Residual deviance:    30.214  on 10  degrees of freedom
  (15 observations deleted due to missingness)
AIC: 209.52

Number of Fisher Scoring iterations: 4

> predict(reg2,
newdata=base,type="response")

> sum(py2[is.na(y)])
[1] 2426.985

预测结果与链式梯度法得到的估计值吻合。克劳斯·施密特(Klaus Schmidt)和安吉拉·温什(Angela Wünsche)于1998年在链式梯度法、边际和最大似然估计中建立了与最小偏差方法的联系。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 拓端数据部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
R语言中回归模型预测的不同类型置信区间应用比较分析
我们正在这里做出一个预测。正如在R课堂上(以及在预测模型的过程中)所回顾的,当我们要为预测提供一个置信区间时,建议您为预测器确定置信区间(这将取决于预测误差)参数的估计)和潜在值的置信区间(这也取决于模型误差,即残差的离散度)。让我们从预测的置信区间开始:
拓端
2020/07/10
1.3K0
r语言使用rjags R2jags建立贝叶斯模型|附代码数据
从回归模型的结果来看,三个自变量对因变量都有显著的意义。其中,area有正向的影响。而其他两个变量是负向的影响。从r方的结果来看,达到了0.895,模型具有较好的解释度。
拓端
2023/05/17
4120
R语言使用链梯法Chain Ladder和泊松定律模拟和预测未来赔款数据
我们已经在定价过程中看到,分母的方差可以被预测代替,因为在泊松模型中,期望和方差是相同的。所以我们考虑
拓端
2020/10/22
6500
R语言使用链梯法Chain Ladder和泊松定律模拟和预测未来赔款数据
R语言精算学:使用链梯法Chain Ladder和泊松定律模拟和预测未来赔款数据
我们已经在定价过程中看到,分母的方差可以被预测代替,因为在泊松模型中,期望和方差是相同的。所以我们考虑
拓端
2020/07/10
1.1K0
R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量
我根据泊松Poisson回归、GAM样条曲线模型对一个十字路口的骑自行车者的数量进行预测,
拓端
2020/12/30
8260
R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量
R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间|附代码数据
最近我们被客户要求撰写关于广义线性模型(GLM)预测置信区间的研究报告,包括一些图形和统计输出。
拓端
2023/03/16
4860
R语言缺失值的处理:线性回归模型插补
我们在这里模拟数据,然后根据模型生成数据。未定义将转换为NA。一般建议是将缺失值替换为-1,然后拟合未定义的模型。默认情况下,R的策略是删除缺失值。如果未定义50%,则缺少数据,将删除一半的行
拓端
2020/10/21
3.6K0
r语言求置信区间的函数_r语言区间估计
转载 链接: https://www.codesd.com/item/confidence-interval-of-coefficients-using-the-generalized-estimation-equation-ege.html. 链接: https://stackoverflow.com/questions/21221280/confidence-interval-of-coefficients-using-generalized-estimating-equation-gee.
全栈程序员站长
2022/11/15
1.1K0
R语言用ARIMA模型预测巧克力的兴趣趋势时间序列
在本文中我们对在Google趋势上的关键字“ Chocolate ”序列进行预测。序列如下
拓端
2020/12/31
1.1K0
贝叶斯线性回归和多元线性回归构建工资预测模型|附代码数据
在本文中,我们将分析横断面工资数据,以期在实践中使用贝叶斯方法,如BIC和贝叶斯模型来构建工资的预测模型。
拓端
2023/03/21
1.3K0
R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间
因此,方差矩阵的近似将基于通过插入参数的估计量而获得。 然后,由于作为渐近多元分布,参数的任何线性组合也将是正态的,即具有正态分布。所有这些数量都可以轻松计算。首先,我们可以得到估计量的方差
拓端
2020/10/22
1.5K0
R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间|附代码数据
因此,方差矩阵的近似将基于通过插入参数的估计量而获得。 然后,由于作为渐近多元分布,参数的任何线性组合也将是正态的,即具有正态分布。所有这些数量都可以轻松计算。首先,我们可以得到估计量的方差
拓端
2023/01/29
8340
R语言用线性回归模型预测空气质量臭氧数据
尽管线性模型是最简单的机器学习技术之一,但它们仍然是进行预测的强大工具。这尤其是由于线性模型特别容易解释这一事实。在这里,我将讨论使用空气质量数据集的普通最小二乘回归示例解释线性模型时最重要的方面。
拓端
2020/08/10
1.9K0
R语言GAMLSS模型对艾滋病病例、降雪量数据拟合、预测、置信区间实例可视化
GAMLSS模型是一种半参数回归模型,参数性体现在需要对响应变量作参数化分布的假设,非参数性体现在模型中解释变量的函数可以涉及非参数平滑函数,非参数平滑函数不预先设定函数关系,各个解释变量的非线性影响结果完全取决于样本数据。它克服了GAM模型和广义线性模型(Generalized Linear Models, GLM)的一些局限性。
拓端
2023/03/27
9000
R语言里的非线性模型:多项式回归、局部样条、平滑样条、广义加性模型分析
在这里,我们放宽了流行的线性技术的线性假设。有时线性假设只是一个很差的近似值。有许多方法可以解决此问题,其中一些方法可以通过使用正则化方法降低模型复杂性来  解决  。但是,这些技术仍然使用线性模型,到目前为止只能进行改进。本文本专注于线性模型的扩展…
拓端
2020/08/21
4.6K0
R语言广义线性混合模型(GLMM)bootstrap预测置信区间可视化
通过线性模型和广义线性模型(GLM),预测函数可以返回在观测数据或新数据上预测值的标准误差(点击文末“阅读原文”获取完整代码数据)。
拓端
2024/04/01
2870
R语言广义线性混合模型(GLMM)bootstrap预测置信区间可视化
R语言基于逐步多元回归模型的天猫商品流行度预测
本文通过利用回归模型对天猫商品流行度进行了研究,确定了决定天猫商品流行度的重要因素。并讲述、论证了预测天猫商品流行度是天猫商品交易的至关重要的环节。通过对天猫商品流行度预测技术的发展和探讨,深度剖析了天猫商品流行度预测这个研究课题。
拓端
2023/07/13
2000
R语言用线性回归模型预测空气质量臭氧数据
尽管线性模型是最简单的机器学习技术之一,但它们仍然是进行预测的强大工具。这尤其是由于线性模型特别容易解释这一事实。在这里,我将讨论使用空气质量数据集的普通最小二乘回归示例解释线性模型时最重要的方面。
拓端
2022/06/08
9310
R语言用线性回归模型预测空气质量臭氧数据
【视频】什么是非线性模型与R语言多项式回归、局部平滑样条、 广义相加GAM分析工资数据|数据分享|附代码数据
在这文中,我将介绍非线性回归的基础知识。非线性回归是一种对因变量和一组自变量之间的非线性关系进行建模的方法。最后我们用R语言非线性模型预测个人工资数据是否每年收入超过25万
拓端
2023/05/08
4720
R语言系列第四期:④R语言简单相关与回归
lm(formula = short.velocity ~ blood.glucose)
百味科研芝士
2019/05/23
1.5K0
推荐阅读
R语言中回归模型预测的不同类型置信区间应用比较分析
1.3K0
r语言使用rjags R2jags建立贝叶斯模型|附代码数据
4120
R语言使用链梯法Chain Ladder和泊松定律模拟和预测未来赔款数据
6500
R语言精算学:使用链梯法Chain Ladder和泊松定律模拟和预测未来赔款数据
1.1K0
R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量
8260
R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间|附代码数据
4860
R语言缺失值的处理:线性回归模型插补
3.6K0
r语言求置信区间的函数_r语言区间估计
1.1K0
R语言用ARIMA模型预测巧克力的兴趣趋势时间序列
1.1K0
贝叶斯线性回归和多元线性回归构建工资预测模型|附代码数据
1.3K0
R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间
1.5K0
R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间|附代码数据
8340
R语言用线性回归模型预测空气质量臭氧数据
1.9K0
R语言GAMLSS模型对艾滋病病例、降雪量数据拟合、预测、置信区间实例可视化
9000
R语言里的非线性模型:多项式回归、局部样条、平滑样条、广义加性模型分析
4.6K0
R语言广义线性混合模型(GLMM)bootstrap预测置信区间可视化
2870
R语言基于逐步多元回归模型的天猫商品流行度预测
2000
R语言用线性回归模型预测空气质量臭氧数据
9310
【视频】什么是非线性模型与R语言多项式回归、局部平滑样条、 广义相加GAM分析工资数据|数据分享|附代码数据
4720
R语言系列第四期:④R语言简单相关与回归
1.5K0
相关推荐
R语言中回归模型预测的不同类型置信区间应用比较分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档