R:earth:分别修剪每个变量的样条数和斜率符号

时间:2016-03-12 23:39:31

标签: r regression

library(earth)

y <- cumsum(sample(c(-1, 1),100, TRUE))
p1 <- cumsum(sample(c(-1, 1),100, TRUE))
p2 <- cumsum(sample(c(-1, 1),100, TRUE))
p3 <- cumsum(sample(c(-1, 1),100, TRUE))
n1 <- cumsum(sample(c(-1, 1),100, TRUE))
n2 <- cumsum(sample(c(-1, 1),100, TRUE))

df1  <- data.frame(y,p1,p2,p3,n1,n2)
df1

我使用地球进行非线性回归。我有一些限制 第一个变量中的最大样条数为2,第二个变量为3,第三个变量为4个等。此外,p变量必​​须为正斜率,n个变量为负斜率。

我可以为样条线数设置全局最大值:

fit <- earth(y ~ ., data = df1,nprune=50,trace=5)

但我在设置每个变量的最大样条数和斜率符号时遇到问题。我试过了:

fit <- earth(y ~ ., data = df1,nprune=c(2,3,4,5,6))
plotmo(fit)
summary(fit, digits = 2, style = "pmax")

但是我收到了错误。

如何控制每个变量的最大样条数和斜率符号,以避免虚假回归?

我在想,可能有一种方法可以在模型选择过程之前设置条件。可能通过对地球功能进行一些微小的改动,但我还没有能够做到这一点。此功能已隐藏,但可以按以下方式查看:

要查看隐藏的S3功能:

methods(earth)
getAnywhere(earth.default)
getAnywhere(earth.formula)

以下是查看hiddden S3功能的链接: How can I view the source code for a function?

要查看所有代码(R,C,Fortran等),请从CRAN下载.tar.gz源代码包,将其解压缩,并在&#34; R&#34;中提供R源代码。子目录。

也: cerebralmastication.com/2009/02/finding-the-source-in-r

查看S4功能使用:

showMethods()
getMethod()

感谢您的帮助。

0 个答案:

没有答案
相关问题