我正在研究使用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)
以下是我的问题
感谢您的帮助。
答案 0 :(得分:1)
您不能强制预测器进入地球/ MARS模型。 MARS算法的基础是自动选择预测变量。
但是有可能通过设置thresh = 0和penalty = -1来破坏正常算法,从而增加所有预测变量进入模型的可能性。请参阅地球帮助页面,并在地球小插图中搜索“thresh”和“penalty”以获取详细信息和示例。
然而,引用那个小插图:“通常最好不要通过调整来破坏标准的MARS算法 thresh,penalty和endpan等参数。请记住,我们并不寻求 一个最适合训练数据的模型,而是一个最适合底层的模型 分配“。
您无法手动修复结。再次,如果MARS算法固有的话,自动选择结。但是,minspan和endpan参数为您提供了一些自动放置结的灵活性,例如minspan = -3将允许每个预测器最多3个等间距结。