R語言執行帶類别型預測變量的線性回歸示例
前文已經初步介紹了多元線性回歸 ,在前文示例中,所有的預測變量(自變量)都是連續變量。
有些情況下,預測變量中也會包含類别變量的情形。是以,本篇繼續接前文多元線性回歸的内容,通過一個簡單示例展示帶類别預測變量的線性回歸在R語言中的計算方法,并解釋結果中類别項的含義。
示例資料
示例資料、R代碼等,可見網盤附件(提取碼,24cr):
https://pan.baidu.com/s/1qdm6x4B1JtlBIOINPyBZyA
附件“plant.txt”來自某項調查研究資料,測量了生長于兩個不同溫度(低、高)環境中的某種植物的高度,以及土壤中的氮濃度,期望了解土壤氮濃度及溫度對植物生長的影響。
帶類别型預測變量的線性回歸
考慮到線性關系最為直覺且易于了解,這裡希望通過建立線性回歸,探讨植物生長高度與其所處環境中土壤氮濃度及溫度的關系。
資料中,溫度(temperature)并非具體的測量數值,而是以Low(低溫)和High(高溫)表示的,是以它就是一列類别變量。類似連續變量的線性回歸,R語言中仍可通過lm()拟合帶類别預測變量的線性回歸,類别變量以因子(factor)添加在表達式中,并以“+”連接配接各預測變量表示響應變量由它們的權重和貢獻。
#讀取示例資料
dat
#通過線性回歸探讨植物生長高度與其所處環境中土壤氮濃度及溫度的關系
fit summary(fit) #展示拟合方程的簡單統計
對于結果中各項的解釋,可參考前文“多元線性回歸”中的描述。整體而言,全模型p<0.001是非常顯著的,R2=0.96非常完美,各預測變量的效應也很顯著,表明植物生長高度與其所處環境中土壤氮濃度及溫度存在很高的線性關聯。
這種情況下,當回歸中包含一個類别(或因子)預測變量時,類别變量被轉換成取值為0或者1的名義變量(dummy variables)。例如,類别變量temperature有兩個等級,Low(低溫)和High(高溫),R是以構造了一個名義變量,在上述結果中變量名為factor(temperature)Low。如果temperature=Low時其值為1,temperature=High時其值為0。
已經在結果中觀察到所有預測變量都是顯著的,把求得的斜率和截距項提取出來,現在拟合後的線性回歸可以表示為:
其中plant是植物生長高度;N是土壤氮含量,一組連續變量;temperature為類别變量,temperature=Low時其值為1,temperature=High時其值為0。
最終可得知,土壤氮含量高時更有利于植物生長,并且該植物為喜溫植物,低溫将抑制其生長。
最後,可以繪制一些簡單的統計圖觀察這種關系。
#單獨觀察植物生長高度與土壤氮濃度的關系,已知高度随氮濃度增加而增加
dat[which(dat$temperature == 'Low'),'color'] dat[which(dat$temperature == 'High'),'color']
plot(dat$N, dat$plant, pch = 20, col = dat$color, main = 'plant~N',
xlab = 'N', ylab = 'plant')
#單獨觀察植物生長高度與溫度的關系,已知低溫不利于植物生長
plot(dat$temperature, dat$plant, col = c('red', 'blue'), main = 'plant~temperature',
xlab = 'temperature', ylab = 'plant')
#同時展示三組變量關系的三維圖
library(car)
dat[which(dat$temperature == 'Low'),'temp'] dat[which(dat$temperature == 'High'),'temp']
scatter3d(plant~N+temp, data = dat, point.col = dat$color)
友情連結
多元線性回歸在R中的實作示例
簡單線性回歸和多項式回歸在R中的實作示例
生存分析之R包survival的單變量和多變量Cox回歸
生存分析之R包survival的參數生存回歸模型
Pearson、Spearman、Kendall、Polychoric、Polyserial相關系數
普魯克分析(Procrustes Analysis)評估物種-環境/功能關聯度
最大資訊系數(MIC)穩健量化相關強度及非線性關聯網絡
局部相似性分析(LSA)計算變量間關系的時滞效應
限制聚類-多元回歸樹及重要判别變量識别
幾種常見的判别分析分類方法
支援向量機分類及在R中實作
随機森林分類模型以及對重要變量的選擇