0

我正在使用 R 中的 earth 包研究 MARS 模型。我想强制模型中的所有变量。我有 14 个预测变量,但结果却只有 13 个预测变量。下面是我的代码。

mdl <- earth(x,y,nprune=10000, nk=1000, degree=1, thresh=1e-7,
        linpreds=c(1:14), penalty = -1,  ponly=T, trace = 0)

这是我的问题

  1. 我是否可以强制变量而不是一些变量选择。如果是,如何?\
  2. 一旦我开始探索数据中的铰链,我是否可以手动修复这些节点,然后根据它们获得估计。

感谢帮助。

4

1 回答 1

2

您不能将预测变量强加到地球/火星模型中。MARS 算法的基础是自动选择预测变量。

但是可以通过设置 thresh=0 和惩罚=-1 来颠覆常规算法,从而增加所有预测变量进入模型的可能性。请参阅 earth 帮助页面,并在 earth vignette 中搜索“thresh”和“penalty”以获取详细信息和示例。

但是,引用该小插曲:“通常最好不要通过调整参数(例如 thresh、惩罚和 endspan)来颠覆标准 MARS 算法。请记住,我们不是在寻找最适合训练数据的模型,而是一个最适合底层分布的模型。”

您无法手动修复结。再一次,如果 MARS 算法固有,则自动选择结。然而, minspan 和 endspan 参数在自动放置结时为您提供了一些灵活性,例如 minspan=-3 将允许每个预测变量最多 3 个等间距的结。

于 2015-06-12T15:12:13.707 回答