Tesina per il corso in “Analisi Statistica per le Scienze Sociali”
A.A. 2019/2020
Il dataset
Il dataset è stato reso disponibile dal sito della FAO. Si fa riferimento al consumo giornaliero pro capite di un paniere di beni alimentari. La matrice è composta da un insieme di 86 osservazioni, corrispondenti ad alcuni paesi appartenenti al continente europeo, africano e all’area del Nord America; e da 34 variabili, concernenti dei beni di consumo. Si noti bene che, le variabili riportano la medesima unità di misura: Kcal/pro capite/giornaliero. In altre parole, si riferiscono al totale dell’introito giornaliero misurato in Kcal, diviso per il numero di abitanti del paese di riferimento.
Paesi osservati
| Albania | Liberia |
| Algeria | Lithuania |
| Angola | Luxembourg |
| Austria | Madagascar |
| Belarus | Malawi |
| Belgium | Mali |
| Benin | Malta |
| Bermuda | Mauritania |
| Bosnia and Herzegovina | Mauritius |
| X | |
| Botswana | Morocco |
| Bulgaria | Mozambique |
| Burkina Faso | Namibia |
| Cabo Verde | Netherlands |
| Cameroon | Niger |
| Canada | Nigeria |
| Central African Republic | North Macedonia |
| Chad | Norway |
| Congo | Poland |
| Croatia | Portugal |
| Czechia | Republic of Moldova |
| Cote d'Ivoire | Romania |
| Denmark | Russian Federation |
| Djibouti | Rwanda |
| Egypt | Sao Tome and Principe |
| Estonia | Senegal |
| Eswatini | Serbia and Montenegro |
| Ethiopia | Sierra Leone |
| Finland | Slovakia |
| France | Slovenia |
| Gabon | South Africa |
| Gambia | Spain |
| Germany | Sudan (former) |
| Ghana | Sweden |
| Greece | Switzerland |
| Guinea | Togo |
| Guinea-Bissau | Tunisia |
| Hungary | Uganda |
| Iceland | Ukraine |
| Ireland | United Kingdom |
| Italy | United Republic of Tanzania |
| Kenya | United States of America |
| Latvia | Zambia |
| Lesotho | Zimbabwe |
La matrice
86 x 34
Archi temporali dell’analisi
Ai fini dell’analisi, sono stati scelti due archi temporali differenti:
- Primi anni 90, un periodo di forti mutamenti politici ed economici. In particolare, la scelta è ricaduta in questi anni, in quanto gli effetti della globalizzazione erano ancora piuttosto latenti, pertanto ci si aspetterebbe una maggiore demarcazione tra le osservazioni.
- Il secondo, con riferimento all’ultima annualità disponibile tra le statistiche FAO: il 2013, periodo a seguito delle due Grandi Crisi, 2008 e 2011.
Fase preliminare
In prima battuta, ho caricato il dataset, precedentemente salvato con estensione «comma-separated variables» (food90s.csv), attraverso l’apposito comando: «Import Dataset» -> «From Text (Readr)». Di seguito, ho formattato i delimitatori di modo che il dataset potesse esser letto correttamente dal software. Una volta eseguita l’importazione, ho rinominato la matrice («food») ed ho provveduto ad eliminare la prima colonna, quella dei nomi delle osservazioni, in quanto non-numerica. Come mostrato dagli screenshots, ho tenuto questi nomi in un oggetto a parte – «names». Questo oggetto si rivelerà utile nelle fasi finali, di comprensione dell’output.
Analisi esplorativa
Al fine di comprendere al meglio il dataset su cui svolgere l’analisi, ho innanzitutto svolto una prima analisi esplorativa. Questa si è rivelata una fase cruciale dell’esperimento: nelle prossime slide se ne comprenderanno meglio le ragioni.
Per eseguire una veloce analisi, ho richiamato due comandi:
- «Head», comando che restituisce la «testa» del nostro dataset – le prime parti dei vettori.
- «Summary», comando che fornisce una serie di indici quali: i) Valore minimo; ii) I Quartile; iii) Mediana; iv) Media; v) III Quartile; vi) Valore massimo, (fig. in basso).
Questo comando sembra fornire le prime informazioni sul dataset: si riscontra una certa variabilità tra le osservazioni. Si notino i dati relativi alla variabile «Rice (Milled Equivalent)», in cui si trovano valori estremamente bassi, 2,0 sul minimo, insieme ad altri molto alti sino a 974,0. Ma non solo, ci sono anche altre variabili che denotano una buona variabilità, come: «Bananas», «Potatoes and products», «Beer», «Milk – Excluding Butter», «Olive Oil», «Bovine Meat», «Cereals, Other» etc. Sebbene infatti, riportino una stessa unità di misura, non è da escludersi il ricorso ad una standardizzazione.
Stampa a video – comando summary
Standardizzare o non standardizzare?
Una situazione al margine
Come più volte sottolineato, la standardizzazione è un’operazione piuttosto invasiva nei confronti del Ns dataset: non è da affrontarsi a cuor leggero. Pertanto, al fine di poter prendere una decisione più fedele possibile, ho deciso di lanciare un ulteriore comando, per poter analizzare la deviazione standard nelle variabili prese in considerazione.
Il comando di cui sopra, restituisce i valori relativi allo scarto quadratico medio (σ), rispetto a tutte le variabili del Dataset.
Lorem ipsum
Lorem Ipsum is simply dummy text of the printing and.
Sebbene in alcune delle osservazioni non si evidenzi un alto grado di variabilità; altre, in particolare quelle menzionate precedentemente, evidenziano una forte dispersione.
Pertanto si è optato per procedere con una normalizzazione.
Standardizzare o normalizzare?
Un altro dilemma
Una volta soppesate le ragioni della standardizzazione, ci si trova davanti ad un bivio, procedere con:
- Standardizzazione zscore = X – μ / σ
- Normalizzazione = x – min (x) / min - max
La prima, riporta un procedimento piuttosto lineare, attraverso la funzione “scale”. Mentre per la seconda, è stato necessario imporre una funzione – in breve la formula di cui sopra – ed in seguito, richiedere al SW di applicarla all’intero dataset.
La risposta non può essere data a priori, è necessario provar a far girare entrambe le opzioni ed in seguito decidere quale sia la più adatta all’esperimento. A seguito di un processo iterativo, si è ritenuto opportuno procedere con una normalizzazione.
Metodo gerarchico aggregativo
Una volta provveduto alla normalizzazione, si può procedere con la definizione delle distanze tra le unità statistiche. In questo caso, è stata utilizzata la metrica euclidea:
Costruzione di una matrice di distanza
Nella sintassi del codice, si richiama il dataset normalizzato ed la metrica scelta, utilizzando la funzione get_dist {factoextra}.
Una volta definite le distanze, è possibile procedere con il merging, utilizzando i quattro metodi studiati:
- Legame singolo
- Legame di Ward
- Legame medio
- Legame completo
L’analisi è stata svolta in maniera iterativa: inizialmente sono stati presi in considerazione i quattro dendrogrammi, prodotti dai diversi legami. Alcuni, sono stati scartati a priori in quanto evidentemente non funzionali all’analisi. Di seguito, è stato consultato un ulteriore strumento di analisi ed interpretazione, il quale ha messo in correlazione la «Average Silhouette Width» ed il numero di clusters. Naturalmente, dati i presupposti del metodo gerarchico, ci si dovrebbe aspettare che una buona clusterizzazione raggiunga un punto di massimo, in cui l’aggregazione rivela dei cluster con delle buone allocazioni interne, ed in seguito, una media che tende a scendere con l’allargarsi dei gruppi. Sino ad uno scenario in cui tutte le osservazioni sono aggregate in un unico cluster omnicomprensivo.
Ho continuato l’analisi con il metodo di Ward («ward.D»), basato su un criterio che tende ad ogni step a raggruppare due classi che rendono minima la varianza interna e massima quella esterna. Dal plot è possibile notare che ad un’altezza poco al di sopra dello 0, sono state create la maggior parte delle aggregazioni. Il che, rende bene l’idea della vicinanza tra le osservazioni del dataset.
Ad ulteriore conferma della scelta, consultando il grafico in fig., è possibile comprendere quale sia il numero ottimale di clusters. Come si nota, il punto di massimo si raggiunge in k=4. Se si andasse oltre infatti, la coesione ne risentirebbe molto, peggiorando progressivamente al crearsi di nuovi clusters. Invece in k=4, la media rimarrebbe accettabile, suggerendo una sufficiente coesione degli elementi nei gruppi. Questo strumento si è rivelato estremamente utile per capire a quale altezza «potare» i rami del dendrogramma.
- K1 = 44 elementi
- K2 = 24 elementi
- K3 = 9 elementi
- K4 = 9 elementi
Comando: fviz_nbclust(food,FUNcluster = hcut , hc_method
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Riassunto esame Statistica I, prof. Cameletti, libri consigliati Statistica: metodologie per le scienze economiche …
-
Analisi e statistica
-
Analisi dei dati (statistica)
-
Statistica per le analisi economiche e aziendali