Квантильный график в RMS :: orm - PullRequest
1 голос
/ 16 января 2020

Я не уверен, что этот вопрос больше относится к CrossValidated или StackOverflow. Я счастлив перенести его, если необходимо.

Я пытаюсь воспроизвести графики из Роджера Кенкера виньетка с квантильной регрессией , но с использованием Фрэнк Модель порядковой регрессии Харрелла * .

Вот графики Кенкера на странице 8 (меня больше всего интересует график квантилей против предиктора): Koenker's plot Page 8

R Код

Я могу создавать похожие графики, но не совсем одинаковые. Например:

## Load libraries
library(dplyr)
library(rms)
library(ggplot2)

## Simulate data
set.seed(123)
n <- 100
df <- data.frame(x1 = rnorm(n),
                 x2 = sample(c(-1,0,1), n, TRUE)) %>% 
  mutate(y = x1 + rnorm(n))

d <- datadist(df)
options(datadist="d")


## Fit ORM model
f1 <- orm(y ~ x1 + x2, data = df)


## Estimate quantiles
qu  <- Quantile(f1)
q25 <- function(x) qu(0.25, x)
q50 <- function(x) qu(0.50, x)
q75 <- function(x) qu(0.75, x)

## Point predictions
qplot <- Predict(f1, fun =q25) %>% mutate(q = 25) %>% 
  bind_rows(Predict(f1, fun = q50) %>% mutate(q = 50)) %>% 
  bind_rows(Predict(f1, fun = p75) %>% mutate(q = 75))

qplot %>% 
  mutate(q = as.factor(q)) %>% 
  ggplot(aes(x = x1, y = yhat, group = q, color = q)) +
  geom_line()

Я считаю, что SAS создает аналогичный сюжет в proc quantreg.

...