0

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

例如,如果我想将y建模为具有 2 度交互作用的预测变量abcd的函数,我可以允许b仅与cd交互,而不是a吗?我认识到地球功能中有“允许”输入,但据我了解,“允许”输入仅指定是否允许预测器交互,而不是具体指定它可以与哪些其他预测器交互。

请注意,我不熟悉使用 MARS 模型和这个 R 包,因此非常感谢任何帮助。谢谢!

4

1 回答 1

1

这是一个仅允许指定交互的示例。允许 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)
于 2015-06-12T14:57:40.843 回答