Le assunzioni del modello lineare

In un articolo precedente abbiamo descritto la meccanica di un modello lineare. Come accennato, questi modelli sono costruiti su quattro assunzioni (because there’s no free lunch):

  • Normalità degli errori \epsilon_{i}
  • Deviazione standard degli errori costante
  • Indipendeza degli errori
  • Linearità della relazione tra la risposta e le variabili indipendenti

La violazione di questi requisiti causa conseguenze più o meno gravi sull’affidabilità del modello. Tuttavia, grazie a vari test, è possibile identificare e controllare se tali violazioni esistano. Nei paragrafi seguenti si illustrerà come eseguire questi test con R e la relativa matematica sottostante.

Da tenere a mente: gli errori di un modello sono definiti come:

\epsilon_{i} = y_{i} - \hat{y}_{i}

dove:

  • y_{i}: è il valore della risposta osservato.
  • \hat{y}_{i}: è il valore della risposta predetto dal modello.

Solitamente, per controllare queste assunzioni, gli errori devono essere standardizzati, ossia ridotti a seguire una distribuzione Normale con media 0 e dev standard uguale ad 1.

r_{i}^{s} = \frac{r_{i}}{\sqrt{s^{2}(1-h_{i,i})}}

h_{i,i} è la diagonale di una matrice, chiamata design matrix. Lasciamola da parte: l’importante è ricordarsi che gli errori standardizzati dovrebbero (se tutte le assunzioni sono rispettate) seguire una N(0,1).

Normalità

Gli errori dovrebbero essere approssimativamente distribuiti secondo una Normale con media zero e deviazione standard \sigma. Per controllare questa assunzione possiamo sia fare un test visivo che numerico.

Il test visivo consiste nel creare un QQ Plot, ossia raffigurare gli errori standardizzati contro un campione casuale di una N(0,1): se gli errori sono Normalmente distribuiti, essi devono posizionarsi sulla diagonale del piano:

Sinistra: errori distribuiti secondo N(0,1). Destra: normalità pesantemente violata.

Come test numerico invece, esistono numerose alternative (e siete liberi di procedere come meglio preferite). Per quanto mi riguarda uso (quasi) sempre il Shapiro-Wilk dove H0 è ‘Normalità rispettata’. In R:

shapiro.test(residuals(linearModel))

dove shapiro.test() è la funzione del test vera e propria e residuals(linearModel)) calcola gli errori per il nostro modello lineare.

La normalità tuttavia non è un’assunzione critica; violazioni minime possono essere comunque considerate accettabili.

Linearità

Per un modello lineare semplice, deve esistere una relazione lineare tra ogni variabile indipendente e quella dipendente. Per controllarla, basta un grafico della variabile in questione contro la dipendente: i punti devono posizionarsi in lungo una linea retta.

Omoschedasticità

Ossia varianza degli errori costante (chiamarla omoschedasticità però vi farà sembrare molto più professionali). Per controllarla, è necessario il test di Breusch-Pagan, dove H0 è ‘omoscedasticità rispettata’.

In R: ncvTest(linearModel)

Varianza degli errori costante è un’assunzione critica per un modello statistico: se non è rispettata può portarci a concludere che alcune variabili indipendenti siano utili per spiegare la dipendente, quando in realtà non lo sono. Ossia, ci può portare a trarre conclusioni errate sulle relazioni tra le variabili. Per risolvere questo problema, bisognerà abbandonare il modello lineare semplice per avventurarsi con qualche altro strumento (un GLS per esempio).

Indipendenza

Per indipendenza si intende che l’errore non deve essere correlato all’errore i + 1. Per controllarla, anche in questo caso, è possibile eseguire un test: il Durbin-Watson.

In R si esegue cosí durbinWatsonTest(linearModel). 

L’indipendenza è un’altra assunzione critica. Come per l’omoschedasticità, violazioni possono portare a erronee stime delle deviazioni standard, con conseguenti errori nei test di significatività. Un GLS potrebbe di nuovo essere una soluzione.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.