分位数回归中的R平方


21

我正在使用分位数回归来找到我数据的90%的预测变量。我正在R中使用该quantreg软件包进行此操作。我如何确定分位数回归的,这将指示预测变量解释了多少可变性?r2

我真正想知道的是:“我能用什么方法来解释多少可变性?”。P值的显着性水平在命令输出中可用:summary(rq(formula,tau,data))。我怎样才能得到健康?


7
R2与分位数回归无关。
ub

@whuber:我可以使用其他方法来解释多少可变性吗?
rnso 2014年

2
在您的问题正文中问这是一件好事,而不是埋在评论中!“解释的可变性”(无论如何用方差来衡量)本质上是最小二乘概念;也许您想要的是对统计显着性或拟合优度的适当度量。
ub

对于任何优点,您都需要考虑什么将是良好的性能,什么将是较差的性能以及什么是不相关的。例如,如果这是对第10个百分位数的糟糕预测,那就不是对第90个百分位数的批评。如果不使用分位数回归,则基准可以是您可以使用的基准。如果您的预测变量是连续的,则可能很难定义。
尼克·考克斯

1
@whuber:我在问题正文中添加了这一点。在summary(rq(formula,tau,data))输出中提供了P值的显着性水平。我怎样才能得到健康?
rnso 2014年

Answers:


23

Koenker和Machado描述了,它是特定(τ)分位数的局部拟合优度的局部量度。[1]R1τ

V(τ)=minbρτ(yixib)

假设和是完整模型和受限模型的系数估计,而和是相应的项。β^(τ)β~(τ)V^V~V

他们定义拟合标准。R1(τ)=1V^V~

Koenker 在此给出代码,V

rho <- function(u,tau=.5)u*(tau - (u < 0))
V <- sum(rho(f$resid, f$tau))

因此,如果我们计算与拦截,只是一个模型( -或在下面的代码片段),然后无限制模式(),我们可以计算出这是-至少在理论上-有点像通常的。VV~V0V^R1 <- 1-Vhat/V0R2

编辑:当然,在您的情况下,第二个参数(f$tau无论tau您使用的是哪个值)都将放在第二行代码的调用中。第一行中的值仅设置默认值。

“解释均值方差”确实不是您使用分位数回归所做的事情,因此您不应期望拥有一个真正等效的度量。

我认为的概念不能很好地转化为分位数回归。您可以在此处定义各种或多或少的类似数量,但是无论您选择什么,都不会拥有在OLS回归中具有的大多数属性。您需要清楚需要的属性和不需要的属性-在某些情况下,可能有一种方法可以满足您的需求。R2R2

-

[1] Koenker,R和Machado,J(1999),
拟合优度和相关推论过程的分位数回归,
《美国统计协会杂志》,94:448,1296-1310


tau = 0.9应该不是0.5吗?
Dimitriy V. Masterov 2014年

是的,它应该,但是如果您提供正确的第二个参数(就像我在上面引用的第二行中所做的那样),那么它就是这样工作的。如果未tau在调用函数时指定,第一行中的值0.5只是默认参数。我会在帖子中澄清。
Glen_b-恢复莫妮卡2014年

@Glen_b感谢您的解释。除非我做蠢事,否则V似乎是估计分位数的加权偏差之和,而不是伪R2
Dimitriy V. Masterov 2014年

@Dimitriy嗯,你是对的,我遗漏了一些东西。我很快会解决这个问题。
Glen_b-恢复莫妮卡2014年

@Dimitriy我想我已经解决了。
Glen_b-恢复莫妮卡2014年

19

Koenker和Machado(1999)在JASA中提出的伪度量通过将感兴趣模型的加权偏差之和与仅出现截距的模型的相同偏差进行比较,来衡量拟合优度。计算为R2

R1(τ)=1yiy^iτ|yiy^i|+yi<y^i(1τ)|yiy^i|yiy¯τ|yiy¯|+yi<y¯i(1τ)|yiy¯|,

其中ÿ = α τ + β τ X是拟合τ个位数观察,和ˉ ÿ = β τ是从仅截距模型的拟合值。y^i=ατ+βτxτiy¯=βτ

应该位于 [ 0 1 ],其中1将对应于完美的结合,因为它由偏差的加权和的分子将是零。由于它取决于 τ,因此它是QRM拟合的局部度量,这不同于OLS的全局 R 2。可以说这是有关使用它的警告的来源:如果您将模型拟合在尾部,则不能保证它在其他任何地方都拟合得很好。该方法也可以用于比较嵌套模型。R1(τ)[0,1]τR2

这是R中的示例:

library(quantreg)
data(engel)

fit0 <- rq(foodexp~1,tau=0.9,data=engel)
fit1 <- rq(foodexp~income,tau=0.9,data=engel)

rho <- function(u,tau=.5)u*(tau - (u < 0))
R1 <- 1 - fit1$rho/fit0$rho

这可能可以更优雅地完成。


您的公式显示效果不佳。减号后:R_1(\tau) = 1 - 􀀀最后一个字符是一团糟。你能检查一下吗?也许你粘贴一些非标准的字符,而不是使用德州
蒂姆

@Tim在tex或屏幕上,我看不到任何奇怪的东西。
Dimitriy V. Masterov 2014年

在Linux和Windows上都看起来像这样:snag.gy/ZAp5T.jpg
Tim

@Tim该框不对应任何内容,因此可以忽略。稍后,我将尝试从另一台计算机上对其进行编辑。
Dimitriy V. Masterov 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.