2017-05-29 32 views
0

在R中,我對以下數據庫使用了多項式迴歸。它表明R2很好,係數和模型的顯着性水平均小於0.05。但是當使用shapiro.test來測試殘差時,p值爲0.01088,這意味着殘差不符合正態分佈。所以我想知道多項式迴歸是否有效。多項式迴歸的殘差是否必須滿足正態性假設?多項式迴歸的正態性檢驗

下面附加的是用於迴歸的代碼和數據。

alloy<-data.frame(
    x=c(37.0, 37.5, 38.0, 38.5, 39.0, 39.5, 40.0, 
     40.5, 41.0, 41.5, 42.0, 42.5, 43.0), 
    y=c(3.40, 3.00, 3.00, 3.27, 2.10, 1.83, 1.53, 
     1.70, 1.80, 1.90, 2.35, 2.54, 2.90)) 

lm.sol=lm(y~x+I(x^2),data=alloy) 
summary(lm.sol) 

y.res=lm.sol$residuals 
shapiro.test(y.res) 

回答

0

那麼......這個問題可能屬於stat.exchange,因爲它與編程無關。不過,以下是我簡要介紹的數據。

R2和shapiro.test解決了數據和模型擬合的不同特徵,所以你可以讓那個是「好」*而另一個不是(對於「好」和「不」)足夠模糊的定義。

如果您繪製數據並將其擬合在同一圖表中,則可以看到整體趨勢很好地被二次迴歸模型捕獲。

plot(y ~ x, data=alloy) 
lines(alloy$x, predict(lm.sol)) 

enter image description here

的模式確實相當不錯。您還可以看到殘差的qq圖表明可能存在方差均勻性問題(請參閱最後的殘差)。

qqnorm(resid(lm.sol)) 

enter image description here

換句話說,殘差可能不一定遵循高斯分佈,但在數據中的整體趨勢被捕獲。

這有幫助嗎?

+0

很好的回答!這意味着儘管有時候殘差的shapiro.test的p值小於0.05,但是如果R2高,並且它滿足t.test和F.test,那麼該模型也可以被認爲是成功的。 cofficient和model分別? –

+0

另外,在原始模型中,點4的殘差是最大的。所以我刪除這個點,然後建立相同的多項式迴歸。基於新的結果,表明R2增加到0.9402,模型滿足t.test和F.test。更重要的是,shapiro.test殘差的p值也大於0.05。根據您的建議,我應該在未來的研究中使用哪種模型(原始模型VS新模型)? –

+0

首先回答你的最後一個問題:如果沒有很好的理由,我不會刪除點。如果模型不適合,那麼這是模型的問題 - 而不是數據。換句話說 - 我寧願在原始數據上使用第一個模型,而不是另一個。我懷疑擬合的曲線會有很大的不同。 – ekstroem