Pacote ggalt

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()`.

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'`.

Figura 2: Intervalos de confiança usando stat = 'stepribbon'.


É isso! Dúvidas, sugestões e críticas, mande aqui nos comentários.

comments powered by Disqus