Извлечь R^2 из квантильной регрессии/резюме()

Я использую пакет 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, но не в случае квантильных регрессий.

Кто-нибудь знает, как их извлечь?


person schloni    schedule 08.11.2013    source источник


Ответы (2)


В квантильной регрессии у вас нет R-квадрата или скорректированного R-квадрата. Это всего лишь псевдо R в квадрате, и он не сообщается в rq, как можно было бы ожидать, когда вы используете summary в lm, но вы можете вычислить его следующим образом после оценки банка моделей.

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

Это ответ автора пакета "quantreg" здесь

person Metrics    schedule 08.11.2013
comment
Спасибо за Ваш ответ! - person schloni; 08.11.2013
comment
@Metrics Это вычисляет только половину ингредиентов псевдо-R ^ 2. - person Dimitriy V. Masterov; 16.12.2014

Мера псевдо-R ^ 2, предложенная Кенкером и Мачадо в статье JASA 1999 г., измеряет качество соответствия путем сравнения суммы взвешенных отклонений для интересующей модели с той же суммой из модели, в которой появляется только точка пересечения.

Вот пример в 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

Код в другом ответе дает вам только числитель этой дроби.

person Dimitriy V. Masterov    schedule 16.12.2014
comment
Не могли бы вы объяснить функцию, используемую для генерации ро? Почему там используется тау=0,5? - person Enigma; 29.06.2017
comment
@Enigma Извините за задержку ответа. По умолчанию используется медиана (tau=0,5) по умолчанию, поскольку она используется по умолчанию в rq() и часто опускается. Дополнительную информацию можно найти в этой записи резюме. - person Dimitriy V. Masterov; 01.11.2018