拓端tecdat|R语言辅导中的多项式回归、B样条曲线(B-spline Curves)回归
  MFqKcJmbshKy 2023年11月02日 94 0

 

在线性模型的文章中,我们已经了解了如何在给出协变量x的向量时构造线性模型。但更一般而言,我们可以考虑协变量的变换,来使用线性模型。

我们首先讨论多项式回归,进一步,我们会想到分段线性或分段多项式函数,可能还有附加的连续性约束,这些是样条曲线回归的基础。

多项式回归

谈论多项式回归时(在单变量情况下)

拓端tecdat|R语言辅导中的多项式回归、B样条曲线(B-spline Curves)回归_r语言

我们使用

  1.  coef = leg.poly(n=4)
  2.  [[1]]
  3.  1
  4.   
  5.  [[2]]
  6.  x
  7.   
  8.  [[3]]
  9.  -0.5 + 1.5*x^2
  10.   
  11.  [[4]]
  12.  -1.5*x + 2.5*x^3
  13.   
  14.  [[5]]
  15.  0.375 - 3.75*x^2 + 4.375*x^4

有许多正交多项式族(​​Jacobi多项式​​​,  ​​Laguerre多项式​​​,  ​​Hermite多项式​​等)。在R中有用于多项式回归的标准多边形函数。

