1

multinom() による多項ロジット回帰の後、predict() に問題があります。model.matrix() で計画行列を生成し、それを使用してモデルを推定します。次に、計画行列全体を predict() に渡すと、fitted() と同じ出力が返されますが、これは予想どおりです。しかし、計画行列の数行だけを渡すと、次のエラーがスローされます。

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")

私の実際の目標はサンプル外の予測ですが、機能させることができず、デバッグ中にこの問題に減らしました。

4

0 に答える 0