用于 beta 回归的类方差分析对象
anova like object for betaregression
我想知道,R 中是否有类似方差分析的对象用于 beta 回归?我知道它没有在 betareg
包中实现,但我不明白为什么会这样。
如果没有这个对象,有没有简单的实现方法呢?
如有任何帮助,我们将不胜感激。
编辑:
我真正想要的是确定因素的显着性。使用 lmtest
包会是这样的:
library("betareg")
data("ReadingSkills", package = "betareg")
m1 <- betareg(accuracy ~ dyslexia, data = ReadingSkills)
m2 <- betareg(accuracy ~ iq, data = ReadingSkills)
m3 <- betareg(accuracy ~ iq + dyslexia, data = ReadingSkills)
library("lmtest")
lrtest(m2, m3)
lrtest(m1, m3)
但是模型中有大量协变量,这种方法似乎有点不舒服
好吧,我找到了答案 - 使用 car
包中的 Anova()
函数是可能的。
类似于 https://stats.stackexchange.com/questions/297465/deviance-in-hurdle-model/299857#299857 beta 回归模型不是标准的 GLM,尤其是当它们在精度子模型中有回归变量时。因此,偏差分析的工作方式与 GLM 不同。 (因此,@Adela 提出的 Anova()
解决方案是不正确的。)
相反,可以使用包 lmtest
中的通用 waldtest()
和 lrtest()
函数来执行 Wald 或似然比检验以进行嵌套模型比较。 vignette("betareg", package = "betareg")
中也对此进行了说明,下面还包含一个简单示例:
library("betareg")
data("ReadingSkills", package = "betareg")
m0 <- betareg(accuracy ~ 1 | 1, data = ReadingSkills)
m1 <- betareg(accuracy ~ iq | 1, data = ReadingSkills)
m2 <- betareg(accuracy ~ iq + dyslexia | 1, data = ReadingSkills)
m3 <- betareg(accuracy ~ iq + dyslexia | iq + dyslexia, data = ReadingSkills)
library("lmtest")
lrtest(m0, m1, m2, m3)
## Likelihood ratio test
##
## Model 1: accuracy ~ 1 | 1
## Model 2: accuracy ~ iq | 1
## Model 3: accuracy ~ iq + dyslexia | 1
## Model 4: accuracy ~ iq + dyslexia | iq + dyslexia
## #Df LogLik Df Chisq Pr(>Chisq)
## 1 2 26.421
## 2 3 34.586 1 16.330 5.322e-05 ***
## 3 4 49.951 1 30.730 2.966e-08 ***
## 4 6 61.257 2 22.612 1.230e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
我想知道,R 中是否有类似方差分析的对象用于 beta 回归?我知道它没有在 betareg
包中实现,但我不明白为什么会这样。
如果没有这个对象,有没有简单的实现方法呢?
如有任何帮助,我们将不胜感激。
编辑:
我真正想要的是确定因素的显着性。使用 lmtest
包会是这样的:
library("betareg")
data("ReadingSkills", package = "betareg")
m1 <- betareg(accuracy ~ dyslexia, data = ReadingSkills)
m2 <- betareg(accuracy ~ iq, data = ReadingSkills)
m3 <- betareg(accuracy ~ iq + dyslexia, data = ReadingSkills)
library("lmtest")
lrtest(m2, m3)
lrtest(m1, m3)
但是模型中有大量协变量,这种方法似乎有点不舒服
好吧,我找到了答案 - 使用 car
包中的 Anova()
函数是可能的。
类似于 https://stats.stackexchange.com/questions/297465/deviance-in-hurdle-model/299857#299857 beta 回归模型不是标准的 GLM,尤其是当它们在精度子模型中有回归变量时。因此,偏差分析的工作方式与 GLM 不同。 (因此,@Adela 提出的 Anova()
解决方案是不正确的。)
相反,可以使用包 lmtest
中的通用 waldtest()
和 lrtest()
函数来执行 Wald 或似然比检验以进行嵌套模型比较。 vignette("betareg", package = "betareg")
中也对此进行了说明,下面还包含一个简单示例:
library("betareg")
data("ReadingSkills", package = "betareg")
m0 <- betareg(accuracy ~ 1 | 1, data = ReadingSkills)
m1 <- betareg(accuracy ~ iq | 1, data = ReadingSkills)
m2 <- betareg(accuracy ~ iq + dyslexia | 1, data = ReadingSkills)
m3 <- betareg(accuracy ~ iq + dyslexia | iq + dyslexia, data = ReadingSkills)
library("lmtest")
lrtest(m0, m1, m2, m3)
## Likelihood ratio test
##
## Model 1: accuracy ~ 1 | 1
## Model 2: accuracy ~ iq | 1
## Model 3: accuracy ~ iq + dyslexia | 1
## Model 4: accuracy ~ iq + dyslexia | iq + dyslexia
## #Df LogLik Df Chisq Pr(>Chisq)
## 1 2 26.421
## 2 3 34.586 1 16.330 5.322e-05 ***
## 3 4 49.951 1 30.730 2.966e-08 ***
## 4 6 61.257 2 22.612 1.230e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1