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)
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)
Figura 2: Intervalos de confiança usando stat = 'stepribbon'.
É isso! Dúvidas, sugestões e críticas, mande aqui nos comentários.