7.3 Valutazione del modello di regressione

Le differenze tra i valori osservati di \(y\) e i corrispondenti valori stimati \(\hat{y}\) rappresentano gli errori ottenuti nell’insieme di stima, detti anche “residui”, definiti come, \[\begin{align*} e_t &= y_t - \hat{y}_t \\ &= y_t - \hat\beta_{0} - \hat\beta_{1} x_{1,t} - \hat\beta_{2} x_{2,t} - \cdots - \hat\beta_{k} x_{k,t} \end{align*}\] per \(t=1,\dots,T\). Ciascun residuo di regressione rappresenta la componente non prevedibile della corrispondente osservazione.

I residui di regressione hanno alcune proprietà utili che includono le due seguenti: \[ \sum_{t=1}^{T}{e_t}=0 \quad\text{and}\quad \sum_{t=1}^{T}{x_{k,t}e_t}=0\qquad\text{per tutti i $k$}. \] A corollario delle precedenti proprietà, risulta ovvio che la media dei residui è zero, e che la correlazione tra i residui e le osservazioni sulle variabili di previsione è anch’essa pari a zero. (Quest’ultima osservazione non è necessariamente vera nel caso in cui l’intercetta sia omessa dal modello).

Una volta che le variabili di regressione sono state selezionate ed il modello di regressione è stato stimato, è necessario analizzare il grafico dei residui al fine di verificare che le assunzioni del modello siano soddisfatte. Esistono una serie di grafici che possono essere prodotti al fine di verificare diversi aspetti del modello stimato e delle corrispondenti assunzioni sottostanti. Nel seguito si discuterà ciascuno di questi grafici.

Grafico ACF dei residui

Nel caso di dati in serie storica, risulta altamente probabile che il valore di una variabile osservato al periodo di tempo attuale sia simile al suo valore osservato nell’istante temporale precedente, o anche nel periodo di tempo ancora precedente a quest’ultimo, e così via. Quindi, quando si stima un modello di regressione avendo a disposizione dati in serie storica, è comune rilevare la presenza di autocorrelazione nei residui. In questo caso, il modello stimato viola l’assunzione di assenza di correlazione nei termini di errore, e le previsioni ottenute possono essere non efficienti — ovvero esiste una parte di informazione tralasciata che invece dovrebbe essere inclusa nel modello al fine di ottenere previsioni migliori. Le previsioni che derivano da un modello con errori autocorrelati risultano essere ancora non distorte, e quindi non “sbagliate”, ma queste manifestano tipicamente intervalli di previsione di ampiezza maggiore di quella che dovrebbe essere. A tale scopo è sempre utile controllare il grafico ACF dei residui.

Istogramma dei residui

È sempre una buona idea verificare se i residui siano normalmente distribuiti. Come è stato spiegato in precedenza, questo non è essenziale per la previsione, ma rende il calcolo degli intervalli di previsione più semplice.

Esempio

Utilizzando la funzione gg_tsresiduals() introdotta nel paragrafo 5.3, è possibile ottenere tutte le utili misure diagnostiche sui residui sopra menzionate.

fit_consMR %>% gg_tsresiduals()
Analisi dei residui di un modello di regressione per la serie trimestrale dei consumi negli Stati Uniti.

Figura 7.8: Analisi dei residui di un modello di regressione per la serie trimestrale dei consumi negli Stati Uniti.

augment(fit_consMR) %>%
  features(.innov, ljung_box, lag = 10, dof = 5)
#> # A tibble: 1 × 3
#>   .model lb_stat lb_pvalue
#>   <chr>    <dbl>     <dbl>
#> 1 tslm      18.9   0.00204

Il grafico della serie storica mostra della variabilità che cambia nel tempo, ma che altrove è relativamente irrilevante. Questa eteroschedasticità può potenzialmente rendere la copertura dell’intervallo di previsione inaccurata.

L’istogramma mostra che i residui sembrano leggermente asimmetrici, asimmetria che può contribuire ad influenzare la probabilità di copertura degli intervalli di previsione.

