当前位置:   article > 正文

R语言分段回归_r语言分段线性回归

r语言分段线性回归

1.利用虚拟变量进行线性回归

(MEdata.csv的数据来源:https://github.com/ChenQihome9/CSDN-Data-Library/blob/master/MEdata.csv

问题13:针对TAX~GDP,使用分段回归方法,找到其回归方程。编程,并根据程序结果叙述如下几方面问题:(1)分几段最佳?(不超过5段内)(2)分段位置定在哪儿最佳?(3)写出最佳方程,将最佳方程的曲线与数据点绘制到一幅图中。

观察GDP与TAX的图像,发现图形在GDP=800左右发生转折,利用分段线性回归进行拟合。

  1. ##### 13-01 #####
  2. a <- read.table(file='MEdata.csv',header=T,sep=',')
  3. attach(a)
  4. summary(GDP) #获取GDP的数据特征,比如最小值、中位数、四分位数
  5. plot(GDP,TAX)
  6. L <- length(GDP)
  7. t <- 1:L
  8. Ddraw <- function(i){
  9. D <- ifelse(t > i,1,0) #获取虚拟变量D不同分割
  10. LM <- lm(TAX~GDP*D)
  11. s <- summary(LM)
  12. YTAX <- LM$co[[1]] + LM$co[[2]] * GDP + LM$co[[3]] * D + LM$co[[4]] * GDP * D
  13. lines(GDP,YTAX)
  14. fs <- s$fs[[1]] #Fstatistic
  15. z <- list(fs=fs,co= LM$co) #使用列表,因为列表的长度不一样
  16. return(z)
  17. }
  18. fs <- 0
  19. for(i in 1:(L-1) ){
  20. fs[i] <- Ddraw(i)$fs
  21. }
  22. par(mfcol=c(1,2))
  23. plot(fs)
  24. title("F-statistic随着分段位置变化图")
  25. plot(GDP,TAX)
  26. MAXFstatistic <- which.max(fs)
  27. z <- Ddraw(MAXFstatistic)
  28. title("最佳方程的曲线与数据点图")
  29. sprintf("分段位置定%.0f年最佳。",YEAR[MAXFstatistic])
  30. sprintf("TAX = %.04f+%.04f*GDP+%.04f*D+%.04f*GDP*D ",
  31. z$co[[1]],z$co[[2]],z$co[[3]],z$co[[4]] )
  32. detach(a)

2.绘制图形结果

 3.相关结果

[2] "分段位置定1995年最佳。"
[3] 最佳方程为:"TAX = 5.7033+0.0945*GDP+-87.6754*D+0.1080*GDP*D "

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/404618
推荐阅读
相关标签
  

闽ICP备14008679号