• Non ci sono risultati.

Regressione robusta

3.7 Regressione resistente e robusta

3.7.1 Regressione robusta

35 40 stack loss

predicted stack loss

Figura 3.16: Confronto dei valori osservati della variabile dipendete (in ascissa) con quelli predetti dal modello PPR (cerchi neri) e dal modello additivo generali (crocette rosse) di Sec. 3.6.3. Il modello PPR ha una prestazione nettamente migliore.

3.7.1 Regressione robusta

Uno dei metodi di regressione robusta pi`u comuni `e detto stima M [37]. Si consideri il modello lineare

fittato:

ˆ

yi= Xiβ + ˆˆ εi

dove come di consueto ˆεi (i = 1, . . . , n) sono i residui, Xi `e la i-esima riga della matrice n × (p + 1)

dei p predittori. Lo stimatore M minimizza la funzione obiettivo:

n X i=1 ρ(εi) = n X i=1 ρ(yi− Xiβ) (3.12)

dove la funzione ρ specifica il contributo di ogni residuo al totale generale; in questa notazione porre

ρ(θ) = θ2 corrisponde a utilizzare la tecnica standard dei minimi quadrati.

Derivando la funzione obiettivo rispetto ai coefficienti β e eguagliando a zero i risultati si ottiene un sistema di p + 1 equazioni che permettono di ricavare le stime dei coefficienti:

n

X

i=1

ρ(ˆyi− Xiβ) Xˆ i= 0 (3.13)

Se si definisce la funzione peso w:

wi= w(ˆεi) = ρ

(ˆεi)

ˆ

εi

le equazioni (3.13) possono essere riscritte come:

n

X

i=1

wi (ˆyi− Xiβ) Xˆ i= 0

Dato che i pesi w dipendono dai residui il fit del modello si esegue con tecniche iterative (IRLS, Iterative Reweighted Least Squares) che assumono una stima iniziale dei coefficienti b e si arrestano quando giungono a convergenza.

3.7 Regressione resistente e robusta 53

Per quanto riguarda le funzioni obiettivo due scelte comuni sono lo stimatore di Huber ρHe quello

di Tukey ρB (detto anche stimatore biquadratico o bisquare estimator), definiti come:

ρH(ε) =  1 2ε2 per|ε| ≤ k k|ε| −12k2 per|ε| > k ρB(ε) = ( k2 6  1 − 1 − (εk)23 per|ε| ≤ k k2 6 per|ε| > k (3.14)

k `e una costante che permette di regolare il funzionamento degli stimatori; bassi valori di k producono

stimatori pi`u resistenti alla presenza di outliers ma meno efficienti se gli errori non si discostano

troppo dalla normalit`a. Solitamente si assume k = 1.345σ per ρH e k = 4.687σ per ρB, dove σ `e

la deviazione standard d’errore. Queste scelte portano ad avere una efficienza del 95% rispetto alla tecnica standard dei minimi quadrati quando gli errori sono distribuiti normalmente, ma garantiscono ancora buona protezione dagli outliers. Nella pratica al valore σ si sostituisce una sua stima robusta,

che comunemente `e ˆσ = median(|ˆε|)/0.6745.

Esempio

Per eseguire il fit dei modelli di regressione robusta presentati, in R si utilizza la funzione rlm (Robust Linear Model) disponibile nella libreria standard M ASS. Si consideri ad esempio un impianto chimico che ossida ammoniaca per produrre acido nitrico. Uno dei parametri che regola il funzionamento globale `e la temperatura dell’acqua di raffreddamento. Si vuole capire se la perdita di produzione (in percentuale) dipende da tale temperatura in modo lineare. Dato che ci si attende che alcuni valori si discostino notevolmente dalla retta di regressione (fermate parziali dell’impianto) si fitta sia il modello lineare standard sia due modelli di regressione robusta.

L’analisi inizia con l’inserimento dei dati. Un plot dei valori della perdita di produzione contro la temperatura (Fig. 3.17) rivela la presenza di alcuni outliers, a conferma di quanto atteso teoricamente. > temp <- 20:40

> prod <- c(28.6,27.1,2.6,32.1,33.2,34.7,6.6,37.3,39.9,42.2,43.9,43.0,44.0,

+ 45.3,47.9,47.9,50.1,50.5,54.2,40.3,55.7)

> plot(temp, prod)

Il modello lineare ottenuto con il fit dei minimi quadrati porta a un risultato fortemente distorto, principalmente a causa del punto in corrispondenza del valore temp = 22:

> mod <- lm(prod ~ temp) > summary(mod)

[...]

Coefficients:

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

(Intercept) -12.0991 10.0480 -1.204 0.243

temp 1.6844 0.3283 5.131 5.94e-05 ***

Residual standard error: 9.11 on 19 degrees of freedom

Multiple R-Squared: 0.5808, Adjusted R-squared: 0.5587

Si nota che la stima di σ ottenuta dal fit `e piuttosto elevata.

