1. 程式人生 > >R語言-預測海藻數量2(獲取預測模型,提高模型準確性)

R語言-預測海藻數量2(獲取預測模型,提高模型準確性)

獲取預測模型
因為海藻數量基本是數值型資料,所以考慮進行迴歸分析(多元線性迴歸模型),一個變數和一組解釋變數的關係

 clean.algae <- knnImputation(algae,k = 10)
>lm.a1 <- lm(a1 ~ . ,data = clean.algae[,1:12])
#.的意思是求a1和其他所有的資料之間的線性關係;屬性1+屬性2的方法也行
> summary(lm.a1)
> #使用summary()檢視結果

這裡寫圖片描述
檢視結果之後發現系統生成了幾個輔助變數seasonspring
seasonsummer
seasonwinter
sizemedium
sizesmall

等,這裡以season舉例說明,season一共有春夏秋冬四個取值,在生成輔助變數的時候回生成3(4-1)個輔助變數。size原本有大中小三種取值,同理,這裡生成兩個輔助變數。

  • 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()可以看到每一步精化的過程

這裡寫圖片描述