我正在尝试对具有转换后的独立变量的线性模型进行交叉验证,但是大多数CV函数(DAAG::cvLm()
,cvTools::repCV()
等)由于无法找到x3
而无法处理或数据中的x4
。我想我可以生成x5=log(x3)
和x6=I(x4 %in% c("A", "B")
并重新估算。但是有没有可以自动处理的功能?
set.seed(666)
DF <- data.table::data.table(x1=rnorm(100), x2=runif(100, 3, 5), x3=rnorm(100, 10, 2),
x4=sample(c("A","B","C","D"), 100, replace = T))
DF[,`:=`( y1= 2*x1+3*x2+4*log(x3)+rnorm(100),
y2= x1+x2+I(!x4 %in% c("C","D"))+rnorm(100))]
lm1 <- lm(y1~x1+x2+log(x3), data=DF)
lm2 <- lm(y2~x1+x2+I(!x4 %in% c("C","D")), data=DF)
cvTools::repCV(lm1)
eval(predvars,data,env)中的错误:找不到对象'x3'
cvTools::cvLm(lm2)
x4%in%c(“ C”,“ D”)中的错误:找不到对象'x4'