原文:http://tecdat.cn/?p=3805
我们在这里讨论所谓的“分段线性回归模型”,因为它们利用包含虚拟变量的交互项。
读取数据
data=read.csv("artificial-cover.csv")
查看部分数据
head(data) ## tree.cover shurb.grass.cover ## 1 13.2 16.8 ## 2 17.2 21.8 ## 3 45.4 48.8 ## 4 53.6 58.7 ## 5 58.5 55.5 ## 6 63.3 47.2
###########用lm拟合,主要注意部分是bs(age,knots=c(...))这部分把自变量分成不同部分 fit =lm(tree.cover~bs(shurb.grass.cover ,knots ############进行预测,预测数据也要分区 pred= predict (fit , newdata =list(shurb.grass.cover =data$shurb.grass.cover),se=T) #############然后画图 plot(fit)
可以构造一个相对复杂的 LOWESS 模型(span参数取小一些),然后和一个简单的模型比较,如:
qplot(x, y) + geom_smooth() # 总趋势
散点图分为两部分
我们可以将原始散点图分为两部分,并拟合两条单独但相连的线。估计的分段式函数连接,在描述数据趋势方面做得更好。
因此,让我们为这些数据建立一个分段线性回归模型并可视化:
+ geom_smooth() + theme(panel.background = element_rect(fill = 'white', colour = 'black'))