使用LMER进行预测时的公式问题

时间:2015-03-26 04:48:24

标签: r lmer

当我尝试使用lmer

进行预测时,出现以下错误
> predict(mm1, newdata = TEST)
Error in terms.formula(formula(x, fixed.only = TRUE)) : 
  '.' in formula and no 'data' argument

这就是我的公式

> formula(mm1)
log_bid_price ~ . - zip_cbsa_name + (1 | zip_cbsa_name)

我能够总结模型,但我无法将其传递给预测函数。

我希望能够在给定预测变量矩阵的列的情况下自动生成公式,然后将其传递给lmer。我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可能会更成功地构建公式对象,如下所示:

resp <- "log_bid_price"
reserve.coef <- c("zip_cbsa_name")
RHS <- names(data)[-(which(names(data)  %in% c(resp, reserve.coef))]
f <- paste0(paste(resp, paste(RHS, collapse="+"), sep= "~"), " + (1 | zip_cbsa_name)")
mm1 <- lmer(f, data= data)

例如

paste0(paste("Y", paste(c("a", "b", "c"), collapse= "+"), sep="~"),  "+ (1 | zip_cbsa_name)")
[1] "Y~a+b+c+ (1 | zip_cbsa_name)"

如果您希望在进行模型选择时进行变量选择,可以对此进行迭代以生成RHS对象