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

时间:2013-11-08 14:17:48

标签: r quantile quantreg

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

bank <-rq(gekX~laggekVIXclose+laggekliquidityspread+lagdiffthreeMTBILL+
lagdiffslopeyieldcurve+lagdiffcreditspread+laggekSPret, tau=0.99)

并通过

提取系数和摘要统计
bank$coefficients
summary(bank)

我得到的结果是

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

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

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

3 个答案:

答案 0 :(得分:7)

在分位数回归中,您没有R平方或调整后的R平方。它只是伪R平方,并且不会像rq中那样在summary中使用lm时报告,但您可以在估算模型库后按如下方式计算它。

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

这是“quantreg”here

包的作者提供的答案

答案 1 :(得分:6)

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

other answer中的代码仅为您提供该分数的分子。

答案 2 :(得分:0)

在这些情况下,简单的方法是首先找到预测并使用R中的cor()函数来查找伪R ^ 2值以测量拟合的良好性。

pred<-predict(fitmodel,df) cor(df$response, pred)^2