关于 r:分位数回归和 p 值

Quantile regression and p-values

我正在对我的数据集应用关分回归(使用 R)。使用不同的分位数回归线很容易生成漂亮的散点图图像
(taus <- c(0.05,0.25,0.75,0.95)).

当我想为这些分位数中的每一个生成 p 值(以查看每条回归线的统计显着性)时,就会出现问题。对于中位数 (tau=0.5) 这不是问题,但是当涉及到例如 tau=0.25 时,我收到以下错误消息:

1
2
3
>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 值和系数,或者仅显示情节图片并根据该图片讨论结果是否足够?

最好的问候,沮丧的人


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

1
2
3
4
5
6
7
8
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,并且 quantreg 模型针对 tau /- h 进行了重新拟合。对于 tau 接近 0 或 1,增加或减去带宽 'h' 可能会导致 tau 低于 0 或大于 1,这是不好的,因此函数停止。

你有几个选择:

1.) 尝试不同的 se 方法(引导?)

2.) 自己修改 summary.rq 代码以强制它在带宽将 tau 超出范围的情况下使用 max(tau,0) 或 min(tau,1)。 (这可能是一个坏主意的严重理论原因;除非您知道自己在做什么,否则不建议这样做。)

3.) 您可以尝试阅读计算这些 se 背后的理论,这样您就可以更好地了解它们何时可以正常工作。这可能会解释为什么您会在 tau 值接近 0 或 1 时遇到错误。


试试summary(QRmodel,se="boot")

也请查看 summary.rq 的帮助!