首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于Anova的模型比较

基于Anova的模型比较
EN

Stack Overflow用户
提问于 2022-02-24 14:40:22
回答 2查看 466关注 0票数 0

我试着用Anova函数比较6种模型。mod 1:4使用lm函数制作,mod 5和6是使用lmer函数制作的模型。我想这是什么导致了这个错误信息,有什么想法,我可以如何比较这6种模式?

代码语言:javascript
运行
复制
anova(mod1, mod2, mod3, mod4, mod5, mod6)
Error: $ operator not defined for this S4 class
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-24 15:37:48

anova()可以与lmerlm混合模型一起工作。然而,由于R的类型系统的设置方式,它只有在第一个参数是lmer模型时才能工作。也就是说,anova.merMod()方法(如果第一个参数是[g]lmer模型就会被调用)知道如何处理lm对象,但是anova.lm()方法(如果首先调用lm对象)不知道merMod对象.

代码语言:javascript
运行
复制
> library(lme4)
Loading required package: Matrix
> fm1 <- lmer(Reaction ~ Days + (1|Subject), sleepstudy, REML = FALSE)
> fm2 <- lm(Reaction ~ Days, sleepstudy)
> fm3 <- lm(Reaction ~ 1, sleepstudy)
> anova(fm1, fm2, fm3)
Data: sleepstudy
Models:
fm3: Reaction ~ 1
fm2: Reaction ~ Days
fm1: Reaction ~ Days + (1 | Subject)
    npar    AIC    BIC  logLik deviance   Chisq Df Pr(>Chisq)    
fm3    2 1965.0 1971.4 -980.52   1961.0                          
fm2    3 1906.3 1915.9 -950.15   1900.3  60.756  1  6.461e-15 ***
fm1    4 1802.1 1814.8 -897.04   1794.1 106.214  1  < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> anova(fm3, fm2, fm1)
Error: $ operator not defined for this S4 class
票数 2
EN

Stack Overflow用户

发布于 2022-02-24 14:57:02

我建议比较使用compare_performance()performance包而不是anova()的模型。

这样你就可以比较AIC,BIC,R-平方等等.

请看这里的材料:https://easystats.github.io/performance/articles/compare.html

在进行视觉比较之后,我建议您使用来自同一个包的test_performance()

我还建议您使用它们推荐的功能重新运行您的模型。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71253671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档