R

时间:2015-09-23 15:33:21

标签: r regression anova quantile quantreg

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

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)

然后我用它们比较它们;

anova(fit1, fit2, fit3, test="Wald", joint=FALSE)

我的问题是这些模型中哪些被用作比较的基础?

我对Wald测试的理解(wiki entry)

enter image description here

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

所以我的问题是anova quantreg函数选择什么作为θ0?

基于anova返回的p值,我最好的猜测是选择指定的最低分位数(即tau=0.25)。有没有办法指定中位数(tau = 0.5)或更好但使用lm(y ~ x1 + x2 + x3, data)获得的平均估计值?

anova(fit1, fit2, fit3, joint=FALSE)

实际产生

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

,而

anova(fit3, fit1, fit2, joint=FALSE)

产生完全相同的结果

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)是如何相同的?

1 个答案:

答案 0 :(得分:2)

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

我建议您阅读this post及相关答案,以了解您的“theta.0”是什么。

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

您可以使用 quantreg 包中的anova()来回答此问题。你确实应该为每个分位数使用几个拟合。

当您使用joint=FALSE时,获得系数级比较。但是你只有一个系数,所以只有一行!并且您的结果告诉您,在您的示例中,收入的影响并不是统一的。使用几个预测变量,您将得到几个p值。

如果你不使用joint=FALSE,那么你可以对整个系数集进行全面测试,这会给你一个“斜率平等联合测试”,因此只有一个p值。 / p>

编辑:

我认为theta.0是所有'tau'值的平均斜率或'lm()'的实际估计值,而不是任何模型的特定斜率。我的理由是'anova.rq()'不需要任何特定的低值'tau'或甚至是'tau'的中位数。

有几种方法可以测试它。要么手动进行计算,使得θ等于平均值​​,要么比较许多组合因为那样你可能会出现某些模型接近模型的情况,但是'tau'值较低但不是'lm' ()'价值。因此,如果theta.0是具有最低'tau'的第一模型的斜率,那么你的Pr(> F)将是高的,而在另一种情况下,它将是低的。

可能会在cross-validated上询问此问题。