Я не уверен, что этот вопрос больше относится к CrossValidated или StackOverflow. Я счастлив перенести его, если необходимо.
Я пытаюсь воспроизвести графики из Роджера Кенкера виньетка с квантильной регрессией , но с использованием Фрэнк Модель порядковой регрессии Харрелла * .
Вот графики Кенкера на странице 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
.