获取预测模型
因为海藻数量基本是数值型数据,所以考虑进行回归分析(多元线性回归模型),一个变量和一组解释变量的关系
clean.algae <- knnImputation(algae,k = 10)
>lm.a1 <- lm(a1 ~ . ,data = clean.algae[,1:12])
#.的意思是求a1和其他所有的数据之间的线性关系;属性1+属性2的方法也行
> summary(lm.a1)
> #使用summary()查看结果
查看结果之后发现系统生成了几个辅助变量seasonspring
等,这里以season举例说明,season一共有春夏秋冬四个取值,在生成辅助变量的时候回生成3(4-1)个辅助变量。size原本有大中小三种取值,同理,这里生成两个辅助变量。
seasonsummer
seasonwinter
sizemedium
sizesmall
- R-squared 是评价模型好坏的一个指标取值在c(0:1),越接近1越好。
精简回归模型
之前我们将左右的变量都与a1的变化进行了绑定分析,但这是不一定科学的,因为存在变量不与a1有明显的线性关系。
下面我们要去除一些相关性不大的变量,使用 向后消元法anova()
来精简回归模型(根据模型残差平方和的变化),平时说的 分差分析。
方差分析的基本思想:通过分析研究不同来源的变异对总变异的贡献大小,从而确定可控因素对研究结果影响力的大小。
方差分析主要用途:①均数差别的显著性检验,②分离各有关因素并估计其对总变异的作用,③分析因素间的交互作用,④方差齐性检验。
> anova(lm.a1)
Sum Sq表示模型与数据的紧密匹配
> anova(lm.a1,lm.a2)
可以看到去除掉变量season之后Sum of Sq(方差)已经减少了471.71,方差分析是一个逐步精化的过程,R语言也非常友好地提供了精化到最终结果的方法。
> final.lm <- step(lm.a1)
> #使用final.lm接受最后结果,step()可以看到每一步精化的过程