原文链接:http://tecdat.cn/?p=9670

原文出处:拓端数据部落公众号

样条线是拟合非线性模型并从数据中学习非线性相互作用的一种方法。

三次样条

三次样条 具有连续的一阶和二阶导数。 我们通过应用基础函数来变换变量  并使用这些变换后的变量拟合模型, 向模型添加非线性, 使样条曲线能够拟合更光滑 。

require(splines)
#ISLR包含数据集
require(ISLR)
attach(Wage) #绑定工资数据集
agelims<-range(age)
#生成测试数据
age.grid<-seq(from=agelims[1], to = agelims[2])

 三次样条 
  R中使用函数拟合三次样条。

#在年龄 25 ,50 ,60设置3个分割点
fit<-lm(wage ~ bs(age,knots = c(25,40,60)),data = Wage )
summary(fit)
##
## Call:
## lm(formula = wage ~ bs(age, knots = c(25, 40, 60)), data = Wage)
##
## Residuals:
##     Min      1Q  Median      3Q     Max
## -98.832 -24.537  -5.049  15.209 203.207
##
## Coefficients:
##                                 Estimate Std. Error t value Pr(>|t|)
## (Intercept)                       60.494      9.460   6.394 1.86e-10 ***
## bs(age, knots = c(25, 40, 60))1    3.980     12.538   0.317 0.750899
## bs(age, knots = c(25, 40, 60))2   44.631      9.626   4.636 3.70e-06 ***
## bs(age, knots = c(25, 40, 60))3   62.839     10.755   5.843 5.69e-09 ***
## bs(age, knots = c(25, 40, 60))4   55.991     10.706   5.230 1.81e-07 ***
## bs(age, knots = c(25, 40, 60))5   50.688     14.402   3.520 0.000439 ***
## bs(age, knots = c(25, 40, 60))6   16.606     19.126   0.868 0.385338
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 39.92 on 2993 degrees of freedom
## Multiple R-squared:  0.08642,    Adjusted R-squared:  0.08459
## F-statistic: 47.19 on 6 and 2993 DF,  p-value: < 2.2e-16

绘制回归线

上图显示了三次样条曲线的光滑和局部效果。

光滑样条线

我们在光滑样条曲线中的目的是通过添加粗糙度最小化误差函数 。

 

现在我们可以注意到,红线(即“光滑样条线”)更加波动,并且更灵活地拟合数据。这可能是由于高度的自由度所致。选择参数 λ 和DF最好的办法 是交叉验证。

实施交叉验证以选择λ值并绘制光滑样条线:

fit2
## Call:
## smooth.spline(x = age, y = wage, cv = TRUE)
##
## Smoothing Parameter  spar= 0.6988943  lambda= 0.02792303 (12 iterations)
## Equivalent Degrees of Freedom (Df): 6.794596
## Penalized Criterion: 75215.9
## PRESS: 1593.383

结果选择了lambda=0.0279和df = 6.794596

该模型也非常光滑,可以很好地拟合数据。

结论

因此, 我们需要对数据或变量进行一些转换,以使模型在学习输入X i和输出  Y之间的非线性相互作用时更灵活,更强大。


最受欢迎的见解

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指标

拓端tecdat|基于R统计软件的三次样条和光滑样条模型数据拟合及预测相关推荐

  1. 拓端tecdat荣获掘金社区入驻新人奖

    2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...

  2. 【23全网最新!最全】统计方法(SAS、SPSS和R统计软件应用)——单元测试答案

    第一章 SPSS统计软件应用 第二章 SAS统计软件应用 第三章 R统计软件应用 答案见如下视频 统计方法答案

  3. 拓端tecdat荣获2022年度51CTO博主之星

    相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...

  4. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

    最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...

  5. 拓端tecdat|bilibili视频流量数据潜望镜

    最近我们被客户要求撰写关于bilibili视频流量的研究报告,包括一些图形和统计输出. 最新研究表明,中国有超过7亿人在观看在线视频内容.Bilibili,被称为哔哩哔哩或简称为B站,是中国大陆第二个 ...

  6. 基于R语言或Matlab直接读取压缩包中的数据

    写在前面 以gosif网站上的tiff数据为例. 该数据是地学上常用的一种数据,希望读取该网站上的gosif数据:http://data.globalecology.unh.edu/data/GOSI ...

  7. 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...

  8. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

  9. 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例

    最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...

  10. R统计软件真有意思哈,以后我怕要用得着,先自学

    呵呵,作数据分析是数据监控后的动作. 思路是用监控系统产生数据, 如果监控本身提供统计最好,如果不提供,则可以用R来作分析统计和预测. 如果数据不符合规范,则用PYTHON进行处理转换. ~~~~~~ ...

最新文章

  1. 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 5.)(python/c/c++版)(笔记)Lexer词法分析程序
  2. 热备份路由选择协议(HSRP)
  3. 关于JAVA并发编程你需要知道的——硬件篇
  4. Edit button clicked in offline mode
  5. [虚树][树状数组][lca] Jzoj P5908 开荒
  6. 提供做某事Do you want me to..._45
  7. 受iPhone 12销量变化影响 Q2柔性OLED面板出货量预计环比下滑35%
  8. Web端打开文件选择和保存对话框
  9. dreamweaver 8快捷键
  10. php 扫描器源代码,php端口扫描器代码
  11. sony手机刷linux,索尼Z3 Z3C 5.0系统刷recovery教程_Sony Z3第三方recovery
  12. SVN切换IP,不换路径,快捷方法
  13. linux 没有network服务,求助,network起不来
  14. Sparx Systems发布Enterprise Architect 16
  15. Oracle 12c的安装
  16. ubuntu 18.04取消自动锁屏以及设置键盘快捷锁屏
  17. 学会聆听,职场最重要的事情,没有之一!!!
  18. 关于MySQL联合索引和优化军规
  19. 大锤老湿教您如何配置TP-Link路由器组建wifi上网
  20. 3S基础知识:MapInfo点符号的制作方法

热门文章

  1. 五天学redhat系列之---安装篇(下)
  2. Linux下配置完整安全的DHCP服务器详解
  3. 2月26日 Scrapy入门
  4. 1月4日 每次安装都有新问题
  5. Visualizing and Understanding Convolutional Networks论文解读
  6. vector迭代器的使用
  7. 凸优化第七章统计估计 7.1 参数分布估计
  8. 安装Cnario提示.Net 3.5安装错误, 检查Windows系统更新提示无法检查到更新, 安装.Net 3.5提示Windows无法完成请求的更改, 错误代码:0x800F081F...
  9. 用where导致group by分组字段的索引失效
  10. 查看一个目录是否已经mount --bind