Regressione lineare
Metodi Quantitativi per Economia,
Finanza e Management
Esercitazione n°8
Regressione lineare - Modello
Modello di regressione lineare
• si vuole modellare una relazione di tipo lineare tra una
variabile dipendente e un insieme di regressori che si
ritiene influenzino la variabile dipendente
• si vuole approssimare la nuvola dei punti osservati (ogni
punto rappresenta un intervistato) con una retta
• tra tutte le infinite rette possibili si stima la retta che
fornisce l’interpolazione migliore
• stimare la migliore retta di regressione significa calcolare
una stima dei coefficienti associati ai regressori che
entrano nel modello (tutto ciò con il vincolo di minimizzare
gli errori di approssimazione)
Regressione lineare – Analisi
preliminari
Prima di stimare il modello
• costruire variabili dummy se necessario (ossia se si
vogliono utilizzare variabili qualitative nominali come
regressori)
• valutare il coefficiente di correlazione lineare (PROC
CORR) tra la variabile dipendente e tutti i potenziali
regressori
• valutare la presenza di multicollinearità tra i regressori
(PROC CORR per analizzare la matrice di correlazione tra
i regressori che entrano nel modello)
Regressione lineare – Selezione
regressori
Scelta dei regressori che entrano nel modello
• selezione a priori di un sottoinsieme di regressori (ad es.
si scelgono le variabili con valori alti del coefficiente di
correlazione lineare con la variabile dipendente. PROC
REG senza opzioni di selezione variabili)
• metodo di selezione automatica (PROC REG con opzione
STEPWISE)
Regressione lineare – Regressione
stepwise
Procedura sequenziale che valuta l’ingresso/uscita dal modello dei singoli
regressori (in base a indicatori legati all’R-quadro)
•
•
•
•
•
Step 0si considera un insieme di potenziali regressori
Step 1entra il primo regressore. Ossia, viene stimato un modello contenente
un unico regressore tra quelli proposti (il regressore che spiega meglio la
variabilità della variabile dipendente)
Step 2si valutano tutti i possibili modelli contenenti il regressore individuato
allo step 1 e uno dei rimanenti regressori, e si tiene il modello con il fit migliore
(ossia entra il regressore che dà il contributo maggiore alla spiegazione della
variabilità)
Step 3come nello step 2, entra il regressore che dà il contributo maggiore
alla spiegazione della variabilità
Step 4si valuta l’uscita di ognuno dei regressori presenti (in base alla minor
perdita di capacità esplicativa del modello) e l’ingresso di un nuovo regressore
(in base al maggior incremento nella capacità esplicativa del modello)
La procedura continua con l’ingresso/uscita dei regressori fino a quando non si
può più migliorare la capacità esplicativa del modello.
Regressione lineare –
Interpretazione coefficienti
Il coefficiente beta (output della PROC REG) associato ad
uno specifico regressore X ha il seguente significato
Y   0   1 X 1   2 X 2  ...  pXp  
• se X aumenta/diminuisce di una unità (e tutti gli altri
regressori rimangono invariati) allora
1) se il coefficiente è positivo Y aumenta/diminuisce di
una percentuale pari al valore del coefficiente
2) se il coefficiente è negativo Y diminuisce/aumenta
di una percentuale pari al valore del coefficiente
• in genere si considerano i coefficienti standardizzati
(opzione STB della PROC REG) che non sono influenzati
dall’unità di misura delle variabili
Regressione lineare – Valutazione
modello
Valutazione della bontà del modello (output della PROC
REG)
• coefficiente di determinazione R-quadro per valutare la
capacità del modello di rappresentare la relazione tra la
variabile dipendente e i regressori (tra 0 e 1, quanto più si
avvicina ad 1 tanto migliore è il modello)
• test t per valutare la significatività dei singoli coefficienti
(se p-value del test piccolo allora si rifiuta l’ipotesi di
coefficiente nullo  il regressore corrispondente è
rilevante per la spiegazione della variabile dipendente)
PROC REG – Sintassi
Modello di regressione lineare – k regressori
specificati a priori
proc reg data= dataset;
model variabile dipendente=
regressore_1
.
.
.
regressore_k
/option(s);
run;
OPTIONS:
• /stb calcola i coefficienti standardizzati
• /selection=stepwise applica la procedura stepwise per la selezione
dei regressori
PROC REG – Esempio 1
Variabile dipendente e regressori
Nome variabile
soddisfazione_globale
AccessoWeb_2
AltriOperatori_2
assistenza_2
Autoricarica_2
CambioTariffa_2
ChiamateTuoOperatore_2
ChiarezzaTariffe_2
ComodatoUso_2
copertura_2
CostoMMS_2
CostoSMS_2
diffusione_2
DurataMinContratto_2
immagine_2
MMSTuoOperatore_2
NavigazioneWeb_2
NoScattoRisp_2
NumeriFissi_2
Promozioni_2
SMSTuoOperatore_2
vsPochiNumeri_2
Livello di
Livello di
Livello di
Livello di
Livello di
Descrizione variabile
soddisfazione globale relativo al telefono cellulare
soddisfazione relativo al costo di accesso a internet
soddisfazione relativo ai costi verso altri operatori
soddisfazione relativo al servizio di assistenza
soddisfazione relativo alla possibilità di autoricarica
Livello di soddisfazione relativo alla facilità di cambiamento della tariffa
Livello di soddisfazione relativo alla possibilità di effettuare chiamate a
costi inferiori verso numeri dello stesso operatore
Livello di soddisfazione relativo alla chiarezza espositiva delle tariffe
Livello di soddisfazione relativo alla possibilità di rivecere un cellulare in
comodato d'uso
Livello di soddisfazione relativo alla copertura della rete
Livello di soddisfazione relativo al costo degli MMS
Livello di soddisfazione relativo al costo degli SMS
Livello di soddisfazione relativo alla diffusione
Livello di soddisfazione relativo alla presenza di una durata minima del
contratto
Livello di soddisfazione relativo all'immagine
Livello di soddisfazione relativo alla possibilità inviare MMS a costi
inferiori verso numeri dello stesso operatore
Livello di soddisfazione relativo al costo di navigazione in internet
Livello di soddisfazione relativo all'assenza di scatto alla risposta
Livello di soddisfazione relativo alle agevolazioni verso numeri fissi
Livello di soddisfazione relativo alla possibilità di attivare promozioni
sulle tariffe
Livello di soddisfazione relativo alla possibilità inviare SMS a costi
inferiori verso numeri dello stesso operatore
Livello di soddisfazione relativo alle agevolazioni verso uno o più numeri
di telefono
PROC REG – Esempio 1
Modello di regressione lineare variabile dipendente=
SODDISFAZIONE_GLOBALE, regressori= 21 variabili di
soddisfazione (livello di soddisfazione relativo a tariffe,
promozioni, ecc.)
VARIABILE DIPENDENTE
proc reg data= corso.telefonia;
model soddisfazione_globale=
CambioTariffa_2 ChiarezzaTariffe_2
/stb;
run;
opzione per ottenere i
coefficienti standardizzati
REGRESSORI
…
PROC REG – Output esempio 1
attenzioneper stimare il modello SAS non
utilizza i record con valori mancanti
Number of Observations Read
Number of Observations Used
Number of Observations with Missing Values
Root MSE
Dependent Mean
Coeff Var
236
235
1
0.88085
6.49362
13.56492
R-Square
Adj R-Sq
0.6216
0.5843
il modello è abbastanza buono (spiega il 62%
della variabilità della variabile dipendente)
PROC REG – Output esempio 1
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
Parameter Standard
t Value
Estimate
Error
1.05063
0.40052
2.62
0.12034
0.0331
3.64
-0.00139
0.01586
-0.09
0.06579
0.04557
1.44
-0.02286
0.02539
-0.9
-0.00947
0.02736
-0.35
0.00949
0.03211
0.3
0.0584
0.03599
1.62
0.03014
0.03124
0.96
-0.01002
0.03212
-0.31
0.05247
0.05206
1.01
0.06531
0.02891
2.26
0.06117
0.03412
1.79
0.02487
0.05946
0.42
0.06777
0.03564
1.9
0.01755
0.03696
0.47
0.0504
0.04082
1.23
0.01288
0.04614
0.28
0.15362
0.04424
3.47
0.14316
0.0426
3.36
0.02739
0.04167
0.66
-0.04249
0.06017
-0.71
Pr > |t|
0.0093
0.0003
0.9303
0.1503
0.3689
0.7295
0.768
0.1062
0.3358
0.7555
0.3147
0.0249
0.0744
0.6762
0.0586
0.6354
0.2183
0.7803
0.0006
0.0009
0.5117
0.4809
Standardized
Estimate
0
0.19584
-0.00425
0.07419
-0.04257
-0.01698
0.01558
0.08448
0.04964
-0.01566
0.0565
0.11126
0.10058
0.04024
0.1006
0.02923
0.06798
0.01638
0.21813
0.20717
0.04154
-0.06822
coefficienti significativiregressori rilevanti per la spiegazione
del fenomeno
PROC REG – Output esempio 1
Parameter Estimates
Variable
DF
Parameter Standard
t Value
Estimate
Error
Intercept
1
1.05063
0.40052
2.62
CambioTariffa_2
1
0.12034
0.0331
3.64
MMSTuoOperatore_2
1
-0.00139
0.01586
-0.09
copertura_2
1
0.06579
0.04557
1.44
NoScattoRisp_2
1
-0.02286
0.02539
-0.9
Autoricarica_2
1
-0.00947
0.02736
-0.35
CostoMMS_2
1
0.00949
0.03211
0.3
NumeriFissi_2
1
0.0584
0.03599
1.62
DurataMinContratto_2
1
0.03014
0.03124
0.96
se la variabile NoScattoRisp_2 aumenta
vsPochiNumeri_2
1
-0.01002
0.03212
-0.31
(diminuisce) di una unità allora la soddisfazione
diffusione_2
1
0.05247
0.05206
1.01
globale diminuisce (aumenta) del 4%
ComodatoUso_2
1
0.06531
0.02891
2.26
ChiarezzaTariffe_2
1
0.06117
0.03412
1.79
AccessoWeb_2
1
0.02487
0.05946
0.42
AltriOperatori_2
1
0.06777
0.03564
1.9
SMSTuoOperatore_2
1
0.01755
0.03696
0.47
assistenza_2
1
0.0504
0.04082
1.23
immagine_2
1
0.01288
0.04614
0.28
ChiamateTuoOperatore_2
1
0.15362
0.04424
3.47
Promozioni_2
1
0.14316
0.0426
3.36
CostoSMS_2
1
0.02739
0.04167
0.66
NavigazioneWeb_2
1
-0.04249
0.06017
-0.71
Pr > |t|
0.0093
0.0003
0.9303
0.1503
0.3689
0.7295
0.768
0.1062
0.3358
0.7555
0.3147
0.0249
0.0744
0.6762
0.0586
0.6354
0.2183
0.7803
0.0006
0.0009
0.5117
0.4809
Standardized
Estimate
0
0.19584
-0.00425
0.07419
-0.04257
-0.01698
0.01558
0.08448
0.04964
-0.01566
0.0565
0.11126
0.10058
0.04024
0.1006
0.02923
0.06798
0.01638
0.21813
0.20717
0.04154
-0.06822
se la variabile CambioTariffa_2 aumenta (diminuisce) di una
unità allora la soddisfazione globale aumenta (diminuisce) del
20%
PROC REG – Esempio 2
Scelta dei regressori utili alla spiegazione della
SODDISFAZIONE_GLOBALE sulla base del coefficiente di
correlazione lineare con la variabile dipendente e analisi della
multicollinearità.
scelta dei regressori
proc corr data= corso.telefonia;
var soddisfazione_globale;
with CambioTariffa_2 SMSTuoOperatore_2 … ;
run;
analisi multicollinearità
regressori candidati: 21 variabili di soddisfazione
proc corr data= corso.telefonia;
var CambioTariffa_2 ChiarezzaTariffe_2 …;
run;
regressori selezionati (quelli con coeff correlaz lineare elevato)
PROC REG – Esempio 2
Regressione di SODDISFAZIONE_GLOBALE sull’insieme
di 8 regressori scelti a priori sulla base del coefficiente di
correlazione lineare.
stima del modello di regressione
proc reg data= corso.telefonia;
model soddisfazione_globale=
CambioTariffa_2 ChiarezzaTariffe_2
AltriOperatori_2 SMSTuoOperatore_2
Assistenza_2 ChiamateTuoOperatore_2
Promozioni_2 CostoSMS_2
/stb;
run;
regressori selezionati in base al coefficiente di correlaz lineare
PROC CORR - Scelta regressori - Output esempio 2
CambioTariffa_2
CambioTariffa_2
MMSTuoOperatore_2
MMSTuoOperatore_2
copertura_2
copertura_2
NoScattoRisp_2
NoScattoRisp_2
Autoricarica_2
Autoricarica_2
CostoMMS_2
CostoMMS_2
NumeriFissi_2
NumeriFissi_2
DurataMinContratto_2
DurataMinContratto_2
vsPochiNumeri_2
vsPochiNumeri_2
diffusione_2
diffusione_2
ComodatoUso_2
ComodatoUso_2
Pearson Correlation Coefficients
Prob > |r| under H0: Rho=0
Number of Observations
soddisfazione_globale
soddisfazione_globale
0.55638
0.5014
ChiarezzaTariffe_2
<.0001 ChiarezzaTariffe_2
<.0001
235
235
0.20027
0.15544
AccessoWeb_2
0.002 AccessoWeb_2
0.0171
235
235
0.30879
0.43996
AltriOperatori_2
<.0001 AltriOperatori_2
<.0001
235
235
0.1361 SMSTuoOperatore_2
0.46648
0.0371 SMSTuoOperatore_2
<.0001
235
235
0.26927
0.42899
assistenza_2
<.0001 assistenza_2
<.0001
235
235
0.22365
0.36016
immagine_2
0.0006 immagine_2
<.0001
235
235
0.36509 ChiamateTuoOperatore_2
0.57824
<.0001 ChiamateTuoOperatore_2
<.0001
235
235
0.29973
0.60634
Promozioni_2
<.0001 Promozioni_2
<.0001
235
235
0.33324
0.43441
CostoSMS_2
<.0001 CostoSMS_2
<.0001
235
235
0.32321
0.13071
NavigazioneWeb_2
<.0001 NavigazioneWeb_2
0.0453
235
235
0.25317
coeff correlaz lineare>=0.5
<.0001
coeff correlaz lineare>=0.4
235
PROC CORR – Analisi multicollinearità Output esempio 2
Pearson Correlation Coefficients, N = 236
CambioTar Chiarezza AltriOperat SMSTuoO assistenza ChiamateT Promozion CostoSMS
iffa_2
Tariffe_2
ori_2
peratore_2
_2
uoOperato
i_2
_2
re_2
CambioTar
1
0.41856
0.33324
0.25611
0.34255
0.4098
0.49403
0.31947
iffa_2
Chiarezza
0.41856
1
0.36892
0.29734
0.3176
0.32382
0.55166
0.30541
Tariffe_2
AltriOperat
0.33324
0.36892
1
0.31469
0.19209
0.26941
0.37051
0.28354
ori_2
SMSTuoO
0.25611
0.29734
0.31469
1
0.19893
0.56586
0.37221
0.58255
peratore_2
assistenza
0.34255
0.3176
0.19209
0.19893
1
0.27931
0.40113
0.15707
_2
ChiamateT
0.4098
0.32382
0.26941
0.56586
0.27931
1
0.43619
0.52141
uoOperato
re_2
Promozion
0.49403
0.55166
0.37051
0.37221
0.40113
0.43619
1
0.27395
i_2
CostoSMS
0.31947
0.30541
0.28354
0.58255
0.15707
0.52141
0.27395
1
_2
PROC REG – Output esempio 2
attenzioneper stimare il modello SAS non
utilizza i record con valori mancanti
Number of Observations Read
Number of Observations Used
Number of Observations with Missing Values
Root MSE
Dependent Mean
Coeff Var
236
235
1
0.88904
6.49362
13.69104
R-Square
Adj R-Sq
0.591
0.5765
il modello è abbastanza buono ma non del tutto
soddisfacente (R-quadro più basso di prima
perché ci sono meno regressori)
PROC REG – Output esempio 2
Variable
Intercept
CambioTariffa_2
ChiarezzaTariffe_2
AltriOperatori_2
SMSTuoOperatore_2
assistenza_2
ChiamateTuoOperatore_2
Promozioni_2
CostoSMS_2
Parameter Estimates
DF Parameter Standard t Value
Estimate
Error
1.82201
0.28363
6.42
1
0.11539
0.03235
3.57
1
0.06327
0.03259
1.94
1
0.09227
0.03252
2.84
1
0.03359
0.03489
0.96
1
0.10052
0.03519
2.86
1
0.17321
0.04109
4.22
1
0.14581
0.04016
3.63
1
0.02984
0.03688
0.81
1
Pr > |t| Standardized
Estimate
<.0001
0
0.0004
0.18779
0.0534
0.10404
0.005
0.13698
0.3367
0.05595
0.0047
0.1356
<.0001
0.24594
0.0003
0.211
0.4193
0.04526
coefficienti significativiregressori rilevanti per
la spiegazione del fenomeno
PROC REG – Sintassi
Modello di regressione lineare – selezione
automatica dei regressori (a partire da p regressori)
proc reg data= dataset;
model variabile dipendente=
regressore_1
.
.
.
regressore_p
/stb selection= stepwise;
run;
PROC REG – Esempio 3
Regressione di SODDISFAZIONE_GLOBALE su un insieme
di regressori scelti tramite la procedura stepwise
proc reg data= corso.telefonia;
model soddisfazione_globale=
CambioTariffa_2 ChiarezzaTariffe_2 …
/stb selection= stepwise;
run;
tutte le 21 variabili di soddisfazione
PROC REG – Esempio 3
Verifica multicollinearità sui regressori selezionati dalla
procedura stepwise
proc corr data= corso.telefonia;
var CambioTariffa_2 Copertura_2
ComodatoUso_2 ChiarezzaTariffe_2
AltriOperatori_2 Assistenza_2
ChiamateTuoOperatore_2 Promozioni_2;
run;
PROC REG – Output esempio 3
PROC REG – Output esempio 3
Root MSE
Dependent Mean
Coeff Var
Variable
DF
Intercept
CambioTariffa_2
copertura_2
ComodatoUso_2
ChiarezzaTariffe_2
AltriOperatori_2
assistenza_2
ChiamateTuoOperatore_2
Promozioni_2
1
1
1
1
1
1
1
1
1
0.8706 R-Square 0.6078
6.49362 Adj R-Sq 0.5939
13.40707
Parameter Estimates
Parameter Standard
Estimate
Error
1,28835
0,34002
0,11167
0,0314
0,09188
0,04233
0,07199
0,02572
0,06856
0,03238
0,08115
0,03206
0,06765
0,03747
0,19919
0,03449
0,14977
0,03898
t Value
3,79
3,56
2,17
2,8
2,12
2,53
1,81
5,78
3,84
Pr > |t|
0,0002
0,0005
0,031
0,0056
0,0353
0,012
0,0723
<.0001
0,0002
Standardized
Estimate
0
0,18173
0,10361
0,12264
0,11273
0,12048
0,09126
0,28283
0,21673
quasi tutti i coefficienti sono significativi
PROC REG – Output esempio 3
Analisi multicollinearità tra i regressori selezionati dalla stepwise
Pearson Correlation Coefficients, N = 236
CambioT copertura Comodat Chiarezz AltriOper assistenz Chiamate Promozio
ariffa_2
_2
oUso_2 aTariffe_ atori_2
a_2
TuoOper
ni_2
2
atore_2
CambioTariffa_2
copertura_2
ComodatoUso_2
ChiarezzaTariffe_2
AltriOperatori_2
assistenza_2
ChiamateTuoOperatore_2
Promozioni_2
1
0.17398
0.15965
0.41856
0.33324
0.34255
0.4098
0.49403
0.17398
1
-0.0047
0.04225
0.10103
0.43697
0.27442
0.20653
0.15965
-0.0047
1
0.23512
0.26158
0.08806
0.06068
0.1271
0.41856
0.04225
0.23512
1
0.36892
0.3176
0.32382
0.55166
0.33324
0.10103
0.26158
0.36892
1
0.19209
0.26941
0.37051
0.34255
0.43697
0.08806
0.3176
0.19209
1
0.27931
0.40113
0.4098
0.27442
0.06068
0.32382
0.26941
0.27931
1
0.43619
0.49403
0.20653
0.1271
0.55166
0.37051
0.40113
0.43619
1
PROC REG – Riepilogo
Per stimare un modello di regressione lineare
1. individuare la variabile dipendente (=il fenomeno da analizzare)
2. individuare l’insieme dei potenziali regressori (eventualmente tutte le
variabili nel dataset)
3. se necessario costruire variabili dummy
4. analizzare il coefficiente di correlazione lineare dei potenziali
regressori con la variabile dipendente ed eventualmente fare una
prima selezione dei regressori
5. verificare la presenza di multicollinearità tra i regressori usciti dalla
prima selezione ed eventualmente eliminarne alcuni
6. far girare la PROC REG con il metodo stepwise e verificare la bontà
del modello (R-quadro e significatività dei coefficienti)
7. se il modello non è soddisfacente verificare nuovamente la presenza
di multicollinearità tra i regressori selezionati dalla stepwise e
ripetere dal punto 4
Costruzione variabili dummy esempio
Non si possono inserire variabili qualitative nominali tra i
regressoriper considerare questo tipo di variabili all’interno del
modello bisogna costruire delle variabili dicotomiche (0-1) che
identificano le modalità della variabile nominale originaria).
Es. Si vuole considerare tra i regressori la variabile qualitativa nominale
“Area” che identifica l’area di residenza degli intervistati
N° questionario
1
2
3
4
5
6
7
8
9
10
AREA
nord
nord
sud
nord
centro
nord
centro
sud
nord
centro
La variabile “Area” assume tre
modalità (nord-centro-sud)  si
costruiscono due variabili
dummy
Costruzione variabili dummy esempio
Le variabili dummy da costruire sono due (la terza sarebbe
ridondantepuò essere ottenuta come combinazione
delle altre due)
• Area_nordvale 1 se l’intervistato è residente al nord e 0
in tutti gli altri casi
• Area_centrovale 1 se l’intervistato è residente al centro
e 0 in tutti gli altri casi
Costruzione variabili dummy esempio
N° questionario
1
2
3
4
5
6
7
8
9
10
AREA
nord
nord
sud
nord
centro
nord
centro
sud
nord
centro
AREA_NORD AREA_CENTRO
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
VARIABILE
ORIGINARIA (non entra
nel modello)
VARIABILI DUMMY
(entrano nel modello)
Costruzione variabili dummy esempio
Nella PROC REG si inseriscono le due variabili dummy (ma
non la variabile originaria!) nella lista dei regressorii
relativi coefficienti rappresentano l’effetto della singola
modalità (nord/centro) della variabile “Area”.
proc reg data= … ;
model Y= X1 X2 … area_nord area_centro
/stb selection= stepwise;
run;
Scarica

proc reg - My LIUC