Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Docente:Prof.Roberto Zelli
Roberto.zelli@uniroma1.it
Il file “pil_8201.txt” contiene i dati relativi al Pil (Prodotto interno lordo) dell’Italia nel periodo 1982 – 2000 per
ogni trimestre. I dati sono divisi in due colonne: la prima indicava i dati grezzi , la seconda i dati
destagionalizzati , mentre tramite le altre 4 colonne è stato “segnalato” a quale trimestre appartiene il valore
PIL indicato.
In questa tesina si assumerà l’analisi classica delle seria storica presumendo che la dinamica temporale del
fenomeno, in questo caso PIL, risulti dall’effetto combinato di alcune precise componenti, ciascuna legata a
una specifica caratteristica dell’andamento:
a) Il trend, è la tendenza del fenomeno di assumere una direzione o meglio
inclinazione positiva o negativa in modo lento e uniforme nel tempo (Tt);
b) La ciclicità pluriennale, legata alle flutazioni dell’economia e delle
circostanze congiunturali(Ct). Questa componente è di solito collegata ai
fenomeni economici e non è sempre presente;
c) La stagionalità, legata ai cambiamenti stagionali del fenomeno in esame
durante lo stesso anno solare(St);
d) Le variazioni accidentali, dovute a complesso delle cause impreviste non
prevedibili(At);
Ciascuno di questi quattro aspetti influisce su ciascun dato che allora possiamo dividere in 4 componenti. Con
questo modello si ipotizza che si tratta di un modello moltiplicativo classico cioè che il valori di Xt sono la
molteplicazione di 4 componenti sopra descritti : xt=Tt x Ct x St x At , t=1,2,…,N
> PIG <- SSdat[,1] ## serie storica del PIL italiano grezzo a prezzi costanti 1995
> PIG
[1] 335899 340240 333006 351255 334630 340289 339458 362843 346513 351604
[11] 348264 368828 351606 363098 360229 382373 361643 372981 369455 390037
[21] 370468 384635 379175 404435 387297 398307 394061 419808 401214 410897
[31] 403702 429590 412344 420611 413241 431689 415750 424712 418249 442500
[41] 423696 431497 419881 439075 417358 425912 415002 440729 422450 434467
[51] 427437 452150 439763 447629 437654 462232 445610 451045 445430 464729
[61] 444495 461951 454230 478948 455841 468173 462559 481223 460180 472765
[71] 470099 491364 474613 484995 481857
> PIDS <-SSdat[,2] ## serie storica del PIL italiano destagionalizzato a prezzi costanti 1995
> PIDS
[1] 342096 340584 338808 338911 340309 340915 345446 350550 352498 351158 Uno dei scopi di tesina e di
[11] 354297 357256 357674 362887 366918 369827 368711 372318 375409 377678 arrivare ai dati
[21] 377379 384484 385561 391290 394746 397781 401096 405850 407584 410153 destagionalizzati tramite la
[31] 411996 415670 418705 419923 421305 417952 422150 424149 426204 428708 procedura che abbiamo
chiamato il metodo
moltiplicativo classico.
[41] 430090 430996
427391 425672 424206 425271 422853 426670 429160 433314
[51] 435507 438523
446239 446295 446129 448615 451933 449795 453101 451985
[61] 451243 460039
462621 465720 463822 466747 469417 467811 469432 471533
[71] 475346 478097
483324 484525 487431
> D1 <- SSdat[,3] ## variabili stagionali La lunghezza totale è allora 75
> D2 <- SSdat[,4]
> D3 <- SSdat[,5]
>D1
[1] 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0
[39] 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0
> D2
[1] 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
[39] 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0
> D3
[1] 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0
[39] 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
Non è stata utilizzata quarta colonna per evitare i problemi relativi alla multicolinearità .
Con il commando plot si disegna la funzione con i valori del PIL nell’ordinata e la variabile temporale
(trimestri per anni) nell’ascisse. Dal grafico si può subito osservare la componente di Trend e di
Stagionalità . Le componenti Ciclici ed Accidentali saranno mostrate tramite le procedure matematiche
per detrazione.
Possiamo osservare una continua crescita del PIL , dovuto al Trend, una oscillazione ripetitiva , dovuto
al Stagione , mentre la parte Ciclica, è più difficile vedere e sarà verificato con strumenti statistici se
esiste e se questo aspetto è statisticamente significativo, e alla fine le oscillazioni casuali imprevedibili
che sono le variazioni non attribuibili a quelli tre precedenti. Da ricordarsi che non sono sempre presenti
tutte le componenti.
boxplot(PIG)
title(main="1.b Serie storica trimestr. del PIL italiano a prezzi costanti 1995")
Tramite boxplot si determina non solo il valore medio ma anche i percentili relativi al 25°,e 75° che
insieme disegnano la scatola suddivisa in due parti con la linea orizzontale che indica il valore medio,
mentre le due linee orizzontali stacate dalla scatola indicano 5° e 95° percentile . Gli eventuali valori
oltre le due linee rappresentano spesso i valori anomali.
> ##postscript("SS_boxplot.eps", horizontal=F,height=5.5, width=7, pointsize=8)
##1. Grafico della serie storica--dati destagionalizzati
> plot(tsPIDS, xlab="anno", ylab="PIL prezzi 1995", type="l")
title(main="1.c Serie storica trim.del PIL italiano a prezzi cost.1995,dati destagionalizzati")
Il diagramma 1c mostra i dati di input relativi alla seconda colonna, quella con i dati
destagionalizzati. Con le nostre procedure cercheremmo di arrivare ai dati destagionalizzati partendo
dalla prima colonna. Così potremmo paragonare i dati destagionalizzati iniziali e quelli che abbiamo
calcolato noi partendo dai dati grezzi.
## I due grafici insieme
##2. Calcolo delle medie mobili centrate di 4 termini e grafico di confronto tra serie e
medie mobili
> mm4<-NULL
> for(i in 2:length(PIG))
+ {mm4[i]<-(1/4)*((0.5*PIG[i-2])+(PIG[i-1])+(PIG[i])+(PIG[i+1])+(0.5*PIG[i+2]))}
> mm4<-mm4[!is.na(mm4)]
> ##elimino i 2 dati iniziali e finali del PI
> PIGa<-PIG[-(1:2)]
##controllo le lunghezze dei due vettori
> length(mm4)
[1] 71
> length(PIGb)
[1] 71
##grafico della serie e delle medie mobili
> dati<-c(1:length(PIGb)) ##vettore pari alla lunghezza del data set
> ss<-cbind(mm4,PIGb) ##metto insieme le due serie
> matplot(dati, mm4, type="n", xaxt="n", xlab="dati", ylab="serie", main="2. Confronto tra i dati grezzi e le
medie mobili")
>matpoints(dati, ss, type = "l", lty = 1:5, lwd = 1, pch = "°", col=c(2,4))
boxplot(PIG)
> ##3. Calcolo dei coefficienti lordi di stagionalità (sotto l'ipotesi di modello moltiplicativo)
> SA<-(PIGb/mm4)*100 ##dati grezzi sulla stima del trend-ciclo
> SA
[1] 97.95983 103.37449 98.24678 99.25114 98.16872 104.05887 98.66396 99.58926 98.25784 103.45451 97.81924 100.12813
[13] 98.53600 103.88563 97.62005 100.11005 98.61808 103.40543 97.52655 100.45876 98.03329 103.54344 98.25777 100.09056
[25] 98.12083 103.67646 98.40909 100.18750 97.80977 103.42906 98.70495 100.33447 98.41485 102.57907 98.52503 100.17941
[37] 98.11234 103.35468 98.72003 100.59017 98.16152 103.00768 98.21422 100.32235 97.55875 103.19284 98.30903 100.40874
[49] 97.97082 102.73813 99.26440 100.46453 97.78877 103.01393 99.00085 99.92327 98.64158 102.63722 97.63729 100.83435
[61] 98.46220 103.32839 97.95888 100.32322 98.94493 102.69207 97.88476 100.09117 98.88366 102.63714 98.5210
Coeficenti lordi di stagionalità indicano quanto il singolo PIL si differisce dal valore della medie mobile
centrata. Dando il valore 100 alla mm4 possiamo osservare in termini percentuali le differenze stagionali
del PIL. Così osserviamo che 6° valore nella prima riga , che corrisponde all’8°trimestre, cioè all’4°
trimestre dell’1983 ha coefficiente più alto di tutti altri – 104,06 che indica che quel trimestre il PIL era
per 4,06% più alto rispetto alla valore del PIL che corrispondesse al media mobile centrale di quel
trimestre.
I 4 diagrammi mostrano come variano i coeficienti lordi di stagionalità degli stessi Trimestri nei diversi anni.
• la componente ciclica, Ct, che rappresenta le fluttuazioni intorno alla tendenza di lungo termine;
• la componente stagionale, St, caratterizzata da oscillazioni ricorrenti con periodo inferiore all'anno;
Yt = Tt+ Ct + St + It
oppure moltiplicativo:
Yt = Tt Ct St It.
Si noti che, spesso, la componente ciclica ed il trend vengono considerate come un’unica componente denominata ciclo-trend, data la
difficoltà teorica ed empirica di identificarle separatamente.
Le procedure di destagionalizzazione sono finalizzate all’eliminazione della componente stagionale. Quasi tutte prevedono un
trattamento preliminare dei dati, inteso a correggere l'influenza esercitata dal diverso numero di giorni lavorativi contenuti nei periodi
considerati (in genere, mesi o trimestri), dalla presenza di festività fisse o “mobili” come la Pasqua o, infine, da valori anomali (outlier), legati
a fenomeni accidentali o straordinari (scioperi, calamità naturali, ecc.). Alcune procedure, come TRAMO-SEATS, consentono inoltre di trattare
serie con valori mancanti.
Una volta sottoposti i dati a questo trattamento preliminare è necessario stimare le componenti non osservate, precedentemente
ricordate (ciclo-trend, componente stagionale e componente irregolare). A questo fine, gli approcci utilizzati sono essenzialmente due. Il
primo (filter-based) consente di trovare stimatori che non tengono conto dell'esistenza di un modello statistico sottostante la serie analizzata;
tali procedure, come ad esempio X-11, X-11 ARIMA e, successivamente, X-12 ARIMA, si basano sull’applicazione ripetuta di una serie di filtri
lineari costituiti da medie mobili centrate di diversa lunghezza. Queste procedure sono dette ad hoc in quanto i filtri adottati per stimare le
componenti non osservate non derivano dalle struttura probabilistica del processo stocastico che ha generato la serie.
Il secondo approccio (model-based), al contrario, ipotizza l'esistenza di un modello statistico parametrico, concependo la serie storica
osservata come la parte finita della realizzazione di un processo stocastico, la cui struttura probabilistica è adeguatamente descritta dal
suddetto modello. I filtri lineari utilizzati nell'approccio model-based sono, di solito, filtri simmetrici, la cui espressione analitica dipende dal
modello seguito dalla serie storica considerata e quindi risultano legati alle caratteristiche stocastiche della serie stessa. Questo tipo di
approccio è adottato dalla procedura TRAMO-SEATS; in particolare, tale procedura si basa su modelli di tipo ARIMA (AutoRegressive
Integrated Moving Average).
Sottraendo dalla serie storica originaria la componente relativa alla stagionalità (o dividendo, nel caso di un modello moltiplicativo, per
il fattore stagionale) è possibile ottenere la serie “destagionalizzata”, la quale presenta normalmente un andamento meno oscillante della
serie “grezza”, pur mantenendo al suo interno la componente irregolare. Se si elimina anche quest’ultima, si ottiene la stima del ciclo-trend, il
quale rappresenta la tendenza di medio-lungo termine della serie storica.
Per comprendere l'utilità da un punto di vista informativo della destagionalizzazione, è utile fare riferimento all'esempio della
produzione industriale (figura sottostante).
La serie "grezza" dell’indice della produzione industriale presenta una brusca e profonda caduta nel mese di agosto, a causa della
chiusura di molti impianti industriali per le ferie estive. Ciò rende difficile un confronto corretto tra mesi contigui (nello specifico tra agosto e
luglio e tra settembre e agosto), pertanto, per valutare l’evoluzione nel tempo di una serie storica “grezza”, come quella della produzione
industriale in cui è presente una componente stagionale, si deve ricorrere alle variazioni percentuali “tendenziali” (calcolate cioè rispetto allo
stesso periodo dell’anno precedente). La corrispondente serie “destagionalizzata” mostra, invece, una dinamica molto più omogenea nel corso
dell’anno, pur presentando oscillazioni significative, dovute sia a fattori di natura ciclica, sia alla presenza di una componente puramente
irregolare. La destagionalizzazione, quindi, consente di interpretare correttamente anche le variazioni percentuali “congiunturali”, calcolate
rispetto al periodo immediatamente precedente (mese su mese). In questo modo, si può disporre di una misura dell’andamento di breve
periodo del fenomeno analizzato, non influenzata dagli elementi di natura stagionale.
Figura: Serie grezza (linea continua) e destagionalizzata (linea
tratteggiata) dell’indice generale della produzione industriale
(base 1995=100)
(Ingrandisci)
Destagion
alizzati
> datistim1<-predict(fitted.model1)
> datistim1
1 2 3 4 5 6 7 8 9 10 11 12 13
340372.7 343204.4 346009.2 348787.4 351538.7 354263.3 356961.1 359632.1 362276.4 364893.9 367484.7 370048.6 372585.9
14 15 16 17 18 19 20 21 22 23 24 25 26
375096.3 377580.0 380036.9 382467.0 384870.4 387247.0 389596.8 391919.9 394216.2 396485.7 398728.5 400944.5 403133.7
27 28 29 30 31 32 33 34 35 36 37 38 39
405296.2 407431.9 409540.8 411622.9 413678.3 415707.0 417708.8 419683.9 421632.2 423553.8 425448.6 427316.6 429157.8
40 41 42 43 44 45 46 47 48 49 50 51 52
430972.3 432760.1 434521.0 436255.2 437962.6 439643.2 441297.1 442924.2 444524.6 446098.2 447645.0 449165.0 450658.3
53 54 55 56 57 58 59 60 61 62 63 64 65
452124.8 453564.5 454977.5 456363.7 457723.1 459055.8 460361.7 461640.9 462893.2 464118.8 465317.7 466489.7 467635.0
66 67 68
468753.5 469845.3 470910.3
> #plot(fitted.model1)
> ##confronto graficamente la serie destagionalizzata con la stima del trend quadratico
> PItrend1<-cbind(dest,datistim1)
> PItrend1
dest datistim1
Itrim 340563.4 340372.7
IItrim 339652.1 343204.4
IIItrim 345790.4 346009.2
IVtrim 351155.2 348787.4
Itrim 352657.1 351538.7
IItrim 350946.0 354263.3
IIItrim 354760.6 356961.1
IVtrim 356947.4 359632.1
Itrim 357840.4 362276.4
IItrim 362418.5 364893.9
IIItrim 366948.8 367484.7
IVtrim 370056.1 370048.6
Itrim 368055.4 372585.9
IItrim 372283.0 375096.3
IIItrim 376347.0 377580.0
IVtrim 377473.2 380036.9
Itrim 377036.9 382467.0
IItrim 383915.1 384870.4
IIItrim 386248.3 387247.0
IVtrim 391407.4 389596.8
Itrim 394164.3 391919.9
IItrim 397561.6 394216.2
IIItrim 401412.0 396485.7
IVtrim 406285.3 398728.5
Itrim 408328.0 400944.5
IItrim 410128.0 403133.7
IIItrim 411232.8 405296.2
IVtrim 415752.2 407431.9
Itrim 419655.4 409540.8
IItrim 419823.8 411622.9
IIItrim 420949.8 413678.3
IVtrim 417783.5 415707.0
Itrim 423121.8 417708.8
IItrim 423917.1 419683.9
IIItrim 426051.2 421632.2
IVtrim 428246.3 423553.8
Itrim 431208.6 425448.6
IItrim 430689.4 427316.6
IIItrim 427713.6 429157.8
IVtrim 424931.6 430972.3
Itrim 424758.3 432760.1
IItrim 425114.9 434521.0
IIItrim 422743.6 436255.2
IVtrim 426532.4 437962.6
Itrim 429940.6 439643.2
IItrim 433653.9 441297.1
IIItrim 435410.6 442924.2
IVtrim 437585.5 444524.6
Itrim 447560.5 446098.2
IItrim 446791.3 447645.0
IIItrim 445818.2 449165.0
IVtrim 447342.7 450658.3
Itrim 453511.2 452124.8
IItrim 450200.9 453564.5
IIItrim 453739.2 454977.5
IVtrim 449759.3 456363.7
Itrim 452376.4 457723.1
IItrim 461086.5 459055.8
IIItrim 462703.4 460361.7
IVtrim 463520.3 461640.9
Itrim 463923.6 462893.2
IItrim 467296.8 464118.8
IIItrim 471187.7 465317.7
IVtrim 465722.0 466489.7
Itrim 468339.6 467635.0
IItrim 471880.2 468753.5
IIItrim 478868.4 469845.3
IVtrim 475536.3 470910.3
> matplot(datinew, dest, type="n", xaxt="n", xlab="dati", ylab="serie", main="7.b confronto tra i dati
grezzi e la stima del trend quadratico")
>matpoints(datinew, PItrend1, type = "l", lty = 1:5, lwd = 1, pch = "°", col=c(2,4))
Destagion
alizzati
0 1 2 3 4 5 6 7 8 9 10 11 12
1.000 0.190 -0.131 -0.151 0.003 -0.107 -0.304 -0.192 0.037 0.118 0.058 -0.011 0.002
> plot(cc,main="9.b ACF-residui")
>
Eliminando la componente ciclica, dopo che abbiamo eliminato le componenti del Trend e della Stagione rimane
solo la parte casuale. Tramite l’adeguato test statistico si controllerà se la parte rimanente è veramente casuale o
c’è ancora da eliminare alcuni aspetti residuali delle componenti prima menzionati.
Secondo modello addittivo
[Caricato workspace precedentemente salvato]
> summary(fitted.model)
Call:
lm(formula = PIG ~ Temp + D1 + D2 + D3, data = datitrendA)
Residuals:
Min 1Q Median 3Q Max
-11729 -5042 -1946 3745 14887
Coefficients:
Estimate Std.Error t value Pr(>|t|)
(Intercept) 352592.60 2161.27 163.142 < 2e-16 ***
Temp 1969.50 37.09 53.094 < 2e-16 ***
D1 -20129.01 2286.56 -8.803 6.07e-13 ***
D2 -12391.25 2286.26 -5.420 8.00e-07 ***
D3 -20298.60 2286.56 -8.877 4.44e-13 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> datistim<-predict(fitted.model)
> ##plot(fitted.model)
>
> ##confronto graficamente la serie grezza con la stima del trend lineare
> plot(datistim, type="n")
> lines(datistim, col="red")
> lines(PIG, col="blue") La componente ciclica è stata calcolata
> ## resta il ciclo direttamente come differenza dei dati stimati
> rr<- datistim-PIG del modelo e quelli grezzi.
> plot(rr, type="l") Da notare che la componente ciclica calcolata
> stop("aaa") tramite il modelo additivo è diversa rispetto al
modelo moltiplicativo che abbiamo fatto nella