O pacote ggalt
é uma extensão ao ggplot2
que permite fazer algumas coisas muito úteis. Uma delas é a possibilidade de fazer faixas de confiança para gráficos do tipo escada. Isso permite adicionar intervalos de confiança para modelos Kaplan-Meier, muito utilizados em Análise de Sobrevivência.
É possível instalar o pacote ggalt
usando a função install.packages()
:
install.packages('ggalt')
Para exemplificar a utilização do ggalt
, vamos utilizar os pacotes abaixo.
library(dplyr)
library(ggplot2)
library(ggalt)
library(broom)
library(survival)
Nesse exemplo, utilizaremos a base de dados lung
que vem com o pacote survival
. Primeiramente, ajustamos um modelo Kaplan-Meier simples, usando a função survfit()
. Esse modelo tenta explicar a sobrevivência de pacientes com câncer de pulmão para cada sexo.
# modelo kaplan-meier simples
km <- survfit(Surv(time, status) ~ sex, data = lung)
A função tidy()
do pacote broom
transforma o resultado do modelo numa tabela, já preparada para gerar gráficos.
d_km <- tidy(km)
knitr::kable(head(d_km))
time | n.risk | n.event | n.censor | estimate | std.error | conf.high | conf.low | strata |
---|---|---|---|---|---|---|---|---|
11 | 138 | 3 | 0 | 0.9782609 | 0.0126898 | 1.0000000 | 0.9542301 | sex=1 |
12 | 135 | 1 | 0 | 0.9710145 | 0.0147075 | 0.9994124 | 0.9434235 | sex=1 |
13 | 134 | 2 | 0 | 0.9565217 | 0.0181489 | 0.9911586 | 0.9230952 | sex=1 |
15 | 132 | 1 | 0 | 0.9492754 | 0.0196777 | 0.9866017 | 0.9133612 | sex=1 |
26 | 131 | 1 | 0 | 0.9420290 | 0.0211171 | 0.9818365 | 0.9038355 | sex=1 |
30 | 130 | 1 | 0 | 0.9347826 | 0.0224847 | 0.9768989 | 0.8944820 | sex=1 |
O gráfico da Figura 1 usa a função geom_ribbon()
para gerar os intervalos de confiança. Essa função liga os pontos da faixa diretamente, o que é inadequado do ponto de vista estatístico.
ggplot(d_km, aes(x = time, y = estimate, colour = strata)) +
geom_ribbon(aes(ymin = conf.low, ymax = conf.high, fill = strata), alpha = .1, size = .1) +
labs(x = "Tempo", y = "Estimativa") +
geom_step() +
theme_bw(14)
![Intervalos de confiança usando apenas `ggplot2` e `geom_ribbon()`.](/posts/2017-02-18-ggalt_files/figure-html/ruim-1.png)
Figura 1: Intervalos de confiança usando apenas ggplot2
e geom_ribbon()
.
Na Figura 2, adicionamos o parâmetro stat = "stepribbon"
, que faz com que o ggplot
utilize a função stat_stepribbon()
do ggalt
para o cálculo da faixa. Isso faz com que os intervalos tenham comportamento de escada, como queríamos.
ggplot(d_km, aes(x = time, y = estimate, colour = strata)) +
geom_ribbon(aes(ymin = conf.low, ymax = conf.high, fill = strata),
stat = 'stepribbon', alpha = .1, size = .1) +
geom_step() +
theme_bw(16)
![Intervalos de confiança usando `stat = 'stepribbon'`.](/posts/2017-02-18-ggalt_files/figure-html/bom-1.png)
Figura 2: Intervalos de confiança usando stat = 'stepribbon'
.
É isso! Dúvidas, sugestões e críticas, mande aqui nos comentários.