熱線電話:13121318867

登錄
首頁精彩閱讀使用R進行統計分析--回歸分析
使用R進行統計分析--回歸分析
2017-02-15
收藏

使用R進行統計分析--回歸分析

準備工作

首先導入數據并創建名為lr_data的數據表。
#讀取并創建數據表
lr_data=data.frame(read.csv('lr_data.csv',header = 1))
查看導入數據表的維度,結果顯示456行,4列。
#查看數據表維度
dim(lr_data)
[1] 456 4
查看數據表中各字段的名稱,結果顯示共有4個字段,三個變量和一個目標。
#查看數據表的字段名稱
names(lr_data)
[1] "variable1" "variable2" "variable3" "goal"
一元回歸
使用lm()函數對變量1和目標值進行一元回歸分析,并創建回歸方程。R方為0.7778。說明自變量可以對因變量78%的變化進行解釋。

#進行一元回歸分析
fit=lm(goal~variable1,data=lr_data)
summary(fit)

多元回歸

使用三個變量和目標值進行多元回歸分析,R方為0.85,說明三個自變量可以對因變量85%的變化進行解釋。
#進行多元回歸分析
fit=lm(goal~variable1+variable2+variable3,data=lr_data)
summary(fit)

逐步回歸(向后)

使用逐步回歸的方法從三個自變量中選擇用于預測的變量。逐步回歸中有向前和向后兩種方法。向前逐步回歸每次增加一個變量,直到模型不再改變。向后逐步回歸每次減少一個變量,直到模型不再改變。這里使用向后逐步回歸的方法選擇預測變量。

#加載MASS庫
library(MASS)
#建立多元回歸模型
fit1=lm(goal~variable1+variable2+variable3,data=lr_data)
#向后逐步回歸
stepAIC(fit,direction="backward")

向后逐步回歸每次減少一個變量,因此在第一步時使用了所有的三個變量,在第二步時減少了其中的一個變量,再次減少變量后模型不再變化,因此結果為使用變量2和變量3作為預測變量。

全子集回歸
除了逐步回歸方法外,還有全子集回歸方法可以用于挑選預測變量。全子集回歸檢測所有的變量,并展示最佳的模型的結果。下面是使用全子集回歸的代碼和結果。

#加載leaps庫
library(leaps)
#使用全子集回歸方法并繪制圖表
leaps=regsubsets(goal~variable1+variable2+variable3,data=lr_data,nbest=2)
plot(leaps,scale='adjr2')

在上圖中,Y軸為R方值,X軸為截距和三個變量。只包含截距和變量1的模型R方為0.78,只包含截距和變量3的R方為0.82,只包含截距和變量2的R方式0.85。R方最高的模型包含截距,變量2和變量3,R方值為0.85。

變量重要性排序
在多元回歸的三個變量中,還可以比較不同變量對結果的重要性。換句話說就是不同自變量對因變量的影響程度,具體的方法是先對數據進行標準化處理,然后對標準化回歸系數進行對比,當其他預測變量不變的情況下,單獨一個預測變量對因變量的變化。

#對數據表進行標準化處理
z_data=as.data.frame(scale(lr_data))
#創建多元回歸模型
zfit=lm(goal~variable1+variable2+variable3,data=z_data)
#輸出標準化回歸系數
coef(zfit)

在上面截圖中,變量2的一個標準差變化增加0.721個因變量的變化,變量3的一個標準差的變化增加0.157個因變量的變化。變量1的一個標準差的變化增加0.050個因變量的變化。因此重要程度依次為變量2,變量3和變量1。
比較模型擬合優度
我們選擇最重要的變量2和變量3建立模型,并與之前包含三個變量的模型進行比較,看看去掉一個變量后模型的擬合優度是否有變化。
#創建模型
Fit2=lm(goal~variable2+variable3,data=lr_data)
Fit3=lm(goal~variable1+variable2+variable3,data=lr_data)
#對比模型擬合優度
anova(fit2,fit3)

P=0.3931,檢驗不顯著,因此可以將變量1從模型中刪除。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