我在 R 中运行了 multinom() 函数,但是当我尝试对新样本进行预测时,它不断给出错误。
这是代码:
library(nnet)
dta=data.frame(replicate(10,runif(10)))
names(dta)=c('y',paste0('x',1:9))
res4 <- multinom(y ~ as.matrix(dta[2:10]) , data=dta)
#make new data to predict
nd<-0.1*dta[1,2:10]
pred<-predict(res4, newdata=nd)
这是错误:
Error in predict.multinom(res4, newdata = nd) :
NAs are not allowed in subscripted assignments
我认为这与分析中包含的截距有关,但与新的预测输入无关。我尝试通过合并一个 1x1 数据框来手动设置它,该数据框包含一个名为“Intercept”的 1(因为它在 summary() 中被调用),但它仍然给出相同的错误。
#add intercept manually to prediction row
intercept<-data.frame(1)
names(intercept)[1]<-"Intercept"
nd<-merge(intercept,nd)