使用插入符号包进行线性回归中的变量优化

时间:2018-06-24 12:34:37

标签: r linear-regression r-caret

我有这样的X和Y:

x1 = rnorm(100) * sin(seq(0.1,10,0.1))
x2 = rnorm(100) * cos(seq(0.1,10,0.1))
x3 = rnorm(100) * tan(seq(0.1,10,0.1))

y = rgamma(100,1) * sin(seq(0.1,10,0.1))
x = as.matrix(cbind(x1,x2,x3))

现在我将它们假定为时间序列,并希望“累计”最近X的值以估算Y

vecCoef = c(5,5,10)
vecNum = c(5,5,10)

x0 = x

for (i in 1:3) {
  for (j in 1:vecNum[i]-1) {
    x0[,i] <- x0[,i] + 
        lag(rep(x[,i],2), i)[-1:-dim(x)[1]] * exp(-j * vecCoef[i])
  }
}

model = lm(y ~ x0)
AIC(model)

此代码通过将Xs的先前值相加来生成矢量,如以下等式所示:

formula

然后,我想优化vecCoefvecNum的参数,这些参数分别定义基于AIC的模型考虑来自先前值的影响的强度以及模型包含多少滞后。模型。

假设所有参数的最小值/最大值为1/20,那么选择贪婪的参数似乎不是一个好主意。然后,caret软件包是否能够处理此问题?如果没有,还有更好的选择吗?

0 个答案:

没有答案