R中含交互项的多分类逻辑回归似然比测试报错解决方法
多分类逻辑回归似然比检验的正确实现方法
问题原因
你遇到的错误是因为lrtest()(通常来自lmtest包)没有针对multinom类模型的适配方法,无法直接调用该函数完成检验。
前置修正(重要)
注意:当前你的无交互项模型未包含trstplt主效应,这不符合嵌套模型的要求——要检验交互项的价值,无交互项模型应包含所有主效应(仅去掉交互项),同时确保两个模型使用同一数据集:
# 修正后的无交互项模型(包含trstplt主效应,统一用ie22数据集) model_without_interaction <- multinom(prtvtcie ~ freehms + trstplt + agea + gndr_dummy, data = ie22) # 你的含交互项模型(保持不变) model_with_interaction <- multinom(prtvtcie ~ freehms + trstplt + freehms*trstplt + agea + gndr_dummy, data = ie22)
两种正确的检验方法
方法1:使用基础R的anova()函数
直接对比两个嵌套模型,指定检验类型为似然比检验(LRT):
anova(model_without_interaction, model_with_interaction, test = "LRT")
输出结果会包含卡方统计量、自由度和p值:若p值<0.05,说明加入交互项后模型拟合度显著提升,交互项具有统计价值。
方法2:手动计算似然比统计量
如果需要更灵活的计算方式,可手动实现:
# 提取两个模型的对数似然值 ll_null <- logLik(model_without_interaction) ll_alt <- logLik(model_with_interaction) # 计算似然比统计量和自由度 lr_stat <- 2 * (ll_alt - ll_null) df <- attr(ll_alt, "df") - attr(ll_null, "df") # 计算p值 p_value <- pchisq(lr_stat, df, lower.tail = FALSE) # 输出结果 cat("似然比统计量:", lr_stat, "\n自由度:", df, "\np值:", p_value, "\n")
内容的提问来源于stack exchange,提问作者Jana
相关产品推荐
相关产品推荐

