Вывод Summary.rq зависит от размера выборки - PullRequest
0 голосов
/ 13 декабря 2018

Я обнаружил (см. Ниже), что функция summary.rq (стр. 88) из пакета quantreg выводит различный вывод, в зависимости от того, больше ли размер выборки, равен или меньше 1001.

Мне известно, что rq () использует другой метод в зависимости от того, является ли размер выборки больше или равен 1001. Я предполагаю, что это является причиной такого поведения.

MWE, показывающий описанноеПоведение:

> library(quantreg)
> x <- seq(0, 100, length.out = 1000)     
> e <- rnorm(1000, mean = 0, sd = 1.2)
> y <- 6 + 0.1 * x + e  
> summary(rq(y ~ x, tau = 0.025))

Call: rq(formula = y ~ x, tau = 0.025)

tau: [1] 0.025

Coefficients:
            coefficients lower bd upper bd
(Intercept) 3.67733      2.92776  3.88165 
x           0.10061      0.09578  0.10675 
Warning message:
In rq.fit.br(x, y, tau = tau, ci = TRUE, ...) : Solution may be 
nonunique

> x <- seq(0, 100, length.out = 1001)     
> e <- rnorm(1001, mean = 0, sd = 1.2)
> y <- 6 + 0.1 * x + e  
> summary(rq(y ~ x, tau = 0.025))

Call: rq(formula = y ~ x, tau = 0.025)

tau: [1] 0.025

Coefficients:
            Value    Std. Error t value  Pr(>|t|)
(Intercept)  3.61744  0.28052   12.89559  0.00000
x            0.10033  0.00477   21.04017  0.00000

Это желаемое поведение?Как я могу получить первую форму вывода для размеров выборки больше 1000?

Моя проблема в том, что я использую функцию summary.rq в цикле для нескольких размеров выборки и хотел бы использовать значения нижней и верхней полосы.

1 Ответ

0 голосов
/ 16 декабря 2018

Разница между выходами не в rq(), а summary.rq().quantreg использует методы вывода "rank" для размеров выборки меньше 1000, в противном случае используется "nid".Файл справки указывает, что методы "rank" могут быть чрезвычайно медленными для больших выборок.Если вы настаиваете на том, чтобы предыдущий вывод отображался во всех ваших зацикленных исследованиях, вы можете указать

summary(rq(y ~ x, tau = 0.025),se="rank")

Однако, возможно, вам будет лучше обдумать этот вопрос более внимательно.Например, если некоторые из ваших исследований имеют очень большие размеры выборки, вычисления могут стать чрезвычайно медленными, вы можете вместо этого указать se="nid" для всех ваших исследований и вычислить верхнюю и нижнюю полосы вручную (upper=Value + 1.96*Std. Error и lower=Value - 1.96*Std. Error.

...