R - ggplot2 - Визуализировать отклонения от базовой модели - PullRequest
0 голосов
/ 07 мая 2018
base = c(1.84,3.92,1.67,1.12,1.63,.62,.59)
e1 = c(.61,1.47,1.68,1.95,1.64,.61,.72)
e2 = c(.64,7.08,1.67,1.12,1.44,.46,.76)
e3 = c(.64,4.47,1.68,2.04,1.45,.4,1.35)
e4 = c(.78,1.61,1.62,1.09,1.46,.66,.76)
e5 = c(.78,.99,1.62,2.32,1.46,.73,.52)

df = data.frame(base,e1,e2,e3,e4,e5)

У меня есть следующие параметры из базовой модели и 5 других исследовательских моделей. Я пытаюсь сделать как можно больше работы для читателя, поэтому я думаю о том, чтобы выйти за рамки этого.

Есть ли способ отобразить это в ggplot таким образом, чтобы показать отклонения от оценок базовой модели? Я не могу думать ни о каком другом, поскольку есть 6 значений.

Спасибо!

1 Ответ

0 голосов
/ 07 мая 2018

Не уверен, что это то, что вы ищете. Здесь я вычисляю разницу между каждой моделью и моделью base, используя purrr::map_df. После этого я конвертирую результат в длинный формат для черчения w / ggplot2

library(tidyverse)

base = c(1.84,3.92,1.67,1.12,1.63,.62,.59)
e1 = c(.61,1.47,1.68,1.95,1.64,.61,.72)
e2 = c(.64,7.08,1.67,1.12,1.44,.46,.76)
e3 = c(.64,4.47,1.68,2.04,1.45,.4,1.35)
e4 = c(.78,1.61,1.62,1.09,1.46,.66,.76)
e5 = c(.78,.99,1.62,2.32,1.46,.73,.52)

df = data.frame(base, e1, e2, e3, e4, e5)

# calculate colwise differences
df %>% 
  map_df( ~ (. - base)) %>% 
  select(-base) %>% 
  # create id for each number
  mutate(id = row_number()) %>% 
  # convert to long format
  gather(key = "model", value = "diff", -id) -> df_dif

# plot the differences
ggplot(df_dif, aes(x = id, y = diff)) +
  geom_col(aes(fill = model), position = "dodge") +
  facet_grid(~ model) +
  theme_classic()

Создано в 2018-05-06 пакетом представ. (v0.2.0).

...