溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

R語言多元線性回歸怎么實現(xiàn)

發(fā)布時間:2022-01-05 15:58:55 來源:億速云 閱讀:561 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“R語言多元線性回歸怎么實現(xiàn)”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

⑴多元回歸模型建立

當(dāng)預(yù)測變量也即自變量不止一個時為多元線性回歸(  multivariable linearregression  ,  MLR  ),多項式回歸可以看成特殊情況下的多元線性回歸?,F(xiàn)在我們以微生物群落數(shù)據(jù)為例,探究  α  多樣性指數(shù)與環(huán)境因子(  Salinity  、  pH  、  TN  、  TP  ,在  3.3.2.4VPA  分析中這幾個變量對微生物群落的解釋量較高)之間的關(guān)系,如下所示:
#讀取物種和環(huán)境因子信息data=read.csv("otu_table.csv", header=TRUE, row.names=1)otu=t(data)envir=read.table("environment.txt", header=TRUE)rownames(envir)=envir[,1]env=envir[,-1]#計算alpha多樣性library(vegan)shannon=diversity(otu, index="shannon")biodata=data.frame(shannon, env[,c("Salinity", "pH", "TN", "TP")])fit=lm(shannon~Salinity+pH+TN+TP, data=biodata)summary(fit)

回歸結(jié)果如下所示:

R語言多元線性回歸怎么實現(xiàn)

整體回歸模型檢驗結(jié)果顯著,方差解釋率  60%  ,但是五個系數(shù)中只有  3  個是顯著不為  0  的。在多元回歸中,隨著解釋變量的增加,無論這些解釋變量是否與響應(yīng)變量有關(guān),  R2  一般都會增加,這主要是由于隨機(jī)相關(guān)的存在。因此更嚴(yán)謹(jǐn)?shù)膩碚f我們需要根據(jù)自由度校正  R2  ,最常用的校正方法如下所示:

R語言多元線性回歸怎么實現(xiàn)

上式被稱為Ezekiel公式。上面多元回歸的結(jié)果中已經(jīng)給出了校正后的R2(51%),我們也可以使用vegan包中的RsquareAdj()函數(shù)來校正類多元回歸模型(MLR、RDA等)中的R2,如下所示:

library(vegan)RsquareAdj(fit)

R語言多元線性回歸怎么實現(xiàn)

在上面的多元回歸分析中,并沒有考慮交互項,但是交互項的解釋模型往往使得研究更加有趣,交互影響說明兩個解釋變量對響應(yīng)變量的影響是非獨立的,例如兩種重金屬濃度升高時造成的毒性大于單獨存在時的毒性,如下所示:

fit2=lm(shannon~Salinity+TN+TP:pH, data=biodata)summary(fit2)

R語言多元線性回歸怎么實現(xiàn)

可以看到,使用TP與pH的交互項作為一個預(yù)測變量后,系數(shù)的顯著性整體增強(qiáng),而在第一次回歸中,TP與多樣性系數(shù)不顯著,交互項可以理解為TP對多樣性的影響要依賴于pH的水平,也即不同pH下TP對微生物群落的影響不同。復(fù)雜的多重多元線性回歸可以使用RDA分析來實現(xiàn)。

⑵回歸診斷

我們可以使用一元回歸診斷方法進(jìn)行簡單的診斷,結(jié)果如下:

par(mfrow=c(2,2))plot(fit)

R語言多元線性回歸怎么實現(xiàn)

在R中car包提供了更詳細(xì)的回歸模型診斷函數(shù),接下來我們對多元回歸模型進(jìn)行詳細(xì)的評價。

①正態(tài)性

可以通過檢驗殘差是否滿足t分布來檢驗正態(tài)性,如下所示:

library(car)par(mfrow=c(1,1))qqPlot(fit, labels=names(shannon), id.method="identify", simulate=TRUE)

其中simulate=TRUE則95%的置信區(qū)間會使用參數(shù)自助法(parametric bootstrap)生成,自助法就是假設(shè)樣本是總體,然后采取有放回抽樣方法來確定參數(shù)的分布。如下圖所示,沒有觀察到超出置信區(qū)間的離群點,也即數(shù)據(jù)正態(tài)性良好:

R語言多元線性回歸怎么實現(xiàn)

②殘差獨立性

接下來檢驗殘差是否相關(guān),可以使用durbinWatsonTest()函數(shù)進(jìn)行Durbin-Waston檢驗,如下所示:

durbinWatsonTest(fit, simulate=TRUE, reps=999)

