Каков доверительный интервал для квантильной регрессии? А как найти кроме дефолтного?

Существует способ построить доверительный интервал для квантильной регрессии:

x <- rnorm(1000)
y <- x + 2*rnorm(1000)
rqm1 <- rq(y~x)
summary(rqm1)

Что такое по умолчанию? Это 5%? Как найти еще один, вроде 10%?


person Anton K    schedule 09.05.2013    source источник
comment
Это хороший вопрос (я не смог найти ответ в документации), но я думаю, что он относится к StackOverflow, поскольку речь идет всего лишь о R, а не о статистических свойствах квантильной регрессии.   -  person Peter Flom    schedule 09.05.2013
comment
Вы видели виньетку, econ.uiuc.edu/~roger /research/rq/vig.pdf? На стр.4 написано: В результирующей таблице в первом столбце приведены расчетные точки пересечения и наклона, а во втором и третьем столбцах доверительные интервалы для этих параметров. По умолчанию эти доверительные интервалы рассчитываются методом инверсии рангов, описанным в Koenker (2005), раздел 3.4.5.   -  person Victor K.    schedule 09.05.2013
comment
Я сделал, но там не сказано, что такое по умолчанию и как изменить его на другой.   -  person Anton K    schedule 10.05.2013


Ответы (2)


Альфа-уровень по умолчанию для метода summary.qr равен .1, что соответствует ширине доверительного интервала .9. Я озадачился этим в течение довольно долгого времени, потому что это просто не четко задокументировано.

Доверительные интервалы при se = "rank" (по умолчанию для данных с менее чем 1001 строкой) рассчитываются путем переоснащения модели с помощью rq.fit.br, который является базовым механизмом, используемым rq. Если вы посмотрите документацию для rq.fit.br, вы увидите, что есть аргумент alpha, который по умолчанию имеет значение .1. Если вы передадите аргумент alpha в summary.rq, он будет передан в rq.fit.br, и вы получите искомый доверительный интервал.

Тот же результат, что и summary(rqm1):

summary(rqm1, alpha = .1)

95% интервал:

summary(rqm1, alpha = .05)

person commscho    schedule 21.04.2018

Вы получаете конф. интервал напрямую, так как по умолчанию функция сводки для rq использует ранговый метод для оценки ЭК. Таким образом, вы можете использовать функцию summary.rq и установить параметр se="boot","nid","iid","ker" для получения различных стандартных ошибок. Я установил для него значение se="boot". Это дает вам стандартные ошибки для ваших коэффициентов, которые вы можете использовать в формуле qunatile, чтобы найти CI.

для 90% использования

qnorm(0.95)

для 95% использования

qnorm(0.975)

Полный код

library(quantreg)
x <- rnorm(1000)
y <- x + 2*rnorm(1000)
rqm1 <- rq(y~x)
summary.rq(rqm1, se="boot") -> rqm2
coef=rqm2$coefficients[,1] 
err=rqm2$coefficients[,2]  
ci <- list()
for (i in 1:length(coef)){
ci[[i]] <- coef[i] + c(-1,1)*err[i]*qnorm(0.975)}

Это возвращает доверительные интервалы для вашего перехвата и всех ваших переменных.

person Interested_Programmer    schedule 26.09.2017