当使用poly时,我们使用矩阵的 ​​QR分解​​。我们使用

  1.  poly - function (x, deg = 1) {
  2.  xbar = mean(x)
  3.  x = x - xbar
  4.  QR = qr(outer(x, 0:degree, "^"))
  5.  X = qr.qy(QR, diag(diag(QR$qr),

这两个模型是等效的。

  1.   
  2.  dist~speed+I(speed^2)+I(speed^3)
  3.  dist~poly(speed,3)

 

 

拓端tecdat|R语言辅导中的多项式回归、B样条曲线(B-spline Curves)回归_R语言_02

 

我们有完全相同的预测

 

  1.   
  2.  v1[u==15]
  3.  121
  4.  38.43919
  5.  v2[u==15]
  6.  121
  7.  38.43919

 

系数没有相同的解释,但是p值完全相同,两个模型以相同的置信度拒绝三次多项式,

  1.  summary(reg1)
  2.   
  3.  Coefficients:
  4.  Estimate Std. Error t value Pr(>|t|)
  5.  (Intercept) -19.50505 28.40530 -0.687 0.496
  6.  speed 6.80111 6.80113 1.000 0.323
  7.  I(speed^2) -0.34966 0.49988 -0.699 0.488
  8.  I(speed^3) 0.01025 0.01130 0.907 0.369
  9.   
  10.  Residual standard error: 15.2 on 46 degrees of freedom
  11.  Multiple R-squared: 0.6732, Adjusted R-squared: 0.6519
  12.  F-statistic: 31.58 on 3 and 46 DF, p-value: 3.074e-11
  13.   
  14.  summary(reg2)
  15.   
  16.  Coefficients:
  17.  Estimate Std. Error t value Pr(>|t|)
  18.  (Intercept) 42.98 2.15 19.988 < 2e-16 ***
  19.  poly(speed, 3)1 145.55 15.21 9.573 1.6e-12 ***
  20.  poly(speed, 3)2 23.00 15.21 1.512 0.137
  21.  poly(speed, 3)3 13.80 15.21 0.907 0.369
  22.  ---
  23.  Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
  24.   
  25.  Residual standard error: 15.2 on 46 degrees of freedom
  26.  Multiple R-squared: 0.6732, Adjusted R-squared: 0.6519
  27.  F-statistic: 31.58 on 3 and 46 DF, p-value: 3.074e-11

 

B样条曲线(B-spline curve)和GAM

样条曲线在回归模型中也很重要,尤其是当我们开始讨论 ​​广义加性模型时​​。在单变量情况下,我通过引入(线性)样条曲线,

拓端tecdat|R语言辅导中的多项式回归、B样条曲线(B-spline Curves)回归_R语言_03

模型是连续的(连续函数的加权总和是连续的)。我们可以进一步 

拓端tecdat|R语言辅导中的多项式回归、B样条曲线(B-spline Curves)回归_r语言_04

 

二次样条

用于三次样条。有趣的是,二次样条不仅是连续的,而且它们的一阶导数也是连续的(三次样条是连续的)。这些模型易于解释。例如,简单的模型

拓端tecdat|R语言辅导中的多项式回归、B样条曲线(B-spline Curves)回归_r语言_05

是以下连续的分段线性函数,在节点s处分段。

拓端tecdat|R语言辅导中的多项式回归、B样条曲线(B-spline Curves)回归_R语言_06

 

还应遵守以下解释:对于xx较小的值,线性增加,斜率\beta_1β1\;对于xx较大的值,线性减小,斜率\ beta_1 + \beta_2β1+β2。因此,\beta_2β2被解释为斜率的变化。

现在在R中使用bs函数(即标准​​B样条)​​并可视化

 

  1.   
  2.  x = seq(5,25,by=.25)
  3.  B = bs(x,knots=c(10,20),Boundary.knots=c(5,55),degre=1)
  4.  matplot(x,B,type="l",lty=1,lwd=2,col=clr6)

 

 

拓端tecdat|R语言辅导中的多项式回归、B样条曲线(B-spline Curves)回归_多项式_07

提到的函数如下

 

  1.   
  2.  par(mfrow=c(1,2))
  3.   
  4.  matplot(x,B,type="l",lty=1,lwd=2)
  5.   
  6.  matplot(x,B,type="l",col=clr)

 

 

拓端tecdat|R语言辅导中的多项式回归、B样条曲线(B-spline Curves)回归_多项式回归_08

多项式回归中这两个模型表示方法是等效的。例如

 

  1.  dist~speed+pos(speed,10)+pos(speed,20
  2.  dist~bs(speed,degree=1,knots=c(10,20)

 

 

拓端tecdat|R语言辅导中的多项式回归、B样条曲线(B-spline Curves)回归_r语言_09

 

  1.  v1[u==15]
  2.  121
  3.  39.35747
  4.  v2[u==15]
  5.  121
  6.  39.35747

 

这两个模型以及系数的解释是等效的:

 

  1.  summary(reg1)
  2.   
  3.  Coefficients:
  4.  Estimate Std. Error t value Pr(>|t|)
  5.  (Intercept) -7.6305 16.2941 -0.468 0.6418
  6.  speed 3.0630 1.8238 1.679 0.0998 .
  7.  pos(speed, 10) 0.2087 2.2453 0.093 0.9263
  8.  pos(speed, 20) 4.2812 2.2843 1.874 0.0673 .
  9.  ---
  10.  Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
  11.   
  12.  Residual standard error: 15 on 46 degrees of freedom
  13.  Multiple R-squared: 0.6821, Adjusted R-squared: 0.6613
  14.  F-statistic: 32.89 on 3 and 46 DF, p-value: 1.643e-11
  15.   
  16.  summary(reg2)
  17.   
  18.  Coefficients:
  19.  Estimate Std. Error t value Pr(>|t|)
  20.  (Intercept) 4.621 9.344 0.495 0.6233
  21.  bs(speed, degree = 1, knots = c(10, 20))1 18.378 10.943 1.679 0.0998 .
  22.  bs(speed, degree = 1, knots = c(10, 20))2 51.094 10.040 5.089 6.51e-06 ***
  23.  bs(speed, degree = 1, knots = c(10, 20))3 88.859 12.047 7.376 2.49e-09 ***
  24.  ---
  25.  Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
  26.   
  27.  Residual standard error: 15 on 46 degrees of freedom
  28.  Multiple R-squared: 0.6821, Adjusted R-squared: 0.6613
  29.  F-statistic: 32.89 on 3 and 46 DF, p-value: 1.643e-11

 

在这里我们可以直接看到,第一个结点的斜率没有明显变化。


拓端tecdat|R语言辅导中的多项式回归、B样条曲线(B-spline Curves)回归_多项式回归_10

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

MFqKcJmbshKy
最新推荐 更多