原文链接: http://tecdat.cn/?p=21557
分段回归( piecewise regression ) , 顾名思义 , 回归式是“分段”拟合的 。 其灵活用于响应变量随自变量值的改变而存在多种响应状态的情况 , 二者间难以通过一种回归模型预测或解释时 , 不妨根据响应状态找到合适的断点位置 , 然后将自变量划分为有限的区间 , 并在不同区间内分别构建回归描述二者关系 。分段回归最简单最常见的类型就是分段线性回归( piecewise linear regression ) , 即各分段内的局部回归均为线性回归 。
本文我们试图预测车辆的制动距离 , 同时考虑到车辆的速度 。
- > summary(reg)
- Call:
- Residuals:
- Min 1Q Median 3Q Max
- -29.069 -9.525 -2.272 9.215 43.201
- Coefficients:
- Estimate Std. Error t value Pr(>|t|)
- (Intercept) -17.5791 6.7584 -2.601 0.0123 *
- speed 3.9324 0.4155 9.464 1.49e-12 ***
- ---
- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
- Residual standard error: 15.38 on 48 degrees of freedom
- Multiple R-squared: 0.6511, Adjusted R-squared: 0.6438
- F-statistic: 89.57 on 1 and 48 DF, p-value: 1.49e-12
文章图片
要手动进行多个预测 , 可以使用以下代码(循环允许对多个值进行预测)
- for(x in seq(3,30)){
- + Yx=b0+b1*x
- + V=vcov(reg)
- + IC1=Yx+c(-1,+1)*1.96*sqrt(Vx)
- + s=summary(reg)$sigma
- + IC2=Yx+c(-1,+1)*1.96*s
文章图片
然后在一个随机选择的20个观测值的基础上进行线性回归 。
lm(dist~speed,data=https://www.sohu.com/a/cars[I,])
目的是使观测值的数量对回归质量的影响可视化 。
- Residuals:
- Min 1Q Median 3Q Max
- -23.529 -7.998 -5.394 11.634 39.348
- Coefficients:
- Estimate Std. Error t value Pr(>|t|)
- (Intercept) -20.7408 9.4639 -2.192 0.0418 *
- speed 4.2247 0.6129 6.893 1.91e-06 ***
- ---
- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
- Residual standard error: 16.62 on 18 degrees of freedom
- Multiple R-squared: 0.7252, Adjusted R-squared: 0.71
- F-statistic: 47.51 on 1 and 18 DF, p-value: 1.91e-06
- > for(x in seq(3,30,by=.25)){
- + Yx=b0+b1*x
- + V=vcov(reg)
- + IC=Yx+c(-1,+1)*1.96*sqrt(Vx)
- + points(x,Yx,pch=19
文章图片
可以使用R函数进行预测 , 具有置信区间
- fit lwr upr
- 1 42.62976 34.75450 50.50502
- 2 84.87677 68.92746 100.82607
- > predict(reg,
- fit lwr upr
- 1 42.62976 6.836077 78.42344
- > image(VX2,VX3,VY)
- > contour(VX2,VX3,VY,add=TRUE)
> persp(VX2,VX3,VY,ticktype=detailed)
文章图片
我们将更详细地讨论这一点 , 但从这个线性模型中可以很容易地进行非线性回归 。 我们从距离对数的线性模型开始
- > abline(reg1)
文章图片
因为我们在这里没有任何关于距离的预测 , 只是关于它的对数......但我们稍后会讨论它
lm(sqrt(dist)~speed,data=https://www.sohu.com/a/cars)
文章图片
还可以转换解释变量 。 你可以设置断点(阈值) 。 我们从一个指示变量开始
- Residuals:
- Min 1Q Median 3Q Max
- -29.472 -9.559 -2.088 7.456 44.412
- Coefficients:
- Estimate Std. Error t value Pr(>|t|)
- (Intercept) -17.2964 6.7709 -2.555 0.0139 *
- speed 4.3140 0.5762 7.487 1.5e-09 ***
- speed > s TRUE -7.5116 7.8511 -0.957 0.3436
- ---
- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
- Residual standard error: 15.39 on 47 degrees of freedom
- Multiple R-squared: 0.6577, Adjusted R-squared: 0.6432
- F-statistic: 45.16 on 2 and 47 DF, p-value: 1.141e-11
文章图片
但是你也可以把函数放在一个分段的线性模型里 , 同时保持连续性 。
- Residuals:
- Min 1Q Median 3Q Max
- -29.502 -9.513 -2.413 5.195 45.391
- Coefficients:
- Estimate Std. Error t value Pr(>|t|)
- (Intercept) -7.6519 10.6254 -0.720 0.47500
- speed 3.0186 0.8627 3.499 0.00103 **
- speed - s 1.7562 1.4551 1.207 0.23350
- ---
- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
- Residual standard error: 15.31 on 47 degrees of freedom
- Multiple R-squared: 0.6616, Adjusted R-squared: 0.6472
- F-statistic: 45.94 on 2 and 47 DF, p-value: 8.761e-12
文章图片
在这里 , 我们可以想象几个分段
- posi=function(x) ifelse(x>0,x,0)
- Coefficients:
- Estimate Std. Error t value Pr(>|t|)
- (Intercept) -7.6305 16.2941 -0.468 0.6418
- speed 3.0630 1.8238 1.679 0.0998 .
- positive(speed - s1) 0.2087 2.2453 0.093 0.9263
- positive(speed - s2) 4.2812 2.2843 1.874 0.0673 .
- ---
- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
- Residual standard error: 15 on 46 degrees of freedom
- Multiple R-squared: 0.6821, Adjusted R-squared: 0.6613
- F-statistic: 32.89 on 3 and 46 DF, p-value: 1.643e-11
文章图片
正如目前所看到的 , 后两个系数的显著性测试并不意味着斜率为零 , 而是与左侧区域(在两个阈值之前)的斜率显著不同 。
文章图片
最受欢迎的见解
1.R语言多元Logistic逻辑回归 应用案例
2.面板平滑转移回归(PSTR)分析案例实现
3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)
4.R语言泊松Poisson回归模型分析案例
5.R语言回归中的Hosmer-Lemeshow拟合优度检验
6.r语言中对LASSO回归 , Ridge岭回归和Elastic Net模型实现
7.在R语言中实现Logistic逻辑回归
8.python用线性回归预测股票价格
9.R语言如何在生存分析与Cox回归中计算IDI , NRI指标
推荐阅读
- Linux|CentOS Kmods SIG正在研究exFAT和WireGuard的引入
- 广告|拓端tecdat|移动广告中基于点击率的数据策略
- XTrain|拓端tecdat|matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类
- 分析|拓端tecdat|R语言文本挖掘NASA数据网络分析,tf-idf和主题建模
- 模型|拓端tecdat|R语言多元逐步回归模型分析房价和葡萄酒价格:选择最合适预测变量
- 偏差|拓端tecdat|在Python和R中使用交叉验证方法提高模型性能
- 网络|拓端tecdat|使用Python中Keras的LSTM递归神经网络进行时间序列预测
- 分析|拓端tecdat|stata马尔可夫Markov区制转移模型分析基金利率
- 期望值|拓端tecdat|R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计
- Copula|拓端tecdat|R语言Copula函数股市相关性建模:模拟Random Walk(随机游走)