我正在尝试交叉验证面板数据分析,但我在预测功能方面遇到了问题。下面的代码是出现问题的CV函数的一部分。当我尝试运行函数的这一部分时,我会在代码描述的末尾标记错误消息。
mutex
我已经看过预测函数,X和beta术语是相互矛盾的。有没有人建议我能做些什么来克服这个问题?
compare <- data.frame()
train.model <- list()
for (f in 1:numoffolds)
{
train.model[[f]] <- plm(logit(II1)~.,data=select(filter(train, cv != f),-Incomegroup, -cv),
model="within", effect="twoways", index=c("Year", "Country") )
II1.p <- predict(train.model[[f]], newdata=select(filter(train, cv == f),-Country, -Year, -cv, -Incomegroup), type="response")
II1 <- filter(train, cv == f)$II1
compare <- rbind(compare, data.frame(II1.p = II1.p, II1 = II1))
}
Error in crossprod(beta, t(X)) : non-conformable arguments
Called from: crossprod(beta, t(X))
我一直在考虑采用其他方法,例如基于树的回归,但我想使用function (object, newdata = NULL, ...)
{
tt <- terms(object)
if (is.null(newdata)) {
result <- fitted(object, ...)
}
else {
Terms <- delete.response(tt)
m <- model.frame(Terms, newdata)
X <- model.matrix(Terms, m)
beta <- coef(object)
result <- as.numeric(crossprod(beta, t(X)))
}
result
来提出具体观点。任何帮助评论和/或代码将不胜感激。