Contesto e obiettivo
L’analisi dei disastri aerei rappresenta un elemento fondamentale per migliorare la sicurezza dell’aviazione. Questo progetto è stato sviluppato per esaminare gli incidenti aerei dal 1919 al 2023 attraverso un dataset di circa 25.000 record, raccogliendo informazioni chiave come:
- Data e luogo dell’incidente
- Tipo di aeromobile
- Operatore coinvolto
- Numero di vittime
- Causa dell’incidente
L’obiettivo è identificare trend, pattern e fattori di rischio per fornire insight utili alle aziende del settore aeronautico e agli enti regolatori.
Soluzione implementata
Il progetto si sviluppa attraverso un Jupyter Notebook, che guida il flusso di lavoro dall’importazione dei dati alla visualizzazione dei risultati.
1. Importazione e preparazione dei dati
L’analisi inizia con il caricamento del dataset utilizzando la libreria pandas:
import pandas as pd
df = pd.read_csv('data/disastri_aerei.csv')
Successivamente, i dati vengono convertiti in formato datetime per consentire analisi temporali più precise:
df['data'] = pd.to_datetime(df['data'], errors='coerce')
2. Pulizia e pre-elaborazione dei dati
Alcuni record possono contenere dati mancanti o inconsistenze. Per garantire una qualità ottimale, vengono rimossi i valori nulli nelle colonne più rilevanti:
df.dropna(subset=['data', 'tipo_velivolo', 'nazione'], inplace=True)
3. Analisi esplorativa
Analisi temporale
Viene calcolato il numero di incidenti per anno per comprendere la variazione nel tempo:
df['anno'] = df['data'].dt.year
incidenti_annuali = df.groupby('anno').size()
Analisi per operatore
Si analizza quali operatori coinvolti nell’aviazione hanno registrato più incidenti:
incidenti_per_operatore = df['operatore'].value_counts()
4. Visualizzazione dei dati
L’analisi viene completata con grafici interattivi e dashboard per facilitare l’interpretazione dei risultati.
Esempio di grafico temporale per osservare l’andamento degli incidenti nel tempo:
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure(figsize=(12,6))
sns.barplot(x=incidenti_annuali.index, y=incidenti_annuali.values)
plt.xlabel('Anno')
plt.ylabel('Numero di Incidenti')
plt.title('Trend degli Incidenti Aerei (1919-2023)')
plt.show()
Risultati e benefici
L’analisi ha portato ai seguenti risultati chiave:
- Riduzione progressiva degli incidenti: Grazie a miglioramenti nella sicurezza e regolamentazioni più stringenti, gli incidenti aerei sono diminuiti nel tempo.
- Identificazione dei fattori di rischio: Alcuni tipi di aeromobili o modelli operativi presentano un tasso di incidenti più elevato.
- Mappatura geografica degli incidenti: Determinate aree geografiche registrano una maggiore concentrazione di incidenti.
Sfide e soluzioni adottate
1. Gestione di dati incompleti
Alcuni record nel dataset contenevano informazioni mancanti (ad esempio, cause non specificate). Il problema è stato gestito rimuovendo i dati non utilizzabili e applicando metodi di imputazione statistica quando possibile.
2. Normalizzazione delle informazioni
I nomi degli operatori e delle nazioni erano scritti in formati differenti. Per garantire coerenza, è stata implementata una funzione di normalizzazione:
df['operatore'] = df['operatore'].str.upper().str.strip()
df['nazione'] = df['nazione'].str.upper().str.strip()
Conclusione e prospettive future
Il progetto ha permesso di comprendere l’evoluzione degli incidenti aerei e i principali fattori di rischio associati. In futuro, si potrebbero integrare modelli di machine learning per prevedere i fattori di rischio e sviluppare strumenti di analisi più avanzati per la sicurezza aerea.