2017-01-30 596 views
1

素食主義者包包括模型構建的ordiR2step()函數,該函數可用於確定使用R2和p值作爲最佳擬合的最重要變量措施。然而,對於最近使用該功能的數據集而言,並不能提供最適合的模型。素食主義者:: ordiR2step()找不到最適合的模型

# data 
RIKZ <- read.table("http://www.uni-koblenz-landau.de/en/campus-landau/faculty7/environmental-sciences/landscape-ecology/Teaching/RIKZ_data/at_download/file", header = TRUE) 

# data preparation 
Species <- RIKZ[ ,2:5] 
ExplVar <- RIKZ[ , 9:15] 
Species_fin <- Species[ rowSums(Species) > 0, ] 
ExplVar_fin <- ExplVar[ rowSums(Species) > 0, ] 

# rda 
RIKZ_rda <- rda(Species_fin ~ . , data = ExplVar_fin, scale = TRUE) 

# stepwise model building: ordiR2step() 
require(vegan) 
step_both_R2 <- ordiR2step(rda(Species_fin ~ salinity, data = ExplVar_fin, scale = TRUE), 
         scope = formula(RIKZ_rda), 
         direction = "both", R2scope = TRUE, Pin = 0.05, 
         steps = 1000) 

爲什麼ordiR2step()不是變量曝光添加到模型,雖然它會增加方差解釋?

如果R2scope設置爲FALSE並且p值標準增加(Pin = 0.15)它增加了可變曝光 corretly但引發以下錯誤:如果R2scope設置爲TRUE(Pi = 0.15

Error in terms.formula(tmp, simplify = TRUE) : 
    invalid model formula in ExtractVars 

曝光未被添加。

注意:這可能看起來更像是一個統計問題,因此更適合於CV。不過,我認爲這個問題在技術上和技術上都比較好。

回答

1

請閱讀ordiR2step文檔:它會告訴你爲什麼exposure沒有添加到模型中。幫助頁面告訴ordiR2step有三個停止標準。第二個標準是「超出'範圍'的調整後的R2」。這發生在exposure,因此它沒有被添加。如果您設置了R2scope = FALSE(也記錄在案),則第二個標準將被忽略。所以這個功能就像文件一樣工作

+0

感謝您的回答!我應該在早些時候檢查過**文檔的** Details。但是文檔說你應該使用'R2step = FALSE'而不是'R2scope = FALSE'來忽略第二個標準。在文檔'R2scope = FALSE'之後,只允許計算adj。 R2如果預測變量的數量高於觀測值的數量。參數隨時間變化了嗎? – andrasz

+1

'R2step'是文檔中的錯誤,現在在github中進行了更正(以及消息中報告的'Error in terms.formula()'中的錯誤)。 –