在“地球”中强制进行特定的互动。在R

时间:2015-06-07 16:38:37

标签: r interaction mars

我正在使用' earth'包构建一个多元自适应回归样条模型。使用地球函数,有没有办法只允许某些预测变量之间的交互?

例如,如果我想将 y 建模为预测变量 a 的函数,< strong> b c d 2度在交互方面,我是否可以允许 b 仅与 c d进行交互 ,不是 a ?我认识到有'#34; allowable&#34;在地球函数中输入,但是从我的理解中可以得到&#34;允许&#34; input仅指定是否允许预测变量进行交互,而不是具体指定它可与之交互的其他预测变量。

请注意,我是使用MARS模型和此R包的新手,因此非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

以下是仅允许指定交互的示例。允许PREDICTORS中的预测变量与PARENTS中的预测变量进行交互,并且不允许其他任何交互:

library(earth)
data(etitanic)

PREDICTORS <- c("age")
PARENTS    <- c("survived", "parch")

example5 <- function(degree, pred, parents, namesx)
{
    if (degree < 2)
        return(TRUE)
    predictor <- namesx[pred]
    parents   <- namesx[parents != 0]
    if((any(predictor %in% PREDICTORS) && any(parents %in% PARENTS)) ||
       (any(predictor %in% PARENTS)    && any(parents %in% PREDICTORS))) {
        return(TRUE)
    }
    FALSE
}
a5 <- earth(sex~., data=etitanic, degree=2, allowed=example5)