首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中quantreg包中的anova.rq()

R中quantreg包中的anova.rq()
EN

Stack Overflow用户
提问于 2015-09-23 15:33:20
回答 1查看 1.7K关注 0票数 3

我感兴趣的是在R.中的anova.rqlist包环境中使用anova调用的anova函数来比较来自不同分位数(相同的结果、相同的协变量)的估计值,但是函数中的数学超出了我的基本专业知识。让我们说,我适合在不同的分位数的3个模型;

代码语言:javascript
复制
library(quantreg)
data(Mammals) # data in quantreg to be used as a useful example
fit1 <- rq(weight ~ speed + hoppers + specials, tau = .25, data = Mammals)
fit2 <- rq(weight ~ speed + hoppers + specials, tau = .5, data = Mammals)
fit3 <- rq(weight ~ speed + hoppers + specials, tau = .75, data = Mammals)

然后比较它们的使用情况;

代码语言:javascript
复制
anova(fit1, fit2, fit3, test="Wald", joint=FALSE)

我的问题是,这些模式中的哪一种被用作比较的基础?

对Wald测试(wiki条目)的理解

其中θ^是与建议值θ0相比较的感兴趣θ参数的估计值。

那么,我的问题是,anova函数在quantreg中选择为θ0是什么?

根据从anova返回的pvalue,我最好的猜测是它正在选择指定的最低分位数(即tau=0.25)。是否有一种方法可以指定中位数(tau = 0.5)或更好的使用lm(y ~ x1 + x2 + x3, data)获得的平均估计数

代码语言:javascript
复制
anova(fit1, fit2, fit3, joint=FALSE)

实际生产

代码语言:javascript
复制
Quantile Regression Analysis of Deviance Table

Model: weight ~ speed + hoppers + specials
Tests of Equality of Distinct Slopes: tau in {  0.25 0.5 0.75  }

             Df Resid Df F value  Pr(>F)  
speed         2      319  1.0379 0.35539  
hoppersTRUE   2      319  4.4161 0.01283 *
specialsTRUE  2      319  1.7290 0.17911  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

代码语言:javascript
复制
anova(fit3, fit1, fit2, joint=FALSE)

产生完全相同的结果

代码语言:javascript
复制
Quantile Regression Analysis of Deviance Table

Model: weight ~ speed + hoppers + specials
Tests of Equality of Distinct Slopes: tau in {  0.5 0.25 0.75  }

             Df Resid Df F value  Pr(>F)  
speed         2      319  1.0379 0.35539  
hoppersTRUE   2      319  4.4161 0.01283 *
specialsTRUE  2      319  1.7290 0.17911  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

模型的顺序在anova中有明显的变化,但是在这两个测试中F值和Pr(>F)怎么是相同的呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-23 21:13:53

您输入的所有分位数都被使用,并且没有一个模型用作参考。

我建议你阅读这个职位和相关的答案来理解你的"theta.0“是什么。

我相信你要做的是测试回归线是否是平行的。换句话说,预测变量的影响(这里只有收入)是否在各分位数之间是一致的。

您可以使用来自quantreg包的来回答这个问题。您确实应该对每个分位数使用几个适合的方法。

当你像你一样使用joint=FALSE时,你就可以得到系数的比较。但是你只有一个系数,所以只有一条线!您的结果告诉您,在您的示例中,income的效果并不是相同的累加分数。使用多个预测变量,您将得到几个p值.

如果不使用joint=FALSE,则可以对整组系数的相等性进行全面测试,这将给出“斜率相等的联合测试”,因此只有一个p值。

编辑:

我认为ta.0是所有‘τ’值的平均斜率或'lm()‘的实际估计值,而不是任何模型的特定斜率。我的推理是,'anova.rq()‘不需要任何特定的’τ‘值,甚至不需要中间值’τ‘。

有几种方法可以对此进行测试。要么手工计算ta.0等于平均值,要么比较多个组合,因为这样就可以使某些模型接近模型,其值较低,而不是lm()值。因此,如果ta.0是第一个模型的斜率,最低的‘τ’,那么你的Pr(>F)会很高,而在另一个情况下,它会很低。

这个问题也许应该在交叉验证上被问到。

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

https://stackoverflow.com/questions/32743758

复制
相关文章

相似问题

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