Esplorando l’Analisi Esplorativa dei Dati: Un Approccio Fondamentale
Immergiti nel mondo dell’analisi esplorativa dei dati, un processo cruciale per svelare andamenti, schemi nascosti e condensare set di dati complessi. Questo avviene tramite l’uso di riassunti statistici e visualizzazioni grafiche.
Un progetto di data science è un percorso articolato, che richiede tempo, precisione e una sequenza di fasi ben definite. L’Analisi Esplorativa dei Dati (EDA) emerge come una delle tappe più importanti in questo percorso.
In questo articolo, esploreremo brevemente l’essenza dell’analisi esplorativa dei dati e il suo svolgimento pratico utilizzando il linguaggio di programmazione R!
Cosa si Intende per Analisi Esplorativa dei Dati?
L’analisi esplorativa dei dati (EDA) si concentra sull’esame e lo studio delle peculiarità di un set di dati, antecedente alla sua implementazione in applicazioni di natura aziendale, statistica o di machine learning.
Questo riepilogo delle caratteristiche dei dati viene solitamente realizzato attraverso metodologie visive, come grafici e tabelle. Questa pratica preliminare serve a valutare il potenziale dei dati, prima che vengano sottoposti a elaborazioni più complesse.
L’EDA, quindi, permette di:
- Formulare ipotesi sull’utilizzo delle informazioni;
- Svelare dettagli nascosti nella struttura dei dati;
- Individuare valori mancanti, anomali o comportamenti inusuali;
- Identificare tendenze e variabili significative;
- Eliminare variabili irrilevanti o correlate ad altre;
- Definire il modello formale più appropriato.
Qual è la Differenza tra Analisi Descrittiva ed Esplorativa dei Dati?
L’analisi dei dati si divide in due categorie principali: descrittiva ed esplorativa. Queste due tipologie, seppur distinte, si completano a vicenda.
L’analisi descrittiva si concentra sulla caratterizzazione del comportamento delle variabili, attraverso indicatori come media, mediana e moda.
L’analisi esplorativa, invece, ha lo scopo di identificare relazioni tra le variabili, estrarre informazioni preliminari e orientare la modellazione verso i paradigmi di machine learning più diffusi: classificazione, regressione e clustering.
Entrambe le analisi possono utilizzare rappresentazioni grafiche, ma solo l’analisi esplorativa mira a fornire intuizioni utili che guidino le decisioni.
In sintesi, mentre l’analisi esplorativa dei dati cerca di risolvere problemi e fornire soluzioni per la modellazione, l’analisi descrittiva si limita a fornire una descrizione dettagliata del dataset.
Analisi Descrittiva | Analisi Esplorativa dei Dati |
Analizza il comportamento | Analizza comportamento e relazione |
Fornisce un riepilogo | Porta a specifiche e azioni |
Organizza dati in tabelle e grafici | Organizza dati in tabelle e grafici |
Non ha un potere esplicativo significativo | Ha un potere esplicativo significativo |
Applicazioni Pratiche dell’EDA
#1. Marketing Digitale
Il marketing digitale si è trasformato da un processo creativo a un approccio basato sui dati. Le aziende utilizzano l’analisi esplorativa per misurare l’efficacia delle campagne, guidando decisioni di investimento e targettizzazione.
Studi demografici, segmentazione della clientela e altre tecniche permettono ai marketer di analizzare grandi volumi di dati (acquisti, sondaggi, panel di consumatori) per affinare le strategie.
L’analisi esplorativa web consente di tracciare le interazioni degli utenti con un sito web a livello di sessione. Google Analytics è un esempio di strumento gratuito per questa analisi.
Tecniche esplorative frequenti includono la modellazione del marketing mix, l’analisi dei prezzi e delle promozioni, l’ottimizzazione delle vendite e la segmentazione dei clienti.
#2. Analisi Esplorativa del Portafoglio
L’analisi esplorativa dei dati è spesso impiegata per analizzare i portafogli. Banche o agenzie di prestito possiedono una varietà di conti con differenti valori e rischi.
Questi conti possono variare in base a fattori come condizione socio-economica, area geografica e patrimonio netto. L’obiettivo è equilibrare il rendimento dei prestiti con il rischio di insolvenza.
Prestiti a basso rischio sono associati a persone benestanti, ma limitate in numero. Al contrario, molti individui a basso reddito possono ricevere prestiti, ma a maggior rischio.
L’analisi dei dati può combinare l’analisi delle serie temporali con altre metodologie per decidere quando prestare denaro a diversi segmenti di mutuatari e a quale tasso. I tassi di interesse vengono calcolati per coprire le perdite all’interno di ciascun segmento.
#3. Analisi Esplorativa del Rischio
Nel settore bancario, si sviluppano modelli predittivi per stimare i punteggi di rischio dei singoli clienti. I punteggi di credito sono progettati per anticipare comportamenti di insolvenza e vengono utilizzati per valutare l’affidabilità creditizia dei richiedenti.
L’analisi del rischio si applica anche al mondo scientifico, assicurativo e ad istituzioni finanziarie come le società di gateway di pagamento. L’obiettivo è distinguere transazioni genuine da quelle fraudolente.
Si utilizza la cronologia delle transazioni dei clienti, soprattutto per acquisti con carta di credito. In caso di picchi improvvisi nel volume di transazioni, il cliente riceve una chiamata di conferma per prevenire frodi e limitare le perdite.
Analisi Esplorativa dei Dati con R
Per iniziare l’EDA con R, è necessario scaricare R base e R Studio (IDE). Successivamente, occorre installare e caricare i seguenti pacchetti:
# Installazione Pacchetti install.packages("dplyr") install.packages("ggplot2") install.packages("magrittr") install.packages("tsibble") install.packages("forecast") install.packages("skimr") # Caricamento Pacchetti library(dplyr) library(ggplot2) library(magrittr) library(tsibble) library(forecast) library(skimr)
In questa guida, useremo un dataset economico integrato in R, contenente dati annuali sugli indicatori economici degli Stati Uniti, che rinomineremo “econ” per praticità:
econ <- ggplot2::economics
Per l’analisi descrittiva useremo il pacchetto “skimr”, che calcola le statistiche in modo chiaro e sintetico:
# Analisi Descrittiva skimr::skim(econ)
È possibile usare anche la funzione summary per l’analisi descrittiva:
L’analisi descrittiva mostra 547 righe e 6 colonne nel dataset. Il valore minimo è del 1967-07-01, mentre il massimo del 2015-04-01. Inoltre, vengono indicati la media e la deviazione standard.
Ora che abbiamo una panoramica del dataset “econ”, creiamo un istogramma della variabile “uempmed” per visualizzare meglio i dati:
# Istogramma della Disoccupazione econ %>% ggplot2::ggplot() + ggplot2::aes(x = uempmed) + ggplot2::geom_histogram() + labs(x = "Disoccupazione", title = "Tasso di Disoccupazione Mensile negli USA tra il 1967 e il 2015")
L’istogramma rivela una distribuzione con una “coda” allungata verso destra, indicando la presenza di valori estremi. Ci chiediamo quindi, a quali periodi corrispondono questi valori, e qual è l’andamento generale della variabile?
Per visualizzare l’andamento della variabile, possiamo ricorrere a un grafico a linee. Aggiungiamo anche una linea di levigatura:
# Grafico a Linee della Disoccupazione econ %>% ggplot2::autoplot(uempmed) + ggplot2::geom_smooth()
Il grafico evidenzia un aumento della disoccupazione nelle osservazioni più recenti del 2010, superando i livelli dei decenni precedenti.
Un altro aspetto rilevante, soprattutto nel contesto della modellazione econometrica, è la stazionarietà della serie: cioè, media e varianza sono costanti nel tempo?
Se queste ipotesi non sono rispettate, la serie è definita “non stazionaria”, nel senso che gli shock che subisce la variabile generano effetti permanenti.
Sembra essere questo il caso della durata della disoccupazione. Le fluttuazioni della variabile sono cambiate in modo significativo, con importanti implicazioni per le teorie economiche. Ma, a parte la teoria, come verifichiamo in pratica la stazionarietà?
Il pacchetto “forecast” offre un’ottima funzione per applicare test, come ADF, KPSS e altri, che restituiscono il numero di differenze necessarie affinché la serie sia stazionaria:
# Test ADF per la Stazionarietà forecast::ndiffs( x = econ$uempmed, test = "adf")
Il valore p superiore a 0,05 indica che i dati non sono stazionari.
Un’ulteriore questione fondamentale nelle serie temporali è l’identificazione di possibili correlazioni (relazione lineare) tra i valori ritardati della serie. I correlogrammi ACF e PACF ci aiutano in questo.
Poiché la serie non ha stagionalità, ma ha un trend, le autocorrelazioni iniziali tendono ad essere ampie e positive. Infatti, le osservazioni ravvicinate nel tempo hanno valori simili.
Pertanto, la funzione di autocorrelazione (ACF) di una serie temporale con trend tende ad avere valori positivi che diminuiscono lentamente all’aumentare dei ritardi.
# Residui della Disoccupazione checkresiduals(econ$uempmed) pacf(econ$uempmed)
Conclusioni
Di fronte a dati, anche già puliti, si è spesso tentati di passare subito alla fase di costruzione del modello, per arrivare rapidamente ai risultati. È importante resistere a questa tentazione e dedicarsi all’analisi esplorativa dei dati. Questa fase, seppur semplice, ci consente di trarre potenti intuizioni dai dati.
È possibile anche approfondire lo studio di risorse utili per apprendere le statistiche per la data science.