疏浚中的子集 (MuMIn) - 如果存在主效应,则必须包括交互作用
Posted
技术标签:
【中文标题】疏浚中的子集 (MuMIn) - 如果存在主效应,则必须包括交互作用【英文标题】:Subsetting in dredge (MuMIn) - must include interaction if main effects are present 【发布时间】:2014-04-10 10:24:09 【问题描述】:我正在做一些探索性的工作,我使用了 dredgeMuMIn。在此过程中,我希望将两个变量设置为仅在它们之间存在交互时才允许一起使用,即它们不能仅作为主要影响一起存在。
使用示例数据:我想对模型 fm1 进行疏通(忽略它可能没有意义)。如果变量 GNP 和 Population 一起出现,它们还必须包括它们之间的交互作用。
require(stats); require(graphics)
## give the data set in the form it is used in S-PLUS:
longley.x <- data.matrix(longley[, 1:6])
longley.y <- longley[, "Employed"]
pairs(longley, main = "longley data")
names(longley)
fm1 <- lm(Employed ~GNP*Population*Armed.Forces, data = longley)
summary(fm1)
dredge(fm1, subset=!((GNP:Population) & !(GNP + Population)))
dredge(fm1, subset=!((GNP:Population) && !(GNP + Population)))
dredge(fm1, subset=dc(GNP+Population,GNP:Population))
dredge(fm1, subset=dc(GNP+Population,GNP*Population))
我如何在dredge()
中指定它应该忽略存在 GNP 和人口的所有模型,但不考虑它们之间的交互?
【问题讨论】:
抱歉,我没有看到您面临的问题。问题是什么? 我如何在 dredge() 中指定它应该忽略所有存在 GNP 和 Population 的模型,而不是它们之间的交互。 【参考方案1】:如果我理解得很好,您只想将两个主要效果(例如,a 和 b)与它们的交互(a:b)。那么如何:subset = !a | (xor(a, b) | 'a:b')
(将 a:b 括在反引号 (`) 中而不是直引号中),例如:
library(MuMIn)
data(Cement)
fm <- lm(y ~ X1 * X2, Cement, na.action = na.fail)
dredge(fm, subset = !X2 | (xor(X1, X2) | `X1:X2`))
或将此条件包装到函数中以使代码更清晰:
test <- function(a, b, c) !a | (xor(a, b) | c)
dredge(fm, subset = test(X1, X2, `X1:X2`))
产生:null、X1、X2、X1*X2(不包括 X1 + X2)
【讨论】:
我面临着类似的情况,但我想在结果集中包含所有组合。我如何告诉疏浚?以上是关于疏浚中的子集 (MuMIn) - 如果存在主效应,则必须包括交互作用的主要内容,如果未能解决你的问题,请参考以下文章