\[Y_t= \mu_t+\gamma_t+\psi_t + \epsilon_t \\.\\ Dove: \\ \mu_t = trend \\ \gamma_t = stagionalità \\ \psi_t = ciclo \\ \epsilon_t = rumore\]
Quattro componenti di base di questi modelli:
Per questo argomento useremo la serie storiche AirPassenger: il numero di passegeri sui voli aerei dal 1949 al 1961.
Dataset disponibile al link:
https://www.kaggle.com/rakannimer/air-passengers
library(ggfortify)
## Loading required package: ggplot2
AirPassengers
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 1949 112 118 132 129 121 135 148 148 136 119 104 118
## 1950 115 126 141 135 125 149 170 170 158 133 114 140
## 1951 145 150 178 163 172 178 199 199 184 162 146 166
## 1952 171 180 193 181 183 218 230 242 209 191 172 194
## 1953 196 196 236 235 229 243 264 272 237 211 180 201
## 1954 204 188 235 227 234 264 302 293 259 229 203 229
## 1955 242 233 267 269 270 315 364 347 312 274 237 278
## 1956 284 277 317 313 318 374 413 405 355 306 271 306
## 1957 315 301 356 348 355 422 465 467 404 347 305 336
## 1958 340 318 362 348 363 435 491 505 404 359 310 337
## 1959 360 342 406 396 420 472 548 559 463 407 362 405
## 1960 417 391 419 461 472 535 622 606 508 461 390 432
summary(AirPassengers)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 104.0 180.0 265.5 280.3 360.5 622.0
autoplot(AirPassengers) + labs(x ="Date", y = "Passenger numbers", title="Air Passengers from 1949 to 1961")
Il local linear trend è quello più utilizzato per i modelli UCM ed è formmato da due componemti:
Le componenti sono sviluppi stocastici di modelli deterministici. Si parte da una retta rispetto a \(t = 1,2,...: \mu_t = \mu_0 +t·\beta\). Per far sì che il coefficiente angolare e l’intercetta possano muoversi nel tempo si scrive la funzione in forma incrementale e a questa si aggiunge una componente rumore che influenza la retta nel tempo poiché si accumula:
\[\mu_t = \mu_{t-1}+\beta+ \eta_t \\dove: \\ \beta = drift \\ \eta_t \sim WN\] Si ottiene così un RWD: la parte degli shock ha media 0 e può far salire o scendere il livello (incremento casuale), mentre se \(\beta\) è positivo l’incremento sarà mediamente positivo, altrimenti sarà mediamente negativo (incremento deterministico).
#estraiamo l'anno
anno<-floor(time(AirPassengers)) #estraiamo solo la parte intera
medie<-tapply(AirPassengers, anno, mean); medie
## 1949 1950 1951 1952 1953 1954 1955 1956
## 126.6667 139.6667 170.1667 197.0000 225.0000 238.9167 284.0000 328.2500
## 1957 1958 1959 1960
## 368.4167 381.0000 428.3333 476.1667
devstandard<-tapply(AirPassengers, anno, sd); devstandard
## 1949 1950 1951 1952 1953 1954 1955 1956
## 13.72015 19.07084 18.43827 22.96638 28.46689 34.92449 42.14046 47.86178
## 1957 1958 1959 1960
## 57.89090 64.53047 69.83010 77.73713
plot(medie, devstandard)
abline(lm(devstandard~medie), col=2)
#bisognerebbe applicare un boxcox ma ci fidiamo e andiamo in logaritmo
y<-log(AirPassengers)
plot.ts(y)
#va molto meglio, æ¼ã¸¸ una serie che possiamo modellizzare
#partiamo con il trend:
n<-length(y)
trend<-1:n
#facciamo una prima regressione della serie storica logaritmica
#considerando costante e trend
reg1<-lm(y~trend)
plot(as.numeric(y), type="l")
abline(reg1, col="red")
summary(reg1)
##
## Call:
## lm(formula = y ~ trend)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.30858 -0.10388 -0.01796 0.09738 0.29538
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.8136683 0.0232940 206.65 <2e-16 ***
## trend 0.0100484 0.0002787 36.05 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.139 on 142 degrees of freedom
## Multiple R-squared: 0.9015, Adjusted R-squared: 0.9008
## F-statistic: 1300 on 1 and 142 DF, p-value: < 2.2e-16
Ci sono due diversi modi per creare una componente di stagionalità in un modello UCM:
La stagionalità è qualcosa che si ripete ogni dato periodo di tempo e modifica il valore osservato nei singoli periodi rispetto al livello medio della serie storica, ma senza influenzare tale livello
Se \(s\) è il numero delle stagioni, la stagionalità deterministica è: \[\gamma_t = -\gamma_{t-1}-\gamma_{t-2}-...-\gamma_{t-(s-1)} + \omega_t \space \space con \space \space \omega_t \sim WN(0, \sigma^2_{\omega})\]
Modello:
\[Y_t= \mu_t+ \gamma_t+\epsilon_t \\.\\ Dove: \\ \mu_t = \mu_{t-1}+\beta+ \eta_t \space \space con \space \space \eta_t \sim WN(0, \sigma^2_{\eta})\\ \gamma_t = -\gamma_{t-1}-\gamma_{t-2}-...-\gamma_{t-(s-1)} + \omega_t \space \space con \space \space \omega_t \sim WN(0, \sigma^2_{\omega}) \\ \epsilon_t = WN(0, \sigma^2_{\epsilon})\]
#castruiamo variabili factor con i nostri mesi:
mesi<-c("gen","feb","mar","apr","magg","giugno","lugl","ago","sett","ott","nov","dec")
mesi<-factor(rep(mesi,(1960-1949)+1),levels = c("gen","feb","mar","apr","magg","giugno","lugl","ago","sett","ott","nov","dec"))
head(model.matrix(y~mesi))
## (Intercept) mesifeb mesimar mesiapr mesimagg mesigiugno mesilugl mesiago
## 1 1 0 0 0 0 0 0 0
## 2 1 1 0 0 0 0 0 0
## 3 1 0 1 0 0 0 0 0
## 4 1 0 0 1 0 0 0 0
## 5 1 0 0 0 1 0 0 0
## 6 1 0 0 0 0 1 0 0
## mesisett mesiott mesinov mesidec
## 1 0 0 0 0
## 2 0 0 0 0
## 3 0 0 0 0
## 4 0 0 0 0
## 5 0 0 0 0
## 6 0 0 0 0
reg2<-lm(y~trend+mesi)
#vediamo come sarebbe il nostro fit:
plot(as.numeric(y), type="l")
lines(reg2$fitted.values, col="red")
summary(reg2)
##
## Call:
## lm(formula = y ~ trend + mesi)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.156370 -0.041016 0.003677 0.044069 0.132324
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.7267804 0.0188935 250.180 < 2e-16 ***
## trend 0.0100688 0.0001193 84.399 < 2e-16 ***
## mesifeb -0.0220548 0.0242109 -0.911 0.36400
## mesimar 0.1081723 0.0242118 4.468 1.69e-05 ***
## mesiapr 0.0769034 0.0242132 3.176 0.00186 **
## mesimagg 0.0745308 0.0242153 3.078 0.00254 **
## mesigiugno 0.1966770 0.0242179 8.121 2.98e-13 ***
## mesilugl 0.3006193 0.0242212 12.411 < 2e-16 ***
## mesiago 0.2913245 0.0242250 12.026 < 2e-16 ***
## mesisett 0.1466899 0.0242294 6.054 1.39e-08 ***
## mesiott 0.0085316 0.0242344 0.352 0.72537
## mesinov -0.1351861 0.0242400 -5.577 1.34e-07 ***
## mesidec -0.0213211 0.0242461 -0.879 0.38082
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.0593 on 131 degrees of freedom
## Multiple R-squared: 0.9835, Adjusted R-squared: 0.982
## F-statistic: 649.4 on 12 and 131 DF, p-value: < 2.2e-16
Gli analisti economici si aspettano una componente stagionale abbastanza liscia perché vogliono datare in maniera univoca l’inizio della fase di crescita e di quella di decrescita, mentre con un dtagionalità ruvida potrebbero esserci più picchi (positivi e negativi).
Questo secondo metodo genera stagioni che evolvono in maniera più liscia rispetto a quelle generate con il metodo delle dummy stocastiche sfruttando delle sinusoidi stocastiche.
Se \(s\) è il numero dei cicli, la componente ciclica è: \[ \gamma_t = \sum_{j=1}^{s/2}{a_j \cos{\biggl(\frac{2 \pi}{s} \space j \space t\biggr)}+b_j \sin{\biggl(\frac{2 \pi}{s} \space j \space t\biggr)}}+ \omega_t \space \space con \space \space \omega_t \sim WN(0, \sigma^2_{\omega}) \\ t.c. \space \space 1\le j \le [s/2] \space \space e \space \space j \in \bigl\{\frac{2 \pi}{s}, \space \frac{4 \pi}{s}, \space ..., \space \frac{[s/2] \pi}{s} \bigl\}\]
j quindi deve seguire la serie di Furier.
Questa formula che sembra complicata in realtà è abbastanza semplice e di fatto si va a posizionare dei picchi (uno alto e uno in basso) per ogni stagione così da poter catturare le variazioni cicliche.
Modello:
\[Y_t= \mu_t+ \gamma_t +\epsilon_t \\.\\ Dove: \\ \mu_t = \mu_{t-1}+\beta+ \eta_t \space \space con \space \space \eta_t \sim WN(0, \sigma^2_{\eta})\\ \gamma_t = \sum_{j=1}^{s/2}{a_j \cos{\biggl(\frac{2 \pi}{s} \space j \space t\biggr)}+b_j \sin{\biggl(\frac{2 \pi}{s} \space j \space t\biggr)}}+ \omega_t \space \space con \space \space \omega_t \sim WN(0, \sigma^2_{\omega}) \\ t.c. \space \space 1\le j \le [s/2] \space \space e \space \space j \in \bigl\{\frac{2 \pi}{s}, \space \frac{4 \pi}{s}, \space ..., \space \frac{[s/2] \pi}{s} \bigl\}\\ \epsilon_t = WN(0, \sigma^2_{\epsilon})\]
frequenze_stagionali<-2*pi*(1:6)/12
#costruzione sinusoide: cos(freq*tempo) & sen(freq*tempo)
ciclo<-cbind(cos(outer(1:144,frequenze_stagionali)),sin(outer(1:144,frequenze_stagionali)))
#l'ultima colonna va tolta perchæ¼ã¸¸ æ¼ã¸¸ sempre 0
reg3<-lm(y~trend+ciclo)
plot(as.numeric(y), type="l")
lines(reg3$fitted.values, col="red")
summary(reg3)
##
## Call:
## lm(formula = y ~ trend + ciclo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.157681 -0.041442 0.003145 0.044222 0.131433
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.812e+00 1.000e-02 481.015 < 2e-16 ***
## trend 1.007e-02 1.198e-04 84.043 < 2e-16 ***
## ciclo1 -1.418e-01 7.027e-03 -20.174 < 2e-16 ***
## ciclo2 -2.272e-02 7.049e-03 -3.223 0.001603 **
## ciclo3 2.730e-02 7.017e-03 3.891 0.000158 ***
## ciclo4 2.212e-02 7.020e-03 3.150 0.002024 **
## ciclo5 5.535e-03 7.018e-03 0.789 0.431702
## ciclo6 3.423e-03 6.094e-03 0.562 0.575296
## ciclo7 -4.936e-02 7.030e-03 -7.022 1.09e-10 ***
## ciclo8 7.863e-02 7.026e-03 11.192 < 2e-16 ***
## ciclo9 -8.823e-03 7.048e-03 -1.252 0.212892
## ciclo10 2.560e-02 7.016e-03 3.649 0.000380 ***
## ciclo11 2.138e-02 7.016e-03 3.047 0.002797 **
## ciclo12 5.377e+10 3.909e+11 0.138 0.890801
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.05953 on 130 degrees of freedom
## Multiple R-squared: 0.9835, Adjusted R-squared: 0.9818
## F-statistic: 595 on 13 and 130 DF, p-value: < 2.2e-16
Il ciclo stocastico può essere utilizzato come componente a sè per normalizzare il ciclo economico o come parte con certe frequenze permette di normalizzare la stagionalità.
Viene generato da una funzione sinusoidale ed è generato da un vettore di dimensione 2 (ai fini della previsione è indifferente prendere \(\psi_t \space o \space \psi_t^*\):
\[\left( \begin{array}{cc} \psi_t \\ \psi_t^* \end{array} \right) = \rho \space \left( \begin{array}{cc} \cos \lambda & \sin \lambda \\ -\sin \lambda & \cos \lambda \end{array} \right) \left( \begin{array}{cc}\psi_{t-1} \\ \psi_{t-1}^* \end{array} \right) + \left( \begin{array}{cc} k_t \\ k_t^* \end{array} \right) \] Dove:
\(\rho\) è un fattore di smorzamento.
\(R(\lambda)=\left( \begin{array}{cc} \cos \lambda & \sin \lambda \\ -\sin \lambda & \cos \lambda \end{array} \right)\) è la matrice di rotazione e \(\lambda\) è la frquenza del ciclo stocastico (angolo della sinusoide).
\(\left( \begin{array}{cc} k_t \\ k_t^* \end{array} \right)\) sono i rispettivi WN di \(\psi_t\) e di \(\psi_t^*\)
Per arrivare a questa formula finale partiamo dalla definizione di una sinusoide che varia nel tempo con ampiezza R frequenza \(\lambda\) e con fase \(\phi\):
\[ f(t) = R \cos (\phi + \lambda \space t) \]
Quindi la sinusoide dipende da 3 fattori:
La frequenza indica quanto velocemente la funzione ci mette a fare un giro completo, quindi più \(\lambda\) è grande maggiore sarà il numero di oscillazioni in una unità di tempo. Per definire in modo più chiaro la frequenza definiamo \(\lambda\) come \(\lambda = \frac{2 \space \pi}{periodo}\) e il periodo è il numero di istanti temporali che ci mette la sinusoide per completare il suo ciclo.
Vediamo alcuni esempi (per adesso ipotiziamo \(R=1 \space e \space \phi=0\):
R modifica il range di oscillazione (ampiezza) della sinusoide:
Vediamo alcuni esempi (per adesso ipotiziamo \(\lambda=\pi \space e \space \phi=0\):
Infine la fase modifica il punto da cui parte il coseno, quindi sposta il grafico di una quantità pari a \(-\phi/\lambda\).
Vediamo alcuni esempi (per adesso ipotiziamo \(R=1 \space e \space \lambda=\pi\):
Questa forma funzionale è molto utile per capire l’utilità di ogni singolo parametro ma dato che \(\phi \space e \space \lambda\) sono all’interno del coseno nel calcolo dei regressori sarebbe necessario minimizzare i quadrati in modo non lineare, per questo spesso si utilizza un’altra scrittura della sinusoide che è equivalente:
\[ f(t) = R \cos(\phi + \lambda \space t) = \\ = R \cos(\phi) \cos(\lambda \space t) - R \sin(\phi) \sin(\lambda \space t) = \\ = A \cos(\lambda \space t) + B \sin ( \lambda \space t) \]
In questo modo considerando \(\cos(\lambda \space t) \space e \space \sin ( \lambda \space t)\) come due regressori A e B si possono stimare con i minimi quadrati ordinari. Faciendo lo Stesso ragionamento fatto sopra con il coseno per il seno della sinusoide troviamo la matrice di rotazione.
La matrice, quindi, \(R(\lambda)\) è una matrice quadrata ortogonale di rango 2 che permette la rotazione in senso orario in un piano di 2 dimensioni di un angolo \(\lambda\) intorno all’origine.
Infine andiamo ad analizzare l’utilità del parametro presente nella formula iniziale \(\rho\). Andiamo ad analizzare le situazioni possibili e i possibili risultati:
Andiamo a fare un esempio con un modello strutturato come segue:
\[Y_t= \mu_t+\psi_t + \epsilon_t \\.\\ Dove: \\ \mu_t = \mu_{t-1}+\beta+ \eta_t \space \space con \space \space \eta_t \sim WN(0, \sigma^2_{\eta})\\ \left( \begin{array}{cc} \psi_t \\ \psi_t^* \end{array} \right) = \rho \space \left( \begin{array}{cc} \cos \lambda & \sin \lambda \\ -\sin \lambda & \cos \lambda \end{array} \right) \left( \begin{array}{cc}\psi_{t-1} \\ \psi_{t-1}^* \end{array} \right) + \left( \begin{array}{cc} k_t \\ k_t^* \end{array} \right) \space \space con \space \space \left( \begin{array}{cc} k_t \\ k_t^* \end{array} \right) \sim WN(\underline{0}, \sigma_k^2 \space I_2) \\ \epsilon_t = WN(0, \sigma^2_{\epsilon})\]
y<-log(AirPassengers)
trend<-1:144
R=1 # da adesso lo chiameremo rho pewrche R chiamiamo la funzione di rotazione
rho=1
phi=0
periodo=12
lambda=2*pi/periodo
x=seq(1,length(AirPassengers),1)
ciclo<- matrix(c(0,1),2,144)
#Creiamo la funzione di rotazione
R = function ( lambda ){
co = cos(lambda)
si = sin(lambda)
matrix(c(co,-si,si,co),2,2)
}
sig_kappa=0.01
for ( t in 2:n){
ciclo[,t]=rho*R(lambda) %*% ciclo[,t-1]+rnorm(2,sd=sig_kappa)
}
#per cicli di ordine superiore usare:
# esempio ciclo di ordine 2
#for ( t in 2:n){
# ciclo1[,t]=rho*R(lambda) %*% ciclo1[,t-1]+rnorm(2,sd=sig_kappa)
# ciclo2[,t]=rho*R(lambda) %*% ciclo2[,t-1]+ciclo1[,t-1] #ciclo di ordine superiore
#}
reg4<-lm(y~trend+ciclo[1,]+ciclo[2,])
#vediamo come sarebbe il nostro fit:
plot(as.numeric(y), type="l")
lines(reg4$fitted.values, col="red")
summary(reg4)
##
## Call:
## lm(formula = y ~ trend + ciclo[1, ] + ciclo[2, ])
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.261856 -0.065582 0.001491 0.068906 0.177989
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.8147793 0.0150975 318.911 < 2e-16 ***
## trend 0.0100303 0.0001807 55.493 < 2e-16 ***
## ciclo[1, ] 0.0350801 0.0102077 3.437 0.000776 ***
## ciclo[2, ] -0.1392321 0.0101752 -13.683 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.08996 on 140 degrees of freedom
## Multiple R-squared: 0.9593, Adjusted R-squared: 0.9585
## F-statistic: 1101 on 3 and 140 DF, p-value: < 2.2e-16
In questo esempio finale mettiamo insieme tutte le componenti per creare un modello UCM completo.
\[Y_t= \mu_t+\gamma_t+\psi_t + \epsilon_t \\.\\ Dove: \\ \mu_t = \mu_{t-1}+\beta+ \eta_t \space \space con \space \space \eta_t \sim WN(0, \sigma^2_{\eta})\\ \gamma_t = -\gamma_{t-1}-\gamma_{t-2}-...-\gamma_{t-(s-1)} + \omega_t \space \space con \space \space \omega_t \sim WN(0, \sigma^2_{\omega}) \\ \left( \begin{array}{cc} \psi_t \\ \psi_t^* \end{array} \right) = \rho \space \left( \begin{array}{cc} \cos \lambda & \sin \lambda \\ -\sin \lambda & \cos \lambda \end{array} \right) \left( \begin{array}{cc}\psi_{t-1} \\ \psi_{t-1}^* \end{array} \right) + \left( \begin{array}{cc} k_t \\ k_t^* \end{array} \right) \space \space con \space \space \left( \begin{array}{cc} k_t \\ k_t^* \end{array} \right) \sim WN(\underline{0}, \sigma_k^2 \space I_2) \\ \epsilon_t = WN(0, \sigma^2_{\epsilon})\]
mesi<-c("gen","feb","mar","apr","magg","giugno","lugl","ago","sett","ott","nov","dec")
mesi<-factor(rep(mesi,(1960-1949)+1),levels = c("gen","feb","mar","apr","magg","giugno","lugl","ago","sett","ott","nov","dec"))
R=1
phi=0
periodo=12
lambda=2*pi/periodo
x=seq(1,length(AirPassengers),1)
ciclo<-R*cos(phi+(lambda*x))
reg_tot<-lm(y~trend+ciclo+mesi)
#vediamo come sarebbe il nostro fit:
plot(as.numeric(y), type="l")
lines(reg_tot$fitted.values, col="red")
summary(reg_tot)
##
## Call:
## lm(formula = y ~ trend + ciclo + mesi)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.156370 -0.041016 0.003677 0.044069 0.132324
##
## Coefficients: (1 not defined because of singularities)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.8646019 0.1690396 28.778 < 2e-16 ***
## trend 0.0100688 0.0001193 84.399 < 2e-16 ***
## ciclo -0.1591426 0.1809755 -0.879 0.381
## mesifeb -0.0803051 0.0810948 -0.990 0.324
## mesimar -0.0296492 0.1701273 -0.174 0.862
## mesiapr -0.1404894 0.2601704 -0.540 0.590
## mesimagg -0.2011123 0.3262466 -0.616 0.539
## mesigiugno -0.1002871 0.3504524 -0.286 0.775
## mesilugl 0.0249763 0.3262594 0.077 0.939
## mesiago 0.0739317 0.2601961 0.284 0.777
## mesisett 0.0088684 0.1701655 0.052 0.959
## mesiott -0.0497186 0.0811440 -0.613 0.541
## mesinov -0.1351861 0.0242400 -5.577 1.34e-07 ***
## mesidec NA NA NA NA
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.0593 on 131 degrees of freedom
## Multiple R-squared: 0.9835, Adjusted R-squared: 0.982
## F-statistic: 649.4 on 12 and 131 DF, p-value: < 2.2e-16
Regressore (o variabile esplicativa), in statistica, è il termine con cui si indica ognuna delle variabili indipendenti che si individuano come variabili significative per spiegare un fenomeno in un modello.
\[Y_t= \mu_t+\gamma_t+\psi_t + \underline{\delta}_t^T \space \underline{X}_t + \epsilon_t \]
Non è necessario avere una relazione di cointegrazione tra \(Y_t\) e \(X_t\) e possiamo inserirli nelle equazioni delle componenti non osservabili.
Spesso le serie storiche presentano cambiamenti repentini e se ne possono considerare quattro tipi:
1. Outlier additivo (AO): in una certa data la serie storica assume un valore molto diverso dagli altri ma dalla data successiva torna a seguire l’andamento che aveva precedentemente (ad es. un evento che dura solo un giorno se la serie è giornaliera). \[AO_t = \begin{cases} 1, & \mbox{if } \space t=t_0 \\ 0, & \mbox{if } \space t \ne t_0 \end{cases}\]
2. Temporary change (TC): avviene su una serie di date successive (potrebbe essere dovuto ad un evento che dura più di un giorno ma poi si esaurisce).\[TC_t = \begin{cases} 1, & \mbox{if } \space t_0 \le t \le t_1 \\ 0, & \space altrimenti \end{cases} \]
3. Level shift (LS): avviene un cambio di livello definitivo (variabile scalino)\[LS_t = \begin{cases} 1, & \mbox{if } \space t\ge t_0 \\ 0, & \mbox{if } \space t < t_0 \end{cases}\]
4. Slope shift (SS): cambio di pendenza permanente della serie stori\[SS_t = \begin{cases} t-t_0+1, & \mbox{if } \space t\ge t_0 \\ 0, & \mbox{if } \space t < t_0 \end{cases}\]
Questo modello presuppone che \(X\) al tempo \(t\) abbia effetto solo su \(Y\) al tempo \(t\) e che il suo effetto sia nullo nei tempi successivi. Si tratta di una situazione riduttiva perché ad es. un investimento in pubblicità ha sia effetti immediati che duraturi, anche se si affievoliscono nel tempo.
Il modello con i regressori statici presuppone che \(X\) al tempo \(t\) abbia effetto solo su \(Y\) al tempo \(t\) e che il suo effetto sia nullo nei tempi successivi. Si tratta di una situazione riduttiva perché ad es. un investimento in pubblicità ha sia effetti immediati che duraturi, anche se si affievoliscono nel tempo. Potrebbe quindi essere utile introdurre dei ritardi.
\[ Y_t= \space ... + \delta_0^T X_t + \delta_1^T X_{t-1} + \delta_2^T X_{t-2} + \space ...\]
Il problema di questo metodo è che se l’effetto è molto lungo si devono considerare molti regressori e stimare molti coefficienti di regressione, quindi si perdono altrettanti gradi di libertà (le stime dei coefficienti non saranno precise perché il numero di osservazioni per coefficiente diventa troppo basso). Inoltre se si avesse un effetto di \(X_t\) permanente non sarebbe possibile inserire infiniti regressori nel modello perché con un numero finito di dati non si possono stimare infiniti coefficienti.
Per ovviare a questi problemi si utilizza può utilizzare in questi casi un modello simile a quello dei modelli ARIMA dove la parte MA è responsabile di movimenti autodipendenti di breve periodo e la parte AR è responsabile dei movimenti di lungo periodo.
\[ Y_t= \space ... + \delta_1^T Y_{t-1} + ... + \delta_r^T Y_{t-r} + \omega_0^T X_{t} + \omega_1^T X_{t-1} + ... + \omega_s^T X_{t-s} + \space ...\]
Un modello che si utilizza spesso per misurare l'effetto di una campagna pubblicitaria è con r=1 e s=0:
\[ Y_t= \delta_1^T Y_{t-1} + \omega_0^T X_{t} \]
In questo modello la funzione di risposta all'impulso risulta essere decrescente ossia permette di modellare una campagna publlicitaria in quanto con \(\delta_1^T Y_{t-1}\), la componente AR, modelliamo l'effetto di lungo periodo in quale si affievolisce pian piano mentre con \(\omega_0^T X_{t}\), la componente (pseudo-)MA, modeliamo la componente di breve periodo della campagna publicitaria.