Per tentare di ovviare alla presenza di outliers si fittano due modelli di regressione robusta con stimatori di Huber e biquadratico. Dato che la funzione rlm di default implementa lo stimatore di Huber, nel primo caso il fit si esegue con la semplice chiamata:

> library(MASS)

> mod.h <- rlm(prod ~ temp) > summary(mod.h, correl=FALSE) Call: rlm(formula = prod ~ temp) Residuals:

20 25 30 35 40 10 20 30 40 50 temp prod

Figura 3.17: Rette di regressione ottenute con il metodo dei minimi quadrati (linea continua) e con un metodo di regressione robusta con stimatore biquadratico (linea tratteggiata). Nel secondo caso l’influenza degli outliers `e evidentemente ridotta.

Min 1Q Median 3Q Max

-29.30876 -0.69884 0.05111 0.71117 2.35121

Coefficients:

Value Std. Error t value

(Intercept) -0.7515 1.6099 -0.4668

temp 1.4100 0.0526 26.8056

Residual standard error: 1.055 on 19 degrees of freedom

L’opzione correl = F ALSE passata alla funzione summary serve a sopprimere l’output della matrice di correlazione fra i coefficienti. Si nota che la stima del coefficiente della temperatura aumenta di circa il 30%, a conferma del fatto che la presenza di outliers distorce il fit standard. Si osservi anche

che la stima di σ diminuisce di circa un ordine di grandezza. Nell’output mancano sia la stima di R2

che di F , oltre che alle inferenze sui coefficienti. Ci`o `e dovuto al fatto che tali quantit`a o non sono

calcolabili (non nel modo consueto) o non hanno lo stesso significato. Date le complessit`a teoriche che si devono affrontare per costruire un intervallo di confidenza per i parametri del modello, il metodo

che viene pi`u frequentemente utilizzato per raggiungere tale scopo fa uso di simulazioni numeriche di

ricampionamento bootstrap (si veda ad esempio [26]).

Come passo successivo si fitta il modello con stimatore biquadratico. L’opzione method =′′M M′′

passata alla funzione rlm utilizza tale stimatore dopo aver determinato un “buon” valore iniziale per i parametri (in questo caso infatti avere un buon punto di partenza `e determinante per la convergenza del modello):

> mod.b <- rlm(prod ~ temp, method="MM") > summary(mod.b, correl=FALSE)

Call: rlm(formula = prod ~ temp, method = "MM") Residuals:

3.7 Regressione resistente e robusta 55

-29.6500 -0.9347 -0.2415 0.4636 2.0568

Coefficients:

Value Std. Error t value

(Intercept) -0.1056 1.3002 -0.0812

temp 1.3983 0.0425 32.9150

Residual standard error: 1.212 on 19 degrees of freedom

Come si vede i risultati dei due fit ottenuti con la funzione rlm sono praticamente identici. In Fig. 3.17 sono confrontati il fit standard e quello con stimatore biquadratico. Le due rette si ottengono con le usuali chiamate:

> abline(mod, col="blue")

> abline(mod.b, col="red", lty=2)

Come regola generale, quando si sospetta che alcuni punti possano distorcere in maniera importante un modello lineare, si procede al fit sia con le tecniche tradizionali sia usando un metodo robusto. Se i due risultati non sono troppo dissimili allora l’uso del modello standard `e giustificato. In caso

contrario le stime ottenute con tecniche robuste risultano pi`u affidabili.