Regressione lineare
Metodi Quantitativi per Economia,
Finanza e Management
Esercitazione n° 8
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;
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
→ oss influente
proc reg data=corso.aziende;
model tot_margine= lista 12 regressori /stb influence ;
output out=corso.aziende_out cookd=cook H=leverage;
run;
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.
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
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 /VIF;
run;
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.
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à
Modello di regressione lineare : step di analisi
•
Stimare un modello di regressione lineare utilizzando la procedura
automatica di selezione delle variabili (stepwise)
•
Controllare la bontà del modello (R-square, Test F)
•
Controllare la significatività dei singoli coefficienti (Test t)
•
Analisi di influenza, eventualmente ristimare il modello senza le
osservazioni influenti e controllarne la bontà
•
Verificare la presenza di multicollinearità (se i regressori del modello
sono i fattori di un’analisi fattoriale, risultano non correlati per
costruzione  tutti i VIFj =1)
•
Impatto dei regressori nella spiegazione del fenomeno (ordinarli
usando il valore assoluto dei coefficienti standardizzati e controllare il
segno dei coefficienti)
•
Interpretazione del coefficienti standardizzati
Esercizio
Il dataset ct_telefonia.sas7bdat contiene i dati di 382 clienti
di una compagnia telefonica e 23 variabili quantitative
#
Variable
Descrizione
1
Ammontare delle ricariche bonus
2
.AMMONT_RICARICA_PAG
3
AMMONT_RICARICA_PAG_LOTTO
Ammontare delle ricariche effettuate tramite circuito lotto sisal
4
AMMONT_RICARICA_RICORRENTE
Ammontare delle ricariche ricorrenti
5
ANZIANITA_SIM
Anzianità della Sim espressa in mesi
6
BYTE_TOT
Byte utilizzati negli ultimi 6 mesi
7
CONTATTI_INBOUND
Numero di volte in cui il call center della compagnia ha contattato il cliente negli ultimi 6 mesi
8
CONTATTI_OUTBOUND
Numero di volte in cui il cliente ha contattato il call center della compagnia negli ultimi 6 mesi
9
MINUTI_VOCE_FREE
Minuti voce free effettuati dal cliente negli ultimi 6 mesi
AMMONT_RICARICA_BONUS
Ammontare delle ricariche pagate dal cliente
10 MINUTI_VOCE_ITZ
Minuti voce verso direttrici internazionali effettuati dal cliente negli ultimi 6 mesi
11 MINUTI_VOCE_OFFNET
12 MINUTI_VOCE_ONNET
Minuti voce offnet (non verso SIM appartenenti alla compagnia) effettuati dal cliente negli ultimi 6 mesi
Minuti voce onnet (verso SIM appartenenti alla compagnia) effettuati dal cliente negli ultimi 6 mesi
13 MINUTI_VOCE_RF
Minuti voce effettuati dal cliente verso rete fissa negli ultimi 6 mesi
14 NUMERO_RICARCIHE_BONUS
Numero di ricariche bonus ricevute negli ultimi 6 mesi
15 NUMERO_RICARICHE_RICORRENTI Numero di ricariche ricorrenti effettuate negli ultimi 6 mesi
16 OPZ_ATTIVE
Numero di opzioni attive
17 RECENZA_CAMBIO_PIANO
Mesi trascorsi dall'ultimo cambio piano
18 REC_CONT_INBOUND
Mesi trascorsi dall'ultima volta in cui il call center ha contattato il cliente
19 REC_CONT_OUTBOUND
Mesi trascorsi dall'ultima volta in cui il cliente ha contattato il call center
20 SIM_ATTIVE
Numero di SIM attive associate allo stesso cliente
21 SMS_FREE
Numero di SMS gratuiti inviati dal cliente
22 arpu
23 eta_customer
Valore Arpu: ricavi medi ottenuti mensilmente per ciascun utente
Eta del cliente
Esercizio
1. Allocare una libreria che punti alla cartella in cui si è salvato il
dataset.
2. Stimare un modello di regressione lineare utilizzando come
variabile dipendente il valore dell’Arpu e come potenziali
regressori tutte le altre variabili presenti nel dataset. Utilizzare
l’opzione di stepwise (ed i relativi livelli di significatività), calcolare i
coefficienti standardizzati.
a. Il valore dell’R-quadro è soddisfacente?
b. Cosa possiamo affermare osservando i dati
relativi al test F e ai test t?
c. Quale regressore influenza maggiormente la variabile
dipendente.
d. Se la variabile MINUTI_VOCE_OFFNET aumenta di un’unità
cosa succede alla variabile dipendente? E se diminuisce?
Esercizio
3.
Sono presenti osservazioni influenti?
4. Esiste un problema di multicollinearità?
In base ai livelli di significatività che scegliete (0.01, 0.05 oppure 0.1) i
risultati cambiano.
Esercizio
Regressori da utilizzare:
BYTE_TOT
CONTATTI_INBOUND
CONTATTI_OUTBOUND
REC_CONT_INBOUND
REC_CONT_OUTBOUND
ANZIANITA_SIM
SIM_ATTIVE
OPZ_ATTIVE
MINUTI_VOCE_FREE
MINUTI_VOCE_ITZ
MINUTI_VOCE_OFFNET
MINUTI_VOCE_ONNET
MINUTI_VOCE_RF
SMS_FREE
RECENZA_CAMBIO_PIANO
AMMONT_RICARICA_BONUS
AMMONT_RICARICA_PAG
AMMONT_RICARICA_PAG_LOTTO
AMMONT_RICARICA_RICORRENTE
NUMERO_RICARICHE_BONUS
NUMERO_RICARICHE_RICORRENTI
ETA_CUSTOMER
Scarica

1° Modello di regressione lineare