R語言多元線性回歸怎么實現(xiàn)

其中參數(shù)reps設(shè)置了自助抽樣的次數(shù),結(jié)果p值剛好大于0.05,可以拒絕零假設(shè)也即殘差相關(guān),說明殘差是獨立的。不過這個p值很小,仍是有不獨立可能的,可以想象,多樣性指數(shù)越低那么誤差范圍越小,預(yù)測值與觀察值越接近,因此殘差可能存在不獨立性。

③線性

因變量與自變量是否具有線性關(guān)系可以通過成分殘差圖來檢驗,方法如下:

crPlots(fit)

如下圖所示,成分殘差圖以每一個預(yù)測變量作為橫坐標(biāo),以整體模型的殘差加該預(yù)測變量和其系數(shù)的乘積(也即擬合值中該變量承擔(dān)的部分)作為縱坐標(biāo),如果所有圖像均為線性,說明線性關(guān)系良好;如果某一變量成分殘差圖為非線性,說明該變量需要添加多項式項。

R語言多元線性回歸怎么實現(xiàn)

④同方差性

可以使用ncvTest()函數(shù)檢驗方差恒定性,如下所示:

ncvTest(fit)

R語言多元線性回歸怎么實現(xiàn)

改檢驗零假設(shè)是誤差恒定,p值大于0.05同方差性檢驗通過。此外,spreadLevelPlot()函數(shù)繪制殘差與擬合值的關(guān)系圖,并給出數(shù)據(jù)轉(zhuǎn)換建議:

spreadLevelPlot(fit)

R語言多元線性回歸怎么實現(xiàn)

如下圖所示,隨著擬合值的變化先增大后減?。ǜ鶕?jù)實際情況,這很可能是由于變量不均勻性造成的),檢驗結(jié)果給出的建議是對響應(yīng)變量數(shù)據(jù)進(jìn)行2.59次冪次變換(即power transformation)。

R語言多元線性回歸怎么實現(xiàn)

⑤多重共線性

在使用多個解釋變量進(jìn)行回歸建模時,有時整個模型的顯著性非常好,然而回歸系數(shù)的檢驗卻不顯著,這時候很可能出現(xiàn)了多重共線性問題,也即解釋變量之間存在較強(qiáng)的相關(guān)性。由于回歸系數(shù)測量的實際上是固定其他解釋變量時該解釋變量對因變量的影響,共線性會導(dǎo)致回歸參數(shù)的置信區(qū)間過大,是單個系數(shù)解釋起來很困難。

在生態(tài)分析中,環(huán)境因子之間很可能會存在共線性問題,這對RDA、CCA、CAP等基于多元回歸的模型來說非常重要,因為這些方法使用到了回歸系數(shù)作為衡量解釋變量影響的指標(biāo),而VPA分析若要檢驗每部分方差的顯著性也需要消除共線性,LDA分析同樣如此。在3.3.2.1RDA分析中我們使用了統(tǒng)計量VIF(variance inflation factor,方差膨脹因子)進(jìn)行檢測,VIF實際上衡量的是回歸參數(shù)的置信區(qū)間能膨脹為與模型無關(guān)的解釋變量的程度,一般VIF>4則認(rèn)為存在多重共線性問題,檢驗方法如下:

vif(fit)

R語言多元線性回歸怎么實現(xiàn)

從結(jié)果可以看出,共線性問題并不嚴(yán)重。

⑥篩選特殊點

響應(yīng)變量中模型預(yù)測效果不佳的點稱之為離群點,預(yù)測變量中異常的預(yù)測變量值為高杠桿值點,對模型參數(shù)影響過大的點稱之為強(qiáng)影響點,也即移除這一觀測點模型會發(fā)生巨大的改變。對于一個模型來說,我們自然希望每個點影響是一樣的,一般來說強(qiáng)影響點既是離群點又是高杠桿值點。在前面的診斷中,已經(jīng)初步涉及了離群點和高杠桿點的檢測,下面提供一些其他的檢測方法:

#檢測離群點(校正后p值小于0.05為離群點)outlierTest(fit)

R語言多元線性回歸怎么實現(xiàn)

#可視化方法檢測特殊點influencePlot(fit, id.method="identify", ylim=c(-3,3))

R語言多元線性回歸怎么實現(xiàn)

上圖橫坐標(biāo)為帽子統(tǒng)計量,越大則杠桿值越大,縱軸為殘差,其絕對值越大則越可能為離群點,圓圈越大則該點影響力越大。

“R語言多元線性回歸怎么實現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI