0
var1<-sample(c('A', 'B', 'C'), replace = T, size=100)
var2<-sample(c(0,1), size=100, replace=T)
var3<-rnorm(100, mean=10, sd=2)
df<-data.frame(var1, var2, var3)
library(nnet)
m1<-multinom(var1~var2, data=df)
m2<-multinom(var1~var3, data=df)
m3<-multinom(var1~var2+var3, data=df)
#install.packages('DescTools')
library(DescTools)

PseudoR2(m1, which='all')

我得到这个错误代码:

as.data.frame.default(data, optional = TRUE) 中的错误:无法将类“函数”强制转换为 data.frame 此外:警告消息:在 PseudoR2(m1, which = "all") 中:可以找不到用于评估 PseudoR2 空模型的 multinom 对象的模型或数据元素。将使用“df”的新评估来拟合空模型。确保对象自初始调用以来未更改,或尝试使用“model = TRUE”运行 multinom

但是,m1是一个multinom对象,我认为它的格式都很好,不是吗?

4

1 回答 1

0

您需要设置model=T

var1<-sample(c('A', 'B', 'C'), replace = T, size=100)
var2<-sample(c(0,1), size=100, replace=T)
var3<-rnorm(100, mean=10, sd=2)
df<-data.frame(var1, var2, var3)
library(nnet)
m1<-multinom(var1~var2, data=df, model=T)
m2<-multinom(var1~var3, data=df)
m3<-multinom(var1~var2+var3, data=df)
#install.packages('DescTools')
library(DescTools)

PseudoR2(m1, which='all')

PseudoR2(m1, which='all')
       McFadden     McFaddenAdj        CoxSnell      Nagelkerke   AldrichNelson VeallZimmermann           Efron McKelveyZavoina            Tjur 
     0.00623116     -0.03030106      0.01355262      0.01526082              NA              NA              NA              NA              NA 
            AIC             BIC          logLik         logLik0              G2 
   225.62024056    236.04092130   -108.81012028   -109.49238485      1.36452914 
> 
于 2020-09-25T15:08:52.863 回答