Il grafico dell’autocorrelazione mostra un picco significativo al ritardo 7, ed un valore della statistica test di Ljung-Box significativa al livello del 5%. Tuttavia, l’autocorrelazione non sembra essere particolarmente elevata, e al ritardo 7 è inverosimile che abbia un impatto rilevante sulle previsioni o sugli intervalli di previsione. Nel Capitolo 10 si presenteranno i modelli di regressione dinamica utilizzati per catturare meglio l’informazione lasciata nei residui.

Grafico dei residui contro i predittori

Ci si può aspettare che i residui siano dispersi casualmente senza mostrare nessun apparente comportamento sistematico. Un modo semplice e veloce per verificare questa caratteristica è quello di esaminare gli scatterplot dei residui contro ciascuna delle variabili usate come predittore. Se questi scatterplot mostrassero un andamento, allora la relazione potrebbe essere non lineare e il modello dovrebbe essere conformemente modificato. Si veda il paragrafo 7.7 per una discussione sulla regressione non lineare.

Risulta inoltre necessario costruire il grafico dei residui contro ciascun predittore che non è stato incluso nel modello. Nel caso in cui qualcuno di questi grafci mostrasse un particolare andamento, allora il corrispondente predittore dovrebbe essere incluso al modello (possibilmente in forma non lineare).

Esempio

I residui derivanti dal modello di regressione multipla utilizzato per prevedere i consumi negli Stati Uniti, rappresentati in figura 7.9 contro ciascun predittore, sembrano essere dispersi casualmente. I risultati ottenuti sembrano pertanto soddisfacenti in questo caso.

us_change %>%
  left_join(residuals(fit_consMR), by = "Quarter") %>%
  pivot_longer(Income:Unemployment,
               names_to = "regressor", values_to = "x") %>%
  ggplot(aes(x = x, y = .resid)) +
  geom_point() +
  facet_wrap(. ~ regressor, scales = "free_x") +
  labs(y = "Residui", x = "")
Scatterplot dei residui contro ciascun predittore.

Figura 7.9: Scatterplot dei residui contro ciascun predittore.

Grafico dei residui contro i valori stimati

Il grafico dei residui contro i valori stimati non dovrebbe mostrare alcun comportamento particolare. Se invece è presente un pattern di qualche tipo, potrebbe esserci “eteroschedasticità” negli errori che implica che la varianza dei residui potrebbe non essere costante nel tempo. Se si manifesta questo problema, una trasformazione della variabile da prevedere, quale quella logaritmica o la radice quadrata, potrebbe essere necessaria (si veda il paragrafo 3.1).

Esempio

Continuando l’esempio precedente, la figura 7.10 mostra il grafico dei residui contro i valori stimati. La dispersione causuale dei valori suggerisce che gli errori sono omoschedastici.

augment(fit_consMR) %>%
  ggplot(aes(x = .fitted, y = .resid)) +
  geom_point() + labs(x = "Valori stimati", y = "Residui")
Scatterplot dei residui contro i valori stimati.

Figura 7.10: Scatterplot dei residui contro i valori stimati.

Osservazioni anomale ed influenti

Le osservazioni che, se confrontate con la maggioranza dei dati, possono assumere valori estremi sono anche dette valori anomali o outlier. Le osservazioni che invece esercitano una grande influenza sulla stima dei coefficienti di un modello di regressione sono chiamate osservazioni influenti. Solitamente, le osservazioni influenti sono anche valori anomali che sono estremi nella direzione della \(x\).

Esistono metodi formali per rilevare i valori estremi e le osservazioni influenti che però vanno al di là degli scopi di questo libro. Come infatti suggerito all’inizio del Capitolo 2, acquisire familiarità con i dati a disposizione prima di svolgere l’analisi è di vitale importanza. Il grafico di dispersione di \(y\) contro \(x\) è sempre un utile punto di partenza nel contesto dell’analisi di regressione, e spesso aiuta ad identificare osservazioni insolite.

Una fonte di valori anomali è rappresentata dal non corretto inserimento dei dati. Semplici statistiche descrittive dei dati possono aiutare ad identificare valori mimimi e massimi che non risultano ragionevoli. Se questo tipo di osservazioni sono riconosciute, e sono state registrate in maniera non corretta, potranno essere immediatamente corrette o rimosse dal campione.

