vegan::ordiR2step() 没有找到最合适的模型
vegan::ordiR2step() doesn't find best-fit model
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()
不将变量 exposure 添加到模型中,尽管它会增加解释方差?
如果 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。但是我认为这个问题是相当技术性的,最好在这里解决。
请阅读 ordiR2step
文档:它会告诉您为什么 exposure
没有添加到模型中。帮助页面告诉我们 ordiR2step
有三个停止条件。第二个标准是"the adjusted R2 of the ‘scope’ is exceeded"。 exposure
会发生这种情况,因此未添加。如果您设置 R2scope = FALSE
(也有记录),第二个标准将被忽略。所以该函数的工作方式与记录的一样。
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()
不将变量 exposure 添加到模型中,尽管它会增加解释方差?
如果 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。但是我认为这个问题是相当技术性的,最好在这里解决。
请阅读 ordiR2step
文档:它会告诉您为什么 exposure
没有添加到模型中。帮助页面告诉我们 ordiR2step
有三个停止条件。第二个标准是"the adjusted R2 of the ‘scope’ is exceeded"。 exposure
会发生这种情况,因此未添加。如果您设置 R2scope = FALSE
(也有记录),第二个标准将被忽略。所以该函数的工作方式与记录的一样。