函数predict()与设计矩阵一起使用,但仅与该矩阵的一部分抛出错误

时间:2015-11-20 00:27:15

标签: r predict nnet

我在multinom()进行多项logit回归后遇到了predict()问题。我使用model.matrix()生成一个设计矩阵,并用它来估计模型。然后,如果我将整个设计矩阵传递给predict(),它将返回与fits()相同的输出,这是预期的。但是,如果我只传递设计矩阵的几行,则会抛出此错误:

Error in model.frame.default(Terms, newdata, na.action = na.omit, xlev
= object$xlevels) :    variable lengths differ (found for 'z') In addition:   
Warning message: 'newdata' had 6 rows but variables found have 15 rows

这是一个最小的例子:

require(nnet)

y<-factor(rep(c(1,2,3),5), levels=1:3, labels=c("good","bad","ugly"))
x<-rnorm(15)+.2*rep(1:3,5)
z<-factor(rep(c(1,2,2),5), levels=1:2, labels=c("short","tall"))

df<-data.frame(y=y, x=x, z=z)
mm<-model.matrix(~x+z, data=df)[,2:3]
m<-multinom(y ~ x+z, data=df)

p1<-predict(m,mm,"probs")

p2<-predict(m,head(mm),"probs")

我的实际目标是样本外预测,但我无法使其工作,并且在调试时,我将其减少到了这个问题。

0 个答案:

没有答案