Valori anomali possono verificarsi quando alcune osservazioni sono semplicemente diverse. In questo caso potrebbe non essere saggio rimuovere queste osservazioni. Se un’osservazione è stata identificata come verosimilmente anomala, è importante studiarla e analizzare le possibili ragioni che stanno alla base della sua anomalia. La decisione di rimuovere o tenere un’osservazione può essere gravosa (specialmente nel caso in cui le osservazioni anomale siano anche influenti). È sempre saggio riportare i risultati che si otterrebbero con l’inclusione e l’esclusione di queste osservazioni.

Esempio

La figura 7.11 evidenzia l’effetto di una singola osservazione anomala nella regressione dei consumi sul reddito per gli Stati Uniti (il campione introdotto nel paragrafo 7.1). Nel pannello di sinistra il valore anomalo è estremo solo nella direzione della \(y\), visto che la variazione percentuale nei consumi è stata incorrettamente rilevata come -4%. La linea arancione rappresenta la retta di regressione stimata sulla base dei dati che includono l’osservazione anomala, che va confrontata con la linea nera che invece rappresenta la retta di regressione stimata sui dati privati del valore anomalo. Nel pannello di destra (in cui nel calcolo si tiene conto anche del valore anomalo) il valore anomalo è ora estremo nella direzione della \(x\) con un 4% di diminuzione dei consumi che corrisponde ad un incremento del 6% nel reddito. In questo caso il valore anomalo è estremamente influente come testimoniato dal fatto che ora la retta arancione differisce sensibilmente dalla retta nera (stimata escludendo dal calcolo il valore anomalo).

L'effetto delle osservazioni anomale e influenti sulla regressione

Figura 7.11: L’effetto delle osservazioni anomale e influenti sulla regressione

La regressione spuria

Molto più spesso di quanto si creda, le serie storiche sono “non-stazionarie”; ovvero, i valori delle serie storiche non fluttuano attorno ad una media costante o sono caratterizzate da una varianza costante. Ci si occuperà dettagliatamente della stazionarietà delle serie storiche nel Capitolo 9, qui si discuterà solo dell’effetto che dati non stazionari possono avere sui modelli di regressione.

Per esempio, si considerino le due variabili rappresentate in figura 7.12. Queste serie sembrano essere semplicemente legate perché manifestano entrambe un andamento crescente. Tuttavia, il traffico dei passeggeri aerei in Australia non ha nulla a che vedere con la produzione di riso in Guinea.

Serie storiche che manifestano un trend possono apparire legate, come mostrato in questo esempio dove il numero di passeggeri aerei in Australia sono regrediti sulla produzione di riso in Guinea.

Figura 7.12: Serie storiche che manifestano un trend possono apparire legate, come mostrato in questo esempio dove il numero di passeggeri aerei in Australia sono regrediti sulla produzione di riso in Guinea.

La regressione di serie storiche non-stazionarie può portare a regressioni spurie. L’output ottenuto regredendo il numero di passeggeri aerei in Australia sulla produzione di riso in Guinea è mostrato in figura 7.13. L’elevato \(R^2\) e l’elevata autocorrelazione dei residui sono segnali della regressione spuria. Entrambe queste caratteristiche sono presenti nell’output riportato sotto. Nel Capitolo 10 si discuteranno dettagliatamente dei problemi legati ai dati non-stazionari e alla regressione spuria.

Nei casi di regressione spuria si potrebbero ottenere previsioni di breve-periodo apparentemente ragionevoli, ma queste previsioni generalmente non continuano ad essere altrettanto ragionevoli nel futuro.

fit <- aus_airpassengers %>%
  filter(Year <= 2011) %>%
  left_join(guinea_rice, by = "Year") %>%
  model(TSLM(Passengers ~ Production))
report(fit)
#> Series: Passengers 
#> Model: TSLM 
#> 
#> Residuals:
#>    Min     1Q Median     3Q    Max 
#> -5.945 -1.892 -0.327  1.862 10.421 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)    -7.49       1.20   -6.23  2.3e-07 ***
#> Production     40.29       1.34   30.13  < 2e-16 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 3.24 on 40 degrees of freedom
#> Multiple R-squared: 0.958,   Adjusted R-squared: 0.957
#> F-statistic:  908 on 1 and 40 DF, p-value: <2e-16
fit %>% gg_tsresiduals()
Residui di una regressione spuria.

Figura 7.13: Residui di una regressione spuria.