analisi e previsione di serie storiche

Upload: irene-bonta

Post on 03-Apr-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Analisi e previsione di serie storiche

    1/18

    Metodi e Modelli Matematici di Probabilit per la Gestione

    HOMEWORK 2

    Analisi e previsione di

    serie storicheIrene Bont 302917

  • 7/29/2019 Analisi e previsione di serie storiche

    2/18

    2 HOMEWORK 2Analisi e previsione di serie storiche

    Sommario

    SCOPO .................................................................................................................................................. 3

    FONTE................................................................................................................................................... 3ANALISI................................................................................................................................................. 4

    Decomposizione della serie ............................................................................................................. 4Medie mobili, differenze dei termini ........................................................................................... 5Metodo analitico.......................................................................................................................... 7Livellamento esponenziale con il metodo di Holt-Winters ......................................................... 8

    Analisi del problema ........................................................................................................................ 9Costruzione del modello ................................................................................................................ 10Previsione....................................................................................................................................... 13Intervallo di confidenza.................................................................................................................. 14

    Test sullerrore ............................................................................................................................... 14Conclusioni ......................................................................................................................................... 18

  • 7/29/2019 Analisi e previsione di serie storiche

    3/18

    3 HOMEWORK 2Analisi e previsione di serie storiche

    SCOPO

    Lo scopo del presente lavoro quello di analizzare la situazione delloccupazione tra i giovani

    nellet compresa tra i 15 e i 24 anni. I dati della serie stor ica presa in esame vanno dal primotrimestre del 2000 al quarto trimestre del 2005.

    Mi sembrato interessante esaminare questa serie storica, in quanto questo un periodo pieno dicambiamenti soprattutto per il diritto allo studio e per il mondo del lavoro che si trovato afronteggiare le conseguenze di una crisi economica sempre pi pressante.

    Attraverso lanalisi dei valori si cercher di capire landamento temporale dei dati stessi e

    individuare i fenomeni da ci sono scaturiti. Tutte queste informazioni serviranno successivamenteper effettuare una previsione sullandamento dei valori futuri.

    FONTE

    Conistat - ricerca per aggregato - Forze di Lavoro - Occupati - Giovani 15-24 anni per ripartizionegeografica e sesso - IIOL Italia Totale

    (il sito Conistat raggiungibile attraverso il seguente collegamento:http://con.istat.it/amerigo/)

    http://con.istat.it/amerigo/http://con.istat.it/amerigo/http://con.istat.it/amerigo/http://con.istat.it/amerigo/
  • 7/29/2019 Analisi e previsione di serie storiche

    4/18

    4 HOMEWORK 2Analisi e previsione di serie storiche

    ANALISI

    Prendiamo i dati che vanno dal primo trimestre del 2000 al quarto trimestre del 2005. Li inseriamoin una tabella chiamata dati e poi creiamo la serie storica con il comando

    >occ=ts(dati,start=2000,frequency=4). Il parametro start indica il tempo della prima osservazione,mentre la frequenza indica il numero di osservazioni per unit di tempo. Nel nostro caso, essendola serie a cadenza trimestrale, il parametro frequency viene impostato a 4.Una volta fatto ci, plottiamo il grafico della serie digitando >ts.plot(occ):

    Si nota subito a occhio uncerto trend linearedecrescente e una sorta diperiodicit annuale. Il fattoche il trend e la periodicitnon sono sempre uguali,ma si notano dei bruschicambiamenti, potrebbeessere un ostacolo per

    quanto riguarda laprevisione futura, in quantopotrebbe essere difficilestimarne landamento.

    Decomposizione della serie

    Si vuole ora scomporre la serie nelle sue componenti, isolandole per poterle studiare meglio.Vogliamo infatti individuare e eliminare il trend e la periodicit.Per prima cosa possiamo cercare di eliminare la stagionalit per mettere in risalto solo lacomponente di fondo del trend. Questo pu essere fatto sfruttando vari metodi.

  • 7/29/2019 Analisi e previsione di serie storiche

    5/18

    5 HOMEWORK 2Analisi e previsione di serie storiche

    Medie mobili, differenze dei termini

    Come primo metodo di analisi si pu applicare una media ponderata a 4 termini. Digitiamo> occ.fil2=filter(occ,filter=rep(1/9,9))> plot(occ.fil2, main="Trend stimato con media mobile")

    In questo modo emergechiaramente il trend dellaserie, che prima eramascherato dallaperiodicit.

    Il metodo invece per

    eliminare il trend quellodi operare sulle differenzetra i termini della seriestorica. Digitiamo

    > occ.diff=diff.ts(occ)> plot(occ.diff,main="Seriedetrendizzata")

  • 7/29/2019 Analisi e previsione di serie storiche

    6/18

    6 HOMEWORK 2Analisi e previsione di serie storiche

    Altro strumento molto utile per studiare le periodicit la funzione acf. Digitiamo >acf(occ):

    Dal grafico si vede chiaramente comela funzione di autocorrelazionedecresce lentamente allaumentare

    dei lag temporali. Questo vuol direche i valori della serie storica sonofortemente correlati a quelli dellaserie ritardata di un periodo, poi unpo meno per quella ritardata di dueperiodi e cos via. La serie presentaquindi un tendenza di fondo, omeglio prevale la componentetendenziale. Si nota tuttavia che ipicchi significativi (cio quelli che

    escono dalla zona di confidenza,rappresentata dalle lineetratteggiate) sono soltanto quelliiniziali. Questo significa cheinizialmente la serie presenta dellenette periodicit e quindi una fortecorrelazione, mentresuccessivamente (in corrispondenzadellanno 2003) questa correlazione

    decresce e non pi significativa.

    Tutto ci si nota benissimo applicando la funzione di autocorrelazione alla serie detrendizzata, chemette in evidenza la periodicit. Digitiamo >acf(occ.diff,24):

    Si vede chiaramente laperiodicit significativa per i

    primi 3 anni e poilanomalia che porta a unascarsa correlazione dellaserie.

  • 7/29/2019 Analisi e previsione di serie storiche

    7/18

    Metodo analitico

    Un metodo messo a disposizione da R nel pacchetto stat() la funzione decompose(). Questafunzione decompone la serie storica in stagionalit, trend e componente di errore

    automaticamente. Digitiamo:

    > dec.fit=decompose(occ,type="additive")> stag.dec=dec.fit$seasonal> trend.dec=dec.fit$trend> res.dec=dec.fit$random> plot(dec.fit)

    Dal grafico viene messonettamente in evidenzalandamento lineare

    decrescente della serie e lachiara periodicit annuale.

    Un altro metodo, che ottiene forse stime migliori, quello ottenuto con la funzione stl().Digitiamo:

    > stl.fit=stl(occ,s.window="periodic")> trend.stl=stl.fit$time.series[,2]> stag.stl=stl.fit$time.series[,1]> res.stl=stl.fit$time.series[,3]> plot(stl.fit, main="Decomposizione con la funzione 'stl'")

  • 7/29/2019 Analisi e previsione di serie storiche

    8/18

    Si vede come dal 2003 circasia piuttosto evidente ilpeso dellerrore.

    Livellamento esponenziale con il metodo di Holt-Winters

    Il metodo di Holt-Winters un ottimo strumento per descrivere landamento di una serie, masoprattutto per effettuare delle previsioni. R mette a disposizione lomonima funzione

    HoltWinters() nel pacchetto stats. Digitiamo:

    >occ.hw=HoltWinters(occ,seasonal="additive")> occ.hw

    > plot(occ.hw)

    In questo caso il metodoutilizza lo smorzamentoesponenziale con trend estagionalit.

    Possiamo per utilizzare ilmetodo di smorzamentoesponenziale oppure dismorzamento esponenzialecon trend.

  • 7/29/2019 Analisi e previsione di serie storiche

    9/18

    9 HOMEWORK 2Analisi e previsione di serie storiche

    Nel primo caso (in cui =0 e

    =0) digitiamo:

    >occ.hw.bg=HoltWinters(occ,beta=0,gamma=0)> plot(occ.hw.bg)

    Per utilizzare, invece, ilmetodo di smorzamentoesponenziale con trend (incui =0) digitiamo:

    >occ.hw.g=HoltWinters(occ,gamma=0)> plot(occ.hw.g)

    Analisi del problema

    Come si pu evidenziare dai grafici landamento della serie decrescente e presenta picchistagionali.

    La prima spiegazione generica che potremmo dare che il numero di giovani lavoratori stadiminuendo a causa della diminuzione del tasso di natalit (si vedahttp://demo.istat.it/fecondita/index.html).

    Ma questo andamento decrescente tuttavia pu indicare anche che listruzione pi diffusa e

    impegna i giovani per pi anni.

    Infatti gi nel 1999 lobbligo scolastico era stato innalzato a 15 anni, ma il 21 maggio 2004 ilConsiglio dei ministri aveva approvato in via preliminare il decreto sul diritto-dovere allistruzione

    http://demo.istat.it/fecondita/index.htmlhttp://demo.istat.it/fecondita/index.htmlhttp://demo.istat.it/fecondita/index.html
  • 7/29/2019 Analisi e previsione di serie storiche

    10/18

    10 HOMEWORK 2Analisi e previsione di serie storiche

    e alla formazione, in attuazione della legge 53/03, in cui si legge:aumenta di tre anni (da nove adodici) l'obbligo scolastico, tutti dovranno conseguire un diploma o una qualifica entro il 18 anno

    di et. L'innalzamento dagli attuali nove a dodici anni sar graduale. Gi dal prossimo anno

    scolastico 2004-2005 partir il primo innalzamento della scolarit obbligatoria di un anno.

    Laumento dellobbligo scolastico pu spiegare solo in parte il repentino calo delloccupazionegiovanile, occorre anche tenere presente la congiuntura economica del periodo preso in esame.Va evidenziato, infatti, che i giovani lavoratori sono pi vulnerabili alla recessione economica, nelsenso che i datori di lavoro reagiscono alle pressioni economiche riducendo le assunzioni di nuovigiovani lavoratori. I giovani, quindi, sono meno frequentemente impiegati in occupazioni a tempopieno e, al contrario, pi spesso assunti con contratti a tempo determinato.

    Se poi si vuol cercare di spiegare la stagionalit di tali valori possiamo sicuramente affermare chelaumento nel terzo trimestre (luglio, agosto, settembre) legato al periodo estivo quando gliimpegni scolastici sono meno pressanti e maggiore il flusso turistico. Infatti sono molti i giovani

    lavoratori che vengono impiegati nel settore alberghiero e nella ristorazione. Anche la relativatenuta che si nota nel quarto trimestre pu essere spiegabile con laumento delloccupazione,nello stesso settore, durante il periodo natalizio.

    Costruzione del modello

    La teoria della regressione ci permette di costruire un modello lineare che descriva una serie didati sperimentali. Anche nel caso della nostra serie storica possiamo utilizzare lo stesso metodoper descriverne landamento. Lo stesso metodo potr poi essere utile per fare previsioni.

    Cominciamo con un semplice modello lineare del tipox=ax+b+. Digitiamo:

    > x0=occ[2:n]> x1=occ[1:(n-1)]> REG=lm(x0~x1)> summary(REG)

    Call:lm(formula = x0 ~ x1)

    Residuals:Min 1Q Median 3Q Max

    -121.434 -52.073 -2.971 58.993 142.878

    Coefficients:Estimate Std. Error t value Pr(>|t|)

    (Intercept) 138.6472 203.9537 0.680 0.504x1 0.9135 0.1139 8.019 7.93e-08 ***

    ---Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

  • 7/29/2019 Analisi e previsione di serie storiche

    11/18

    11 HOMEWORK 2Analisi e previsione di serie storiche

    Residual standard error: 71.71 on 21 degrees of freedomMultiple R-squared: 0.7538, Adjusted R-squared: 0.7421F-statistic: 64.3 on 1 and 21 DF, p-value: 7.929e-08

    La correlazione buona, il parametro R alto e pari a 0.7538.

    Introduciamo un nuovo modello pi complesso del tipo x=ax+ax+b+. Digitiamo:

    > x0=occ[3:n]> x1=occ[2:(n-1)]> x2=occ[1:(n-2)]> REG=lm(x0~x1+x2)> summary(REG)

    Call:

    lm(formula = x0 ~ x1 + x2)

    Residuals:Min 1Q Median 3Q Max

    -117.635 -47.862 -4.934 59.475 144.683

    Coefficients:Estimate Std. Error t value Pr(>|t|)

    (Intercept) 175.27186 232.81119 0.753 0.460767x1 0.90606 0.22526 4.022 0.000728 ***

    x2 -0.01452 0.24079 -0.060 0.952552---Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

    Residual standard error: 73.98 on 19 degrees of freedomMultiple R-squared: 0.7464, Adjusted R-squared: 0.7197F-statistic: 27.97 on 2 and 19 DF, p-value: 2.182e-06

    La correlazione sempre buona ma un po meno forte rispetto al modello precedente. Ilparametro R pari a 0.7464.

    Avendo inizialmente valutato ad occhio una periodicit annuale, quindi ogni quattro trimestri,introduciamo un modello in cui vogliamo vedere come il primo trimestre e lultimo trimestre

    dellanno precedente influenzano lanno successivo. Il nostro modello sempre del tipo

    x=ax+ax+b+, ma con una variante. Digitiamo:

    > x0=occ[5:n]> x1=occ[4:(n-1)]> x4=occ[1:(n-4)]> REG=lm(x0~x1+x4)> summary(REG)

    Call:lm(formula = x0 ~ x1 + x4)

  • 7/29/2019 Analisi e previsione di serie storiche

    12/18

    12 HOMEWORK 2Analisi e previsione di serie storiche

    Residuals:Min 1Q Median 3Q Max

    -77.820 -29.870 -7.957 24.604 100.584

    Coefficients:Estimate Std. Error t value Pr(>|t|)

    (Intercept) -254.4298 182.6256 -1.393 0.181517x1 0.2998 0.1367 2.194 0.042432 *x4 0.8063 0.1606 5.022 0.000105 ***---Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

    Residual standard error: 46.98 on 17 degrees of freedomMultiple R-squared: 0.8776, Adjusted R-squared: 0.8632

    F-statistic: 60.94 on 2 and 17 DF, p-value: 1.764e-08

    Si vede chiaramente che la correlazione maggiore. Il modello migliore di entrambi gli altri due.Il valore di R 0.8776. Si osserva oltretutto che il nuovo fattore introdotto x di gran lunga piimportante rispetto al fattore x (rispettivamente x4 e x1 in R): questo lo si vede dal numer o diasterischi di lato ai due coefficienti nel summary(REG).

    Proviamo allora a vedere di quanto peggiora il modello eliminando x. Digitiamo:

    > REG=lm(x0~x4)

    > summary(REG)

    Call:lm(formula = x0 ~ x4)

    Residuals:Min 1Q Median 3Q Max

    -110.7785 -26.6855 0.8381 24.8682 80.4942

    Coefficients:

    Estimate Std. Error t value Pr(>|t|)(Intercept) -227.6249 200.5904 -1.135 0.271x4 1.0819 0.1101 9.829 1.16e-08 ***---Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

    Residual standard error: 51.72 on 18 degrees of freedomMultiple R-squared: 0.8429, Adjusted R-squared: 0.8342F-statistic: 96.6 on 1 and 18 DF, p-value: 1.165e-08

    Notiamo che infatti il modello non peggiorato eccessivamente, ma il valore di R, adesso pari a0.8429, comunque sempre molto vicino a quello del modello precedente.

  • 7/29/2019 Analisi e previsione di serie storiche

    13/18

    13 HOMEWORK 2Analisi e previsione di serie storiche

    Previsione

    Vogliamo adesso utilizzare il nostro modello per prevedere i successivi tre anni.Siamo al punto in cui abbiamo eseguito la regressione > REG=lm(x0~x1+x4). Digitiamo adesso:

    > serie=read.table(file="file62085.txt")> serie=serie[,2]> a1=REG$coefficients[2]> a2=REG$coefficients[3]> b=REG$coefficients[1]> for(k in (n+1):(n+12)){+ P[k]=a1*P[k-1]+a2*P[k-12]+b+ }> ts.plot(P,col="red")

    > lines(serie,col="blue")> legend(0,1550,legend=c("Dati daprevedere","Previsione"),col=c("Blue","Red"),lwd=c(3,3),lty=c(1,1))

    Possiamo per effettuare la previsione utilizzando un altro metodo.R mette a disposizione un utile metodo di previsione con la funzione predict(). Questa funzione in grado di applicare il metodo di previsione a un oggetto generato col metodo di Holt-Winters. Sevogliamo prevedere i tre anni successivi alla nostra serie storica (anni 2006-2008), ovvero un totaledi 12 trimestri, digitiamo:

    > prev=predict(occ.hw,n.ahead=12)

    Volendo confrontare la previsione con i veri valori presentatisi quegli anni, possiamo plottareentrambi gli andamenti in un unico grafico. Digitiamo:

    > plot(prev,col="red",asp=0.005)> lines(occ.da.prev)> legend(2006,1300,legend=c("Dati daprevedere","Previsione"),col=c("Black","Red"),lwd=c(3,3),lty=c(1,1))

  • 7/29/2019 Analisi e previsione di serie storiche

    14/18

    14 HOMEWORK 2Analisi e previsione di serie storiche

    Facciamo ora un confronto tra i due metodi di previsione, andandoci a calcolare la deviazionestandard per valutare quale dei due commette il minimo errore.Digitiamo:> sigma=sqrt(mean((P[25:36]-serie[25:36]) 2))> sigma

    [1] 106.3143> sigma2=sqrt(mean((prev[1:12]-serie[25:36])^2))> sigma2[1] 125.3559

    Possiamo concludere che il primo metodo produce un errore minore rispetto al metodo fornito daR con la funzione predict().

    Anche nelle previsioni, quindi, landamento discendente e con variazioni stagionali vieneconfermato, quasi ad indicare che le due cause individuate, lelevazione dellobbligo scolastico e il

    lavoro a tempo determinato, continuano a produrre gli stessi effetti dei periodi precedenti.

    Intervallo di confidenza

    Il calcolo della deviazione standard appena fatto per confrontare i due metodi pu essereutilizzato per stimare un intervallo di confidenza.Verifichiamo che i veri valori futuri cadano nellintervallo di confidenzap3. Digitiamo:

    > Pp3sigma=P[25:36]+3*sigma> Pp3sigma[1] 1882.618 1999.971 2081.114 1988.529 1909.974 1883.197 1935.641 1849.772[9] 1781.293 1775.276 1745.252 1732.218

    > Pm3sigma=P[25:36]-3*sigma> Pm3sigma[1] 1244.732 1362.085 1443.228 1350.643 1272.088 1245.311 1297.755 1211.885[9] 1143.407 1137.390 1107.365 1094.332

    > serie[25:36][1] 1547 1562 1565 1491 1450 1527 1561 1429 1467 1526 1528 1392

    Si vede anche a occhio che la serie dei veri valori futuri sta sempre nellintervallo di confidenzacalcolato, ovvero si ha sempre che Pm3sigma < serie < Pp3sigma.

    Test sullerrore

    Fino a questo momento abbiamo come implicitamente supposto che lerrore fosse distribuito

    normalmente con media zero e varianza costante e che non ci fosse autocorrelazione. Questeipotesi vanno per verificate con dei test statistici per dimostrare la validit del modello oppureper smentire la stessa e optare per modelli pi complessi.

  • 7/29/2019 Analisi e previsione di serie storiche

    15/18

    15 HOMEWORK 2Analisi e previsione di serie storiche

    Cerchiamo di verificare allora che i residui si distribuiscano secondo una variabile aleatorianormale, individuando i valori anomali. Innanzitutto standardizziamo i residui con una semplicefunzione:

    > stand=function(x){

    + m=mean(x)+ s=(var(x)^0.5)+ z=(x-m)/s+ return(z)+ }

    Poi plottiamo il diagramma dei residui standardizzati e la banda di confidenza al 95% (quellacompresa tra 0.4 e -0.4).

    > res.stand=stand(res.stl )>plot(res.stand,main="Diagramma dei residuistandardizzati")> abline(h=0.4,col="blue")> abline(h=-0.4,col="blue")

    Emerge quindi un errore

    considerevole soprattutto apartire dal 2003 in cui si haun andamento moltoimprevedibile.

    Bisogna quindi comprendere il significato di questa situazione anomala e le motivazioni che lohanno determinato.

    Secondo lIstat, nel 2003 si avuto un rallentamento dellattivit produttiva in tutti i settori(Rapporto annuale 2003 - Dati sintetici).

    Il riflesso di queste tendenze sulloccupazione non ha mancato di farsi sentire. Sempre secondo i

    dati forniti dal principale istituto di statistica nazionale, in un solo anno, tra maggio 2003 e maggio2004, le grandi imprese hanno perso circa 16.000 posti di lavoro. vero che nel 2003 il numero dioccupati in Italia aumentato dell1% (+225 mila), ma lincremento ha riguardato le fasce det

    pi anziane a causa di fattori demografici e del progressivo innalzamento dei requisiti di et e di

    contribuzione per laccesso alle pensioni di vecchiaia o di anzianit.

  • 7/29/2019 Analisi e previsione di serie storiche

    16/18

    16 HOMEWORK 2Analisi e previsione di serie storiche

    Questo giustifica quindi ampiamente lanomalia repentina che si avuta dal 2003 in poi, benvisibile nel grafico.

    Volendo verificare la normalit della distribuzione degli errori si ricorre allaiuto grafico con unistogramma e con un QQ-plot. Digitiamo:

    >hist(res.stand,main="Distribuzione dei residui:istogramma")

    >plot(density(res.stand,kernel="gaussian"),main="Distribuzione dei residui: lisciamento")

  • 7/29/2019 Analisi e previsione di serie storiche

    17/18

    17 HOMEWORK 2Analisi e previsione di serie storiche

    > qqnorm(res.stand)> abline(0,1)

    Da tutti e tre i grafici emerge una buona indicazione su una probabile distribuzione pressochnormale dei residui, anche se ci sono punti che si discostano molto dallandamento normale.

    Possiamo tornare allora al discorso iniziale sullautocorrelazione. Se facciamo il grafico di

    autocorrelazione dei residui si nota chiaramente che non c correlazione. Digitiamo:

    >acf(res.stand)

    Le linee tratteggiateindicano la banda diconfidenza ad un livello

    del 95%. Al variare dellag temporale icoefficienti diautocorrelazione deiresidui risultano esseretutti interni alla banda diconfidenza, indicandoquindi una chiaraassenza di correlazionedella serie.

  • 7/29/2019 Analisi e previsione di serie storiche

    18/18

    18 HOMEWORK 2Analisi e previsione di serie storiche

    Conclusioni

    Dal lavoro svolto si evince che loccupazione giovanile sta attraversando un periodo negativo.

    Sicuramente la diminuzione del tasso di natalit a partire dal 1976 in poi ha influitosullandamento decrescente delloccupazione giovanile. Si sono poi accavallate altre

    problematiche quali la riforma scolastica e, in maggior misura, la crisi economica.

    Tutti questi fattori influiscono in percentuale diversa a seconda dei vari anni. Prima del 2003 incidemaggiormente la diminuzione del tasso di natalit; successivamente si acuita la crisi economicasoprattutto negli anni 2003-2004, che si ripercossa pesantemente sulloccupazione giovanile, acui si aggiunta contemporaneamente la riforma sullobbligo scolastico.

    Tuttavia bisogna aggiungere che i contorni reali del fenomeno sfuggono alle statistiche perch il

    lavoro dei minori molto spesso legato al lavoro clandestino e in ogni caso non denunciato.