分位数回归和p值

3
我正在为我的数据集应用guantile回归(使用R语言)。可以轻松地生成漂亮的散点图像,其中包含不同的分位数回归线(taus < - c(0.05,0.25,0.75,0.95))。
问题出现在我想要为每个分位数生成p值(以便查看每个回归线的统计显著性)时。对于中位数分位数(tau=0.5),这并不成问题,但是当涉及例如tau=0.25时,我会收到以下错误消息:
>QRmodel<-rq(y~x,tau=0.25,model=T)
>summary(QRmodel,se="nid")
Error in summary.rq(QRmodel, se = "nid") : tau - h < 0:  error in summary.rq

什么可能是这种情况的原因?

另外:在量化回归模型的结果中,是否建议提及p值和系数,或者仅展示绘图并基于该图讨论结果是否足够?

最好的问候,感到挫败的人

2个回答

8

在这种调试情况下了解发生了什么的好方法是找到引发错误的相关代码部分。如果您在控制台中输入“summary.rq”,则会看到函数summary.rq的代码。扫描它,您将找到使用“nid”方法计算se的部分,从以下代码开始:

else if (se == "nid") {
    h <- bandwidth.rq(tau, n, hs = hs)
    if (tau + h > 1) 
        stop("tau + h > 1:  error in summary.rq")
    if (tau - h < 0) 
        stop("tau - h < 0:  error in summary.rq")
    bhi <- rq.fit.fnb(x, y, tau = tau + h)$coef
    blo <- rq.fit.fnb(x, y, tau = tau - h)$coef

所发生的情况是,为了计算标准误差(se),该函数首先需要计算出一个带宽h,然后对于tau +/- h重新拟合quantreg模型。对于接近0或1的tau,添加或减去带宽'h'可能会导致tau小于0或大于1,这并不好,因此函数停止运行。
你有几个选择:
1.) 尝试其他se方法(引导?)
2.) 修改summary.rq代码,强制在带宽将tau推出范围时使用max(tau,0)或min(tau,1)。(这可能有严重的理论原因,除非你知道自己在做什么,否则不建议这样做。)
3.) 你可以尝试阅读计算这些se的理论,这样你就能更好地了解它们何时可能有效或无效。这可能会解释为什么在tau接近0或1的值时会遇到错误。

0

尝试使用summary(QRmodel,se="boot")

同时查看一下summary.rq的帮助文档!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接