vegan :: ordiR2step()找不到最合适的模型

时间:2017-01-30 14:10:34

标签: r vegan

纯素包包含用于模型构建的ordiR2step()函数,可用于使用R2识别最重要的变量,并使用p值作为拟合度度量。但是对于我最近使用该函数的数据集,并没有提供最合适的模型。

# 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),则会相应地添加变量 exposure 但会引发以下错误:

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

如果R2scope设置为TRUE(Pi = 0.15曝光未添加。

注意:这可能更像是一个统计问题,因此更适合CV。但是我觉得这个问题在技术方面比较好,而且在SO上也是如此。

1 个答案:

答案 0 :(得分:1)

请阅读ordiR2step文档:它会告诉您为什么exposure未添加到模型中。帮助页面告诉ordiR2step有三个停止标准。第二个标准是&#34;超出'范围'的调整后的R2&#34;。 exposure会发生这种情况,因此未添加。如果设置R2scope = FALSE(也记录在案),则会忽略第二个标准。所以这个功能就像记录在案一样。