【问题标题】:Force specific interactions in Package 'earth' in R在 R 中的“earth”包中强制进行特定交互
【发布时间】:2024-05-23 17:15:02
【问题描述】:

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

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

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

【问题讨论】:

  • 在线性回归模型中,使用交互而不是它们的建设性术语是不好的做法。我不了解 MARS 模型,但我怀疑这种情况也适用。

标签: r interaction sql-server-mars


【解决方案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)

【讨论】:

    最近更新 更多