Oggi andremo ad analizzare con R una serie di dati molto importante, ovvero la concentrazione di CO2 in atmosfera. In particolare prenderemo in esame i dati registrati presso il sito di Mauna Loa, negli Stati Uniti. L’analisi che effettueremo oggi sarà un po’ più complessa rispetto alle precedenti, ma procedendo insieme e con calma, alla fine di questo articolo avremo appreso gli strumenti di base per l’analisi di una serie storica.
In questo primo articolo dedicato alla CO2 utilizzeremo questa fonte di dati, per comodità e semplicità d’uso, Climate Monitor ha preparato una versione ripulita dai dati superflui, la potete scaricare qui, oppure da R con il seguente comando:
dati<-scan("http://www.climatemonitor.it/Download/co2.csv")
Per questa sessione utilizzeremo le seguenti librerie:
library(tseries)
library(stats)
library(ast)
Per quanto riguarda l’ultima libreria “AST” è possibile che non sia installata sul vostro sistema. E’ una libreria non compresa nella biblioteca ufficiale di R, e va scaricata da qui se utilizzate Linux, oppure da qui se utilizzate Windows. In entrambi i casi, utilizzate il seguente comando per installarla:
R CMD INSTALL *percorso alla libreria*/ast_0.6.tar.gz
La serie è composta da 611 elementi ed inizia nel marzo del 1958. Diamo queste informazioni ad R con il seguente comando (ormai a noi familiare, in quanto l’abbiamo già utilizzato più volte):
co2<-ts(dati,start=c(1958,3),frequency=12)
Per avere una idea preliminare dei dati, scriviamo:
plot(co2,main="CO2 - Mauna Loa",xlab="Anno",ylab="ppm CO2")
ed otterremo questo
Ad occhio possiamo notare come vi sia una evidente stagionalità e un trend di lungo periodo. Nel caso della CO2 la stagionalità non è una sorpresa, è legata a fattori antropici ed ambientali. Il trend di fondo, in crescita e lo vedremo nei numeri, è uno degli argomenti più dibattuti degli ultimi 30 anni, da qui l’importanza di vedere con i propri occhi di cosa si stia parlando.
Dove:
T = è una funzione che rappresenta il trend
Z = è una funzione che rappresenta le ciclicità di lungo periodo
S = è una funzione che rappresenta la stagionalità di breve periodo
R = variabile casuale che rappresenta i valori residui
Andiamo, quindi, a caccia della tendenza di lungo periodo (questa tecnica vi tornerà utile anche per altre serie storiche di fenomeni naturali). Per il momento, per una maggiore leggibilità dei grafici, utilizzeremo un dominio temporale ristretto, a partire dal 2000.
plot(window(co2,2000,max(time(co2))),main="CO2 - Mauna Loa",xlab="Anno",ylab="ppm CO2")
Creiamo dei filtri e applichiamoli (il primo con “passo” a breve termine, il secondo con passo a lungo termine):
co2.filt1<-filter(co2,filter=rep(1/5,5))
co2.filt2<-filter(co2,filter=rep(1/12,12))
lines(co2.filt1,col="red",lwd=2)
lines(co2.filt2,col="blue",lwd=2)
Otterremo:
R mette a disposizione numerosi metodi per la scomposizione delle serie storiche, ad esempio tsr(), decompose() e stl(). Noi utilizzeremo quest’ultimo metodo.
co2.fit<-stl(co2,s.window="periodic")
La funzione stl() a questo punto ha scomposto la serie storica CO2 nelle sue componenti fondamentali: trend, stagionalità e i residui. Andiamo a separare ciascuna di queste componenti per un eventuale utilizzo futuro (ma non dimentichiamo che comunque la serie è già scomposta!).
co2.trend<-co2.fit$time.series[,2]
co2.stag<-co2.fit$time.series[,1]
co2.res<-co2.fit$time.series[,3]
Ed ecco il risultato finale:
Con questo metodo, abbiamo preso i dati originali e individuato la componente stagionale, questa va poi sottratta, restituendoci il trend di lungo periodo. Sottratte entrambe le componenti, rimane quella che viene detta componente residua o erratica. In pratica errore di fondo, dati che non possono rientrare in nessuna delle due componenti precedenti. Da un punto di vista statistico, per la correttezza del procedimento, occorrerebbe effettuare una serie di controlli sulla componente residuale, tale argomento piuttosto complesso esula dai nostri obiettivi, tuttavia se vi fosse l'interesse di più persone, eventualmente potremmo affrontarlo in un capitolo a parte.
molto interessante, grazie!
[…] Climate Monitor wrote an interesting post today on Analizziamo la CO2Here’s a quick excerptO ggi andremo ad analizzare con R una serie di dati molto importante, ovvero la concentrazione di CO2 in atmosfera. In particolare prenderemo in esame i dati registrati presso il sito di Mauna Loa , negli Stati Uniti. L’analisi che effettueremo oggi sarà un po’ più complessa rispetto alle precedenti, ma procedendo insieme e con calma, alla fine di questo articolo avremo appreso gli strumenti di base per l’analisi di una serie storica. Prima di proseguire, consigliamo la lettura dei prece […]