Aplicando análise de sobrevivência a grupos

Análise de Sobrevivência em Python

Shae Wang

Senior Data Scientist

O problema da hipoteca

Nome do DataFrame: mortgage_df

id property type duration paid_off
1 house 25 0
2 apartment 17 1
3 apartment 5 0
... ... ... ...
100 house 30 1

Property type: tipo de imóvel financiado pela hipoteca (house ou apartment)

Há diferença no tempo para quitar entre hipotecas de casa e de apartamento?
Análise de Sobrevivência em Python

Comparando distribuições de sobrevivência entre grupos

Geralmente queremos avaliar se há diferenças na sobrevivência (ou probabilidades de evento/sobrevivência) entre grupos de sujeitos.

  • Atributos dimensionais dos sujeitos
    • ex.: tipos de hipotecas, marcas de pneus
  • Grupos experimentais diferentes
    • ex.: tratamento vs. controle
  • Valores diferentes do mesmo atributo dimensional
    • ex.: domicílios de alta vs. baixa renda
Análise de Sobrevivência em Python

Tipos de comparações de sobrevivência entre grupos

1. Alguma estimativa pontual ou estatística de sobrevivência difere?
  • Compare as probabilidades de sobrevivência de dois grupos em um tempo específico
  • Compare a proporção total de sujeitos sobreviventes entre dois grupos
Análise de Sobrevivência em Python

Tipos de comparações de sobrevivência entre grupos

2. As distribuições subjacentes são diferentes?
  • Requer testes formais de hipótese
Análise de Sobrevivência em Python

Tipos de comparações de sobrevivência entre grupos

3. Quanto um atributo afeta a sobrevivência?
  • Requer modelos baseados em regressão
Análise de Sobrevivência em Python

Visualizando diferenças entre grupos

Ajuste uma função de sobrevivência de Kaplan-Meier para cada grupo e visualize as curvas lado a lado.

Benefícios:

  • Simples e direta para usar e interpretar.
  • Não paramétrica, portanto mais flexível para diferentes distribuições de sobrevivência.
  • Útil para ilustrar diferenças entre funções de sobrevivência.
Análise de Sobrevivência em Python

Identificando os grupos

Nome do DataFrame: mortgage_df

id property type duration paid_off
1 house 25 0
2 apartment 17 1
3 apartment 5 0
... ... ... ...
100 house 30 1

Crie uma máscara booleana para cada grupo.

house = (mortgage_df["property_type"]=="house")
apt = (mortgage_df["property_type"]=="apartment")

Se houver apenas 2 grupos, só 1 máscara é necessária. O outro pode ser referenciado por negação.

Análise de Sobrevivência em Python

Ajustando e plotando curvas de sobrevivência

Crie uma figura e instancie a classe KaplanMeierFitter.

ax = plt.subplot(111)
mortgage_kmf = KaplanMeierFitter()

Ajuste mortgage_kmf ao grupo de casas e plote na figura ax.

mortgage_kmf.fit(duration=mortgage_df[house]["duration"], 
                 event_observed=mortgage_df[house]["paid_off"],
                 label="Houses")
mortgage_kmf.plot_survival_function(ax=ax)
Análise de Sobrevivência em Python

Ajustando e plotando curvas de sobrevivência

Ajuste mortgage_kmf ao grupo de apartamentos e plote na figura ax.

mortgage_kmf.fit(duration=mortgage_df[apt]["duration"], 
                 event_observed=mortgage_df[apt]["paid_off"],
                 label="Apartments")
mortgage_kmf.plot_survival_function(ax=ax)
Análise de Sobrevivência em Python

Visualizando lado a lado

plt.show()

Curvas de sobrevivência de Kaplan-Meier: apartamento vs. casa.

Análise de Sobrevivência em Python

Interpretando as curvas de sobrevivência dos grupos

Curvas de sobrevivência de Kaplan-Meier: apartamento vs. casa

  • Em média, hipotecas de apartamentos parecem ser quitadas mais rápido que as de casas.

Nota: se os intervalos de confiança se sobrepõem em alguns pontos, é menos provável que haja uma diferença real entre as curvas.

Análise de Sobrevivência em Python

Vamos praticar!

Análise de Sobrevivência em Python

Preparing Video For Download...