Analisi della sopravvivenza con R: Una Guida per Principianti

Ciao, aspiranti data scientist! Oggi ci imbarcheremo in un viaggio emozionante nel mondo dell'analisi della sopravvivenza utilizzando R. Non preoccuparti se non hai mai scritto una riga di codice prima - sarò il tuo guida amichevole in ogni fase del percorso. Iniziamo!

R - Survival Analysis

Cos'è l'Analisi della Sopravvivenza?

Prima di iniziare a codificare, capiremo di cosa tratta l'analisi della sopravvivenza. Immagina di essere un medico che studia quanto tempo i pazienti sopravvivono dopo una certa trattamento. O forse sei un analista aziendale che esamina quanto tempo i clienti rimangono prima di annullare un abbonamento. È qui che l'analisi della sopravvivenza diventa utile!

L'analisi della sopravvivenza ci aiuta a rispondere a domande come:

  • Quanto tempo prima si verifica un evento?
  • Quali fattori influenzano il tempo fino all'evento?
  • Come si confrontano i diversi gruppi in termini di tempo di sopravvivenza?

Ora, mettiamo le mani sporche con un po' di codice R!

Installazione e Caricamento dei Pacchetti Necessari

Prima di tutto, dobbiamo installare e caricare i pacchetti richiesti. In R, i pacchetti sono come scatole degli strumenti contenenti funzioni utili per compiti specifici.

# Installa il pacchetto 'survival'
install.packages("survival")

# Carica il pacchetto
library(survival)

Non preoccuparti se vedi apparire alcuni messaggi quando esegui questi comandi. Finché non ci sono messaggi di errore in rosso, sei a posto!

Caricamento ed Esplorazione dei Dati

Per questo tutorial, useremo un set di dati integrato chiamato 'lung' dal pacchetto survival. Questo set di dati contiene informazioni su pazienti con cancro ai polmoni avanzato.

# Carica il dataset 'lung'
data(lung)

# Dai un'occhiata alle prime poche righe
head(lung)

# Ottieni un riepilogo del dataset
summary(lung)

Quando esegui questi comandi, vedrai un'istantanea dei dati. Prenditi un momento per familiarizzare con le variabili. Lavoreremo con:

  • 'time': tempo di sopravvivenza in giorni
  • 'status': stato di censuramento (1=censurato, 2=morto)
  • 'age': età del paziente
  • 'sex': sesso del paziente (1=maschio, 2=femmina)

Creazione di un Oggetto di Sopravvivenza

Ora, creiamo un oggetto di sopravvivenza. Questo è un oggetto speciale di R che combina il tempo di sopravvivenza e lo stato dell'evento.

# Crea un oggetto di sopravvivenza
surv_object <- Surv(time = lung$time, event = lung$status == 2)

# Stampa le prime few voci
head(surv_object)

Vedrai una serie di numeri con segni '+'. Il '+' indica osservazioni censurate (pazienti che erano ancora vivi alla fine dello studio).

Curva di Sopravvivenza di Kaplan-Meier

Una delle visualizzazioni più comuni nell'analisi della sopravvivenza è la curva di Kaplan-Meier. Mostra la probabilità di sopravvivenza nel tempo.

# Adatta una curva di Kaplan-Meier
km_fit <- survfit(surv_object ~ 1, data = lung)

# Plotta la curva
plot(km_fit, main = "Curva di Sopravvivenza di Kaplan-Meier",
xlab = "Tempo (giorni)", ylab = "Probabilità di Sopravvivenza")

Ecco fatta! Hai appena creato la tua prima curva di sopravvivenza. L'asse y mostra la probabilità di sopravvivenza, e l'asse x mostra il tempo in giorni. La curva scende ogni volta che si verifica un evento (morte).

Confronto tra Gruppi: Maschi vs Femmine

Confrontiamo le curve di sopravvivenza per maschi e femmine.

# Adatta curve di Kaplan-Meier per sesso
km_sex <- survfit(surv_object ~ sex, data = lung)

# Plotta le curve
plot(km_sex, col = c("blue", "red"), main = "Curve di Sopravvivenza per Sesso",
xlab = "Tempo (giorni)", ylab = "Probabilità di Sopravvivenza")
legend("topright", c("Maschio", "Femmina"), col = c("blue", "red"), lty = 1)

Ora hai due curve: blu per i maschi e rossa per le femmine. Vedi qualche differenza?

Modello di Rischio Proporzionale di Cox

Infine, adattiamo un modello di rischio proporzionale di Cox. Questo modello ci aiuta a comprendere come diversi fattori influenzano la sopravvivenza.

# Adatta un modello di rischio proporzionale di Cox
cox_model <- coxph(surv_object ~ age + sex, data = lung)

# Stampa il riepilogo
summary(cox_model)

Non temere l'output! Ecco cosa cercare:

  • La colonna 'coef' mostra l'effetto di ciascuna variabile.
  • La colonna 'exp(coef)' è più facile da interpretare: i valori > 1 indicano un aumento del rischio, < 1 indicano una diminuzione del rischio.
  • La colonna 'Pr(>|z|)' mostra il p-value. I valori piccoli (< 0.05) indicano significatività statistica.

Conclusione

Complimenti! Hai appena completato la tua prima analisi della sopravvivenza in R. Abbiamo coperto molto terreno, dal creare oggetti di sopravvivenza all'adattare modelli complessi. Ricorda, la pratica rende perfetti. Prova a giocare con il codice, cambiare variabili, e vedere cosa succede.

Ecco un riepilogo delle principali funzioni che abbiamo utilizzato:

Funzione Scopo
Surv() Crea un oggetto di sopravvivenza
survfit() Adatta una curva di sopravvivenza
plot() Visualizza curve di sopravvivenza
coxph() Adatta un modello di rischio proporzionale di Cox

Continua a esplorare, a imparare, e soprattutto, divertiti con R e l'analisi della sopravvivenza!

Credits: Image by storyset