Regressione lineare - Esercizi
Metodi Quantitativi per Economia,
Finanza e Management
Esercitazione n°12
Consegna lavoro di gruppo e
Date appelli
•
Le date per la consegna del lavoro di gruppo sono
inderogabilmente fissate:
–
–
•
lunedì 11 gennaio 2010 entro le ore 12
lunedì 25 gennaio 2010 entro le ore 12
Le date d’esame relative alla sessione invernale sono:
–
–
–
lunedì 18 gennaio 2010
lunedì 1 febbraio 2010
lunedì 15 febbraio 2010
Multicollinearità
Quando un regressore è combinazione lineare di altri
regressori nel modello, le stime sono instabili e hanno
standard error elevato. Questo problema è chiamato
multicollinearità.
La PROC REG fornisce nell’output un indicatore per ogni
regressore per investigare questo problema:
Variance Inflation Factors (opzione VIF nel model
statment).
R2
Multicollinearità
Per verificare la presenza di multicollinearità
• regressione lineare di Xj sui rimanenti p-1 regressori
- Rj² misura la quota di varianza di Xj spiegata dai
rimanenti p-1 regressori  valori alti=multicollin.
- VIFj = 1 / (1 – Rj²) misura il grado di relazione
lineare tra Xj e i rimanenti p-1 regressori  valori
alti= multicollin.
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.95
0.98
0.99
VIF
1.11
1.25
1.43
1.67
2.00
2.50
3.33
5.00
10.00
20.00
50.00
100.00
PROC REG – Sintassi
Modello di regressione lineare
proc reg data=dataset;
model variabile_dipendente=
regressore_1 ... regressore_p
/option(s);
run;
OPTIONS:
• STB calcola i coefficienti standardizzati
• selection=stepwise applica la procedura stepwise per la selezione
dei regressori
• slentry=… livello di significatività richiesto per il test F parziale affinchè
il singolo regressore possa entrare nel modello
• slstay=… livello di significatività richiesto per il test F parziale affinchè
il singolo regressore non sia rimosso dal modello
• VIF per verificare presenza di multicollinearietà
Esempio
L’analisi fattoriale ci permette di risolvere il problema della
multicollinearietà, come?
1° Modello di regressione lineare
•
variabile dipendente= SODDISFAZIONE_GLOBALE,
•
regressori= 21 variabili di soddisfazione (livello di
soddisfazione relativo a tariffe, promozioni, ecc.)
2° Modello di regressione lineare
•
variabile dipendente= SODDISFAZIONE_GLOBALE,
•
6 fattori creati con un’analisi fattoriale sulle 21 variabili di
soddisfazione (livello di soddisfazione relativo a tariffe,
promozioni, ecc.)
Esempio
1° Modello di regressione lineare
Variable
DF
Intercept
CambioTariffa_2
MMSTuoOperatore_2
copertura_2
NoScattoRisp_2
Autoricarica_2
CostoMMS_2
NumeriFissi_2
DurataMinContratto_2
vsPochiNumeri_2
diffusione_2
ComodatoUso_2
ChiarezzaTariffe_2
AccessoWeb_2
AltriOperatori_2
SMSTuoOperatore_2
assistenza_2
immagine_2
ChiamateTuoOperatore_2
Promozioni_2
CostoSMS_2
NavigazioneWeb_2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Parameter Estimates
Paramete Standard t Value Pr > |t| Standardize Variance
r
d
Estimate
Error
Estimate
Inflation
1.05063
0.40052
2.62
0.0093
0
0
0.12034
0.0331
3.64
0.0003
0.19584
1.63324
-0.00139
0.01586
-0.09
0.9303
-0.00425
1.32504
0.06579
0.04557
1.44
0.1503
0.07419
1.48622
-0.02286
0.02539
-0.9
0.3689
-0.04257
1.25835
-0.00947
0.02736
-0.35
0.7295
-0.01698
1.35409
0.00949
0.03211
0.3
0.768
0.01558
1.56654
0.0584
0.03599
1.62
0.1062
0.08448
1.52619
0.03014
0.03124
0.96
0.3358
0.04964
1.49001
-0.01002
0.03212
-0.31
0.7555
-0.01566
1.42001
0.05247
0.05206
1.01
0.3147
0.0565
1.76896
0.06531
0.02891
2.26
0.0249
0.11126
1.36501
0.06117
0.03412
1.79
0.0744
0.10058
1.77144
0.02487
0.05946
0.42
0.6762
0.04024
5.21015
0.06777
0.03564
1.9
0.0586
0.1006
1.57539
0.01755
0.03696
0.47
0.6354
0.02923
2.13318
0.0504
0.04082
1.23
0.2183
0.06798
1.70656
0.01288
0.04614
0.28
0.7803
0.01638
1.9376
0.15362
0.04424
3.47 0.0006
0.21813
2.22145
0.14316
0.0426
3.36
0.0009
0.20717
2.13881
0.02739
0.04167
0.66
0.5117
0.04154
2.24805
-0.04249
0.06017
-0.71
0.4809
-0.06822
5.25292
Alcuni dei VIFj
presentano
valori alti
Multicollinearità
Esempio
2° Modello di regressione lineare
Variable
DF
Intercept
Factor1
Factor2
Factor3
Factor4
Factor5
Factor6
1
1
1
1
1
1
1
Parameter
Estimate
6.49839
0.51102
0.437
0.06409
0.69395
0.24529
0.32203
Parameter Estimates
Standard
t Value Pr > |t| Standardized Variance
Inflation
Error
Estimate
0
0.05783 112.38 <.0001
0
1.00
0.05838
8.75 <.0001
0.37142
1.00
0.05822
7.51 <.0001
0.31847
1.00
0.05821
1.1
0.272
0.04672
1.00
0.05813
11.94 <.0001
0.50651
1.00
0.05833
4.2 <.0001
0.17843
1.00
0.05782
5.57 <.0001
0.23622
•L’analisi fattoriale ci permette di trasformare i regressori in
componenti non correlate e risolvere il problema della
multicollinearità. Tutti i Variance Inflation Factors sono
uguali a 1, cioè l’Rj² della regressione lineare di Xj sui
rimanenti p-1 regressori è pari a zero.
Osservazioni influenti

Se un valore yj è particolarmente inusuale rispetto a tutti
gli altri allora la stima del modello di regressione può
essere notevolmente influenzata da tale osservazione.

Per valutare la presenza di osservazioni influenti si elimina
una osservazione per volta e si stima nuovamente il
modello.

Osservazioni la cui esclusione produce variazioni rilevanti
nelle stime dei coefficienti sono dette influenti
Statistiche di influenza
Una misura di influenza è rappresentata dalla Distanza di
Cook che misura la distanza tra la stima dei coefficienti
senza l’i-esima osservazione e con l’i-esima osservazione.
Di 
yˆ  yˆ (i )
2
pˆ 2
→Le unità per cui Di > 1 sono potenzialmente
osservazioni influenti
Statistiche di influenza
ε̂ i  yi  ŷi
Var( ε̂ i )  σ 2 (1  h ii )
Un’altra misura di influenza è rappresentata dal Leverage H
che misura quanto un’osservazione è lontana dal centro dei
dati.
→Leverage alto per i-esima oss implica che la correlazione tra Yi e
il suo valore previsto è quasi 1Yi ha forte influenza sulla stima
del suo valore previsto. Se il valore è piccolo vuol dire che ci sono
tante oss che contribuiscono alla stima del valore previsto.
Un’oss con alto leverage fa spostare di tanto la retta stimata.
→Le unità per cui Hi>2*(p+1)/n sono potenzialmente
osservazioni influenti [dove p è il numero di regressori e n il numero di osservazioni]
N.B. Tende a segnalare troppe oss influenti e tratta tutti i regressori
nello stesso modo!
Statistiche di influenza
Plot delle statistiche di influenza  attenzione alle
osservazioni nel quadrante in alto a destra
D
INFLUENTI - D
INFLUENTI – SIA D CHE LEVERAGE H
INFLUENTI - LEVERAGE H
lev H
Statistiche di influenza
Sintassi
La PROC REG fornisce nell’output i valori della
distanza di Cook e del levarage H per ogni
osservazione del dataset:
proc reg data=dataset;
model variabile_dipendente=
regressore_1 ... regressore_p
/ influence r;
output out=dataset_output cookd=cook H=leverage;
run;
OPTIONS:
• Influence e r forniscono una serie di indicatori di influenza tra cui D e H
• Cookd= crea nel dataset di output una variabile con i valori della
Distanza di Cook per ogni osservazione
• H= crea nel dataset di output una variabile con i valori del Leverage
per ogni osservazione
Esempio
•
Il data set AZIENDE contiene informazioni relative
ai comportamenti di 500 clienti del segmento
Aziende di una banca.
•
L’obiettivo è stimare il margine totale del cliente
Esempio
1. Modello di regressione lineare usando come
variabile dipendente il margine totale del cliente e
come regressori le 66 variabili contenute nel data
set
2. Procedura di selezione automatica delle variabili
(stepwise)
3. Valutazione della bontà del modello
4. Analisi di influenza
5. Eliminazione delle osservazioni influenti
6. Ristima del modello con procedura di selezione
automatica delle variabili
7. Valutazione della bontà del modello
Esempio
Output regressione stepwise :
Parameter Estimates
Variable
Label
Parameter
Standard
Estimate
Error
t Value
Pr > |t|
Standardized
Estimate
1
-149.2749
84.6517
-1.76
PROFT_T1
Reddività totale al T1
1
1.70328
0.02438
69.85 <.0001
0.88285
_cs_np12
Possesso Risparmio
Gestito
N. Prodotti Conto
Corrente
Raccolta diretta al T1
1
803.64053
184.38473
4.36 <.0001
0.03096
1
171.16171
60.96896
2.81 0.0052
0.02176
1
-0.0038
0.00083562
Numero Medio Bonifici
Entrata+Uscita
Scost. Ass N. Prod.
Cross Selling
C.Correnti - Numero
movimenti
C.Correnti - Saldo
Contabile Medio Avere
C.Correnti - Saldo
Contabile Medio Dare
Estero: Anticipi in Euro
Import
Portafoglio: Valore Effetti
non scaduti
Portafoglio: Valore Effetti
scaduti
1
-6.18124
2.11413
1
-165.10376
22.12247
-7.46 <.0001
-0.05213
1
7.75747
1.59384
4.87 <.0001
0.07754
1
0.00837
0.00137
6.11 <.0001
0.10111
1
0.00617
0.00101
6.13 <.0001
0.07593
1
0.02729
0.00969
2.82 0.0051
0.02084
1
-0.00645
0.00145
1
0.01127
0.00305
Intercept
cs_np01
racc_dir_t1
sbon1
scanumt2
sccnmov1
sccvsma1
sccvsmd1
sesinae1
spovnsc1
spovsca1
Intercept
DF
0.0785
0
-4.55 <.0001
-0.07592
-2.92
-0.04454
0.0036
-4.44 <.0001
3.69 0.0002
proc reg data=corso.aziende;
model tot_margine= lista 66 regressori
/stb selection= stepwise slentry=0.01 slstay=0.01;
run;
-0.04738
0.04086
Esempio
Output analisi influenza :
Distanza di Cook>1 e Leverage >0.052 =2*(12+1)/500
proc reg data=corso.aziende;
model tot_margine= lista 12 regressori /stb influence ;
output out=aziende_out cookd=cook H=leverage;
run;
→ oss influente
Esempio
Come si individuano e eliminano le osservazioni influenti
(quelle con Distanza di Cook>1 e Leverage >0.052)?
1. Si esporta il data set aziende_out in excel,
2. si verifica la presenza di osservazioni influenti (vedi aziende_out.xls),
3. se ce ne sono si fa una copia del file chiamandolo aziende_new.xls dove
si eliminano le osservazioni influenti
4. si importa il nuovo data set in SAS.
Esempio
In alternativa in SAS:
/*Creazione dei flag per individuare le osservazioni
con valori di distanza di cook o valori di leverage sopra soglia: */
data aziende_out;
set aziende_out;
if cook>1 then flag_cook=1;
else flag_cook=0;
if leverage>2*(12+1)/500 then flag_leverage=1;
else flag_leverage=0;
run;
/*Quante sono le osservazioni influenti? con distanza di cook>1 e leverage >0.052: */
proc freq data=aziende_out;
tables flag_cook*flag_leverage;
run;
/*Esclusione delle osservazioni influenti*/
data corso.aziende_new;
set aziende_out;
if flag_cook=1 and flag_leverage=1 then delete;
run;
Esportazione
Esportazione guidata di
un file SAS in un file
excel
Esempio
Output ristima coefficienti di regressione al netto della
osservazione influente :
Parameter Estimates
Variable
Label
Intercept
PROFT_T1
_cs_np12
Intercept
Reddività totale al T1
Possesso Risparmio
Gestito
Raccolta diretta al T1
Scost. Ass N. Prod.
Cross Selling
C.Correnti - Numero
movimenti
C.Correnti - Saldo
Contabile Medio Avere
C.Correnti - Saldo
Contabile Medio Dare
Estero: Anticipi in Euro
Import
Estero: Operatività Totale
racc_dir_t1
scanumt2
sccnmov1
sccvsma1
sccvsmd1
sesinae1
sesoptot1
DF Parameter
Estimate
13.02789
1
1.72412
1
811.93397
1
Standard t Value Pr > |t| Standardized
Error
Estimate
53.52084
0.24 0.8078
0
0.02464
69.98 <.0001
0.89474
184.46258
4.4 <.0001
0.03174
1
1
-0.00282
-158.54071
0.00067655
21.75354
-4.17 <.0001
-7.29 <.0001
-0.05604
-0.0508
1
7.30311
1.21192
6.03 <.0001
0.05551
1
0.00729
0.00121
6.04 <.0001
0.08317
1
0.00457 0.00081505
5.61 <.0001
0.05708
1
0.04441
0.01022
4.35 <.0001
0.03441
1
-0.00662
0.00206
-3.21 0.0014
-0.02624
proc reg data=aziende_new;
model tot_margine= lista 66 regressori
/stb selection= stepwise slentry=0.01 slstay=0.01;
run;
N.B.: aziende_new è lo stesso dataset iniziale SENZA l’osservazione influente
E la multicollinearità?
La valutazione della bontà del modello ha dato un esito più
che positivo
Sono state eliminate le osservazioni influenti che
producevano variazioni rilevanti nelle stime dei minimi
quadrati.
ATTENZIONE!! E’ necessario controllare anche la
presenza di multicollinearità che porta a stime instabili con
standard error elevato.
E la multicollinearità?
Parameter Estimates
Variable
Intercept
PROFT_T1
_cs_np12
racc_dir_t1
scanumt2
sccnmov1
sccvsma1
sccvsmd1
sesinae1
sesoptot1
Label
DF Parameter Standard t Value Pr > |t| Standardiz Variance
ed
Estimate
Error
Estimate
Inflation
Intercept
13.02789
53.52084
0.24 0.8078
0
0
1
Reddività totale al T1
1.72412
0.02464
69.98 <.0001
0.89474 3.46725
1
Possesso Risparmio Gestito
811.93397 184.46258
4.4 <.0001
0.03174 1.10266
1
Raccolta diretta al T1
-0.00282 0.00067655
-4.17 <.0001
-0.05604
3.83293
1
Scost. Ass N. Prod. Cross Selling 1 -158.54071
21.75354
-7.29 <.0001
-0.0508
1.03037
C.Correnti - Numero movimenti
C.Correnti - Saldo Contabile
Medio Avere
C.Correnti - Saldo Contabile
Medio Dare
Estero: Anticipi in Euro Import
Estero: Operatività Totale
1
1
7.30311
0.00729
1.21192
0.00121
6.03 <.0001
6.04 <.0001
0.05551
0.08317
1.79962
4.01959
1
0.00457 0.00081505
5.61 <.0001
0.05708
2.1947
4.35 <.0001
-3.21 0.0014
0.03441
-0.02624
1.32917
1.41794
1
1
0.04441
-0.00662
proc reg data=aziende_new;
model tot_margine= lista 9 regressori
/stb vif ;
run;
0.01022
0.00206
Scarica

run - My LIUC