从分位数回归/摘要()中提取R ^ 2

sch*_*oni 5 r quantile quantreg

我正在使用该quantreg包在R中运行以下分位数回归:

bank <-rq(gekX~laggekVIXclose+laggekliquidityspread+lagdiffthreeMTBILL+
lagdiffslopeyieldcurve+lagdiffcreditspread+laggekSPret, tau=0.99)
Run Code Online (Sandbox Code Playgroud)

并通过提取系数和摘要统计

bank$coefficients
summary(bank)
Run Code Online (Sandbox Code Playgroud)

我得到的结果是

Call: rq(formula = gekX ~ laggekVIXclose + laggekliquidityspread + 
lagdiffthreeMTBILL + lagdiffslopeyieldcurve + lagdiffcreditspread + 
laggekSPret, tau = 0.99)

tau: [1] 0.99

Coefficients:
                       Value    Std. Error t value  Pr(>|t|)
(Intercept)            -0.03005  0.01018   -2.95124  0.00319
laggekVIXclose          0.00471  0.00069    6.81515  0.00000
laggekliquidityspread  -0.01295  0.01619   -0.79976  0.42392
lagdiffthreeMTBILL     -0.12273  0.12016   -1.02136  0.30717
lagdiffslopeyieldcurve -0.13100  0.06457   -2.02876  0.04258
lagdiffcreditspread    -0.21198  0.15659   -1.35377  0.17592
laggekSPret            -0.01205  0.46559   -0.02588  0.97936
Run Code Online (Sandbox Code Playgroud)

但是,我想知道R ^ 2 /调整后的R ^ 2 - 这个summary()命令似乎可以为简单的OLS回归提供,但不是在分位数回归的情况下.

有人知道,如何提取它们?

Met*_*ics 8

在分位数回归中,您没有R平方或调整后的R平方.这只是伪R平方,而不是报道rq当你使用你所期望summarylm,但你可以在模型库的估计后,如下计算它.

rho <- function(u,tau=.5)u*(tau - (u < 0))
V <- sum(rho(bank$resid, bank$tau))
Run Code Online (Sandbox Code Playgroud)

这是"quantreg"包的作者在这里提供的答案


Dim*_*rov 7

Koenker和Machado的1999年JASA论文提出的伪R ^ 2测量通过比较感兴趣模型的加权偏差之和与仅出现截距的模型中的相同和来测量拟合度.

这是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
Run Code Online (Sandbox Code Playgroud)

另一个答案中的代码只给出了该分数的分子.