2014-02-09 6 views
2

R에서 multinom() 함수를 실행했지만 새 샘플을 예측하려고하면 오류가 계속 발생합니다. R에서 절편을 사용하여 multinom()과 함께 predict를 사용하는 방법?

코드입니다 :

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 

나는 그것이 분석에 포함되는 차단과 관련이있다 생각하지만 새로운 예측에 입력. 나는 "Intercept"라는 이름의 1x1 데이터 프레임을 합병하여 수동으로 설정하려했으나 (summary()에서 호출 됨) 여전히 동일한 오류가 발생합니다.

#add intercept manually to prediction row 
intercept<-data.frame(1) 
names(intercept)[1]<-"Intercept" 
nd<-merge(intercept,nd) 

답변

1

문제는 당신이 모델을 지정하는 방법을 함께 : 당신이 그런 식으로 R 기능을 혼합 할 수 없습니다. 시도해보십시오.

res4 <- multinom(y ~ . , data=dta) # You could also specify explicitly: y~x1+x2+x3... 
#make new data to predict 
nd<-0.1*dta[1,2:10] 
predict(res4, newdata=nd) 
# [1] 0.971794712357223 
# 10 Levels: 0.201776991132647 0.211950202938169 0.223103292752057 0.225121688563377 0.372682225191966 0.612373929005116 ... 0.971794712357223 
+0

감사합니다. – DaReal