Questo tutorial vi accompagna, passo per passo, nell'analisi richiesta per il lavoro di gruppo: modelli di regressione OLS con una variabile dipendente, una o più variabili focali e le opportune variabili di controllo, confrontati tra gruppi diversi (partiti, aree, paesi). Usiamo sempre lo stesso dataset, Itanes 2022 (onda pre-elettorale), e lo stesso esempio: la propensione a votare un partito (PTV), su una scala da 0 a 10.
Cosa vi serve
- Stata
- Il file dei dati
Itanes2022_PRE_release 01_weighted.dta(scarica il dataset) - Il questionario pre-elettorale (apri il questionario)
- Il do-file del tutorial (sotto)
- Connessione internet la prima volta, per installare
estoutecoefplot
Cosa saprete fare
- Esplorare e ricodificare le variabili, gestendo i valori mancanti
- Costruire variabili di prossimità (Downs) e di valenza (Stokes)
- Stimare e leggere modelli OLS a blocchi
- Confrontare partiti e sottogruppi, anche con dati stacked
- Esportare tabelle e grafici per le slide
Suggerimento: cliccate su qualsiasi schermata o grafico per ingrandirlo.
Scarica il datasetQuestionario (PDF)Itanes 2022, onda pre-elettorale: file Stata .dta e questionario con il testo e i codici di tutte le domande.
Scarica il do-file completoTutto il codice di questa pagina in un unico file, diviso nelle stesse sezioni. Modificate solo la riga cd della sezione 1.
Dal tutorial al vostro lavoro
| Concetto | In questo tutorial (Itanes 2022 pre) | Nel vostro dataset |
|---|---|---|
| Variabile dipendente | PTV per FdI, 0-10 (D09_01) | Panel 1 (ESS): atteggiamenti su economia, Europa, immigrazione, ambiente. Panel 2 (EES): PTV dei partiti mainstream o challenger |
| Prossimità (Downs) | Distanza tra autocollocazione e posizione del partito sull'asse sinistra-destra | EES: distanza sulle dimensioni economia, Europa, immigrazione (stessa logica, sezione 5) |
| Valenza (Stokes) | Partito ritenuto credibile per migliorare la situazione economica della famiglia (D01_4bis); giudizio sul leader | EES: credibilità/competenza del partito su obiettivi condivisi |
| Controlli | Genere, età, istruzione, condizione economica, religiosità, occupazione, zona, atteggiamenti su economia, UE e immigrazione, voto 2018 | Gli stessi, più quelli suggeriti dalla letteratura del vostro tema (es. party identification nell'EES) |
| Confronti | Partiti (sez. 9), zone geografiche (sez. 10), famiglie di partiti (sez. 11) | Panel 1: macroregioni e Italia. Panel 2: componente di sinistra/destra, singoli paesi |
1Preparare la sessione di lavoro
In Stata si lavora sempre con un do-file: un file di testo con tutti i comandi, in ordine. Così l'analisi è riproducibile, si può correggere e rieseguire, e il gruppo può condividerla. Aprite il Do-file Editor (icona Do-file Editor nella barra in alto, oppure scrivete doedit nella finestra Command) e incollate il codice.
version 17
clear all
set more off
* >>> MODIFICARE: cartella in cui avete salvato il file .dta
* Windows (esempio): cd "C:/Users/nome/Documents/OPEL"
* Mac (esempio): cd "/Users/nome/Documents/OPEL"
cd "C:/Users/nome/Documents/OPEL"
* il log salva tutto l'output in un file di testo
capture log close
log using "tutorial_itanes2022.log", replace text
* cartella per i grafici
capture mkdir "grafici"
* pacchetti aggiuntivi (si installano una volta sola, serve internet)
capture which esttab
if _rc ssc install estout, replace
capture which coefplot
if _rc ssc install coefplot, replacecdimposta la cartella di lavoro: Stata cercherà lì il file dei dati e ci salverà log, grafici e tabelle. È l'unica riga che dovete modificare. Su Windows usate le barre/oppure\, su Mac il percorso inizia con/Users/.log using … , replace textsalva tutto l'output in un file di testo: utile per ritrovare i risultati senza rieseguire.ssc installscarica due pacchetti gratuiti:estout(tabelle di regressione affiancate) ecoefplot(grafici dei coefficienti).capture which … / if _rcli installa solo se mancano.
2Aprire ed esplorare i dati
Prima di ricodificare qualsiasi cosa bisogna sapere come è codificata ogni variabile: quali valori assume, cosa significano, quali codici indicano «non so» o «non chiesto».
use "Itanes2022_PRE_release 01_weighted.dta", clear
* quante osservazioni e quante variabili
describe, short
* le variabili di propensione al voto (PTV)
describe D09_01-D09_12
* cercare variabili per parola chiave nelle etichette
lookfor sinistra
* codici e etichette di una variabile
codebook D09_01, tabulate(20)
tab D09_01
tab D09_01, nolabeldescribe mostra nome, etichetta e set di etichette dei valori delle dodici PTV; lookfor cerca una parola in tutti i nomi e le etichette: è il modo più rapido per trovare le variabili in un questionario che non conoscete. Qui trova l'autocollocazione (D08_1_01) e la collocazione dei partiti (D08_2_01…).tab D09_01: distribuzione della PTV per Fratelli d'Italia.Output completo della sezione 2 (testo del log di Stata)
. *====================================================================
. * SEZIONE 2. Aprire ed esplorare i dati
. *====================================================================
. use "Itanes2022_PRE_release 01_weighted.d
> ta", clear
.
. * quante osservazioni e quante variabili
. describe, short
Contains data from Itanes2022_PRE_release 0
> 1_weighted.dta
Observations: 6,250
Variables: 183 6 Jun 2023 00:52
Sorted by: seriale
.
. * le variabili di propensione al voto (PTV)
. describe D09_01-D09_12
Variable Storage Display Value
name type format label Variable label
-----------------------------------------------------------------------------------------------------------------------------------
D09_01 double %29.0g D09_01 * PTV FDI
D09_02 double %29.0g D09_02 PTV Lega
D09_03 double %29.0g D09_03 * PTV FI
D09_04 double %29.0g D09_04 * PTV Azione
D09_05 double %29.0g D09_05 * PTV IV
D09_06 double %29.0g D09_06 * PTV M5S
D09_07 double %29.0g D09_07 * PTV PD
D09_08 double %29.0g D09_08 * PTV +EU
D09_09 double %29.0g D09_09 * PTV Italexit
D09_10 double %29.0g D09_10 * PTV SI
D09_11 double %29.0g D09_11 * PTV Verdi
D09_12 double %29.0g D09_12 * PTV IC
.
. * cercare variabili per parola chiave nelle etichette
. lookfor sinistra
Variable Storage Display Value
name type format label Variable label
-----------------------------------------------------------------------------------------------------------------------------------
sez8 double %14.0g sez8 SEZIONE 8 SINISTRA-DESTRA
D08_1_01 double %39.0g D08_1_01 * Autocollocazione Sinistra-Destra
rnd8_2 double %12.0g rnd8_2 * Variabile random per scelta a D08.2 tra Sinistra Italiana Europa Verde e Impegno
D08_2_01 double %29.0g D08_2_01 * Collocazione Sinistra-Destra FDI
D08_2_02 double %29.0g D08_2_02 * Collocazione Sinistra-Destra Lega
D08_2_03 double %29.0g D08_2_03 * Collocazione Sinistra-Destra FI
D08_2_04 double %29.0g D08_2_04 * Collocazione Sinistra-Destra Azione
D08_2_05 double %29.0g D08_2_05 * Collocazione Sinistra-Destra IV
D08_2_06 double %29.0g D08_2_06 * Collocazione Sinistra-Destra M5S
D08_2_07 double %29.0g D08_2_07 * Collocazione Sinistra-Destra PD
D08_2_08 double %29.0g D08_2_08 * Collocazione Sinistra-Destra +EU
D08_2_09 double %29.0g D08_2_09 * Collocazione Sinistra-Destra Italexit
D08_2_10 double %29.0g D08_2_10 * Collocazione Sinistra-Destra SI
D08_2_11 double %29.0g D08_2_11 * Collocazione Sinistra-Destra Verdi
D08_2_12 double %29.0g D08_2_12 * Collocazione Sinistra-Destra IC
.
. * codici e etichette di una variabile
. codebook D09_01, tabulate(20)
-----------------------------------------------------------------------------------------------------------------------------------
D09_01 PTV FDI
-----------------------------------------------------------------------------------------------------------------------------------
Type: Numeric (double)
Label: D09_01
Range: [0,98] Units: 1
Unique values: 12 Missing .: 0/6,250
Tabulation: Freq. Numeric Label
3,125 0 0. 0. Per niente probabile
232 1 1. 1.
213 2 2. 2.
159 3 3. 3.
212 4 4. 4.
304 5 5. 5.
308 6 6. 6.
263 7 7. 7.
300 8 8. 8.
192 9 9. 9.
476 10 10. Molto probabile
466 98 98. Non saprei
. tab D09_01
PTV FDI | Freq. Percent Cum.
------------------------------+-----------------------------------
0. 0. Per niente probabile | 3,125 50.00 50.00
1. 1. | 232 3.71 53.71
2. 2. | 213 3.41 57.12
3. 3. | 159 2.54 59.66
4. 4. | 212 3.39 63.06
5. 5. | 304 4.86 67.92
6. 6. | 308 4.93 72.85
7. 7. | 263 4.21 77.06
8. 8. | 300 4.80 81.86
9. 9. | 192 3.07 84.93
10. Molto probabile | 476 7.62 92.54
98. Non saprei | 466 7.46 100.00
------------------------------+-----------------------------------
Total | 6,250 100.00
. tab D09_01, nolabel
PTV FDI | Freq. Percent Cum.
------------+-----------------------------------
0 | 3,125 50.00 50.00
1 | 232 3.71 53.71
2 | 213 3.41 57.12
3 | 159 2.54 59.66
4 | 212 3.39 63.06
5 | 304 4.86 67.92
6 | 308 4.93 72.85
7 | 263 4.21 77.06
8 | 300 4.80 81.86
9 | 192 3.07 84.93
10 | 476 7.62 92.54
98 | 466 7.46 100.00
------------+-----------------------------------
Total | 6,250 100.00
.
.3Ricodificare le variabili
Regola d'oro: non sovrascrivete mai le variabili originali. Create variabili nuove con gen o con recode …, gen(), e controllate ogni ricodifica incrociando la variabile originale con quella nuova.
3.1 La variabile dipendente
* --- 3.1 Variabile dipendente: PTV per FdI ---------------------------
* D09_01 va da 0 ("per niente probabile") a 10 ("molto probabile");
* 98 = "non saprei" -> missing
gen ptv_fdi = D09_01 if inrange(D09_01, 0, 10)
label variable ptv_fdi "PTV FdI (0-10)"
* controllo: ogni codice originale finisce nel valore giusto?
tab D09_01 ptv_fdi if D09_01 <= 2 | D09_01 >= 9, missingLa condizione if inrange(D09_01, 0, 10) fa sì che i codici 95 e 98 diventino missing (.): Stata li escluderà automaticamente da medie e regressioni. La tabella di controllo mostra che i valori 0-10 restano uguali e che i 466 «non saprei» sono diventati missing.
3.2 Gli altri partiti, con un ciclo
* --- 3.2 Gli altri partiti, con un ciclo -----------------------------
* Usiamo i cinque partiti chiesti a TUTTI gli intervistati.
* (Azione, Italia Viva, +Europa, Italexit, SI, Verdi e Impegno Civico
* sono stati chiesti solo a sottocampioni casuali: 95 = "non chiesto")
* PTV e posizione leader voto 2018
* fdi Fratelli d'Italia _01 D06_01 Meloni 3
* lega Lega _02 D06_02 Salvini 1
* fi Forza Italia _03 D06_03 Berlusconi 2
* m5s Movimento 5 Stelle _06 D06_05 Conte 4
* pd Partito Democr. _07 D06_06 Letta 5
local partiti "fdi lega fi m5s pd"
local numptv "01 02 03 06 07"
local numlead "01 02 03 05 06"
forvalues i = 1/5 {
local p : word `i' of `partiti'
local n : word `i' of `numptv'
local l : word `i' of `numlead'
capture drop ptv_`p'
gen ptv_`p' = D09_`n' if inrange(D09_`n', 0, 10)
gen lr_`p' = D08_2_`n' if inrange(D08_2_`n', 0, 10)
gen leader_`p' = D06_`l' if inrange(D06_`l', 0, 10)
label variable ptv_`p' "PTV `p' (0-10)"
label variable lr_`p' "Posizione percepita di `p' (0-10)"
label variable leader_`p' "Giudizio sul leader di `p' (0-10)"
}
label variable ptv_fdi "PTV FdI (0-10)"
label variable leader_fdi "Giudizio su Meloni (0-10)"Un ciclo forvalues ripete lo stesso blocco di comandi; local p : word `i' of `partiti' prende la i-esima parola della lista. Così otteniamo in poche righe le variabili ptv_, lr_ (posizione percepita del partito) e leader_ per i cinque partiti chiesti a tutti gli intervistati. Il ciclo non è obbligatorio: potete anche scrivere un gen per ogni partito, il risultato è lo stesso. Attenzione alla tabella nel commento: i numeri delle domande non sono sempre gli stessi (per esempio il M5S è D09_06 per la PTV ma D06_05 per il leader).
3.3 L'autocollocazione sinistra-destra
* --- 3.3 Autocollocazione sinistra-destra ---------------------------
* D08_1_01: 0-10; 96 = non si colloca; 98 = non saprei
gen lr_self = D08_1_01 if inrange(D08_1_01, 0, 10)
label variable lr_self "Autocollocazione sinistra-destra (0-10)"
gen byte non_colloca = (D08_1_01 == 96)
label variable non_colloca "Non si colloca sull'asse sinistra-destra"
tab non_collocaIl 17% degli intervistati (1.047 casi) dice di non collocarsi sull'asse sinistra-destra. Per loro non si può calcolare la distanza ideologica da un partito, quindi usciranno dai modelli che la contengono. Conviene saperlo e dirlo nella presentazione, perché chi non si colloca non è un sottoinsieme casuale degli elettori. Potete verificarlo voi, per esempio con tab non_colloca interesse, row (la variabile interesse è creata nella sezione 3.5).
3.4 Le variabili di controllo
* --- 3.4 Variabili socio-demografiche (controlli) -------------------
recode sesso (1 = 0 "Uomo") (2 = 1 "Donna") (else = .), gen(donna)
label variable donna "Genere"
recode eta_classi (1/2 = 1 "18-34") (3/4 = 2 "35-54") (5/6 = 3 "55+"), ///
gen(eta3)
label variable eta3 "Classe d'eta'"
recode tit_studio1 (1/3 = 1 "Fino alla licenza media") (4/6 = 2 "Diploma") ///
(7/11 = 3 "Laurea o più"), gen(edu3)
label variable edu3 "Titolo di studio"
* reddito soggettivo: "il reddito familiare consente di vivere..."
recode D01_3 (1/2 = 1 "Agiatamente o con tranquillità") ///
(3 = 2 "Con qualche difficoltà") ///
(4 = 3 "Non arriva a fine mese") (else = .), gen(reddito)
label variable reddito "Condizione economica familiare"
* frequenza alla messa: 1 = settimanale ... 6 = mai, 7 = non saprei
recode SD1_3 (6 = 1 "Mai") (4/5 = 2 "Qualche volta l'anno") ///
(1/3 = 3 "Almeno una volta al mese") (else = .), gen(chiesa3)
label variable chiesa3 "Frequenza alla messa"
recode area (1 = 1 "Nord-ovest") (2 = 2 "Nord-est") (3 = 3 "Centro") ///
(4/5 = 4 "Sud e isole"), gen(area4)
label variable area4 "Zona geografica"
* condizione occupazionale: due domande (SD2_1 lavora si'/no, SD2_7
* condizione di chi non lavora) -> una sola variabile
gen occup = .
replace occup = 1 if SD2_1 == 1
replace occup = 2 if inlist(SD2_7, 4, 5, 6)
replace occup = 3 if SD2_7 == 3
replace occup = 4 if SD2_7 == 1
replace occup = 5 if inlist(SD2_7, 2, 7, 8)
label define occup_l 1 "Occupato/a" 2 "Disoccupato/a" 3 "Studente/ssa" ///
4 "Pensionato/a" 5 "Casalinga/o e altro"
label values occup occup_l
label variable occup "Condizione occupazionale"
* controllo delle ricodifiche: originale x nuova
tab tit_studio1 edu3, missing
tab SD1_3 chiesa3, missingrecode … (else = .)manda a missing tutto ciò che non è elencato (per esempio «non saprei»).- L'onda pre-elettorale non chiede il reddito in euro ma la condizione economica percepita («il reddito familiare consente di vivere…»): la usiamo al suo posto.
- La condizione occupazionale si costruisce da due domande diverse: è un esempio tipico di variabile da costruire con più
replace … if ….
3.5 Gli atteggiamenti politici
* --- 3.5 Atteggiamenti politici ------------------------------------
* percezione dell'economia italiana: 1 molto migliorata ... 5 molto
* peggiorata (valori alti = giudizio piu' negativo)
gen econ_peggio = D01_1 if inrange(D01_1, 1, 5)
label variable econ_peggio "Economia italiana peggiorata (1-5)"
* Europa: appartenenza all'UE un bene / ne' bene ne' male / un male
recode D03_1 (1 = 1 "Un bene") (3 = 2 "Né bene né male") (2 = 3 "Un male") ///
(else = .), gen(ue)
label variable ue "Appartenenza all'UE"
* immigrazione: D03_3 va da 1 ("riceviamo troppi immigrati") a 7
* ("potremmo accoglierne di piu'"): la giriamo, valori alti = piu' ostili
gen immig_contro = 8 - D03_3 if inrange(D03_3, 1, 7)
label variable immig_contro "Ostilità all'immigrazione (1-7)"
* interesse per la politica (sofisticazione, settimana 4)
recode D04_1 (1 2 = 1 "Molto o abbastanza") (3 4 = 0 "Poco o per niente") ///
(else = .), gen(interesse)
label variable interesse "Interesse per la politica"
* legame pregresso con il partito: ha votato quel partito nel 2018?
* (D10_3: 1 Lega, 2 FI, 3 FdI, 4 M5S, 5 PD; chi non ha votato, non
* ricorda o ha votato altri partiti vale 0)
gen byte v18_fdi = (D10_3 == 3)
gen byte v18_lega = (D10_3 == 1)
gen byte v18_fi = (D10_3 == 2)
gen byte v18_m5s = (D10_3 == 4)
gen byte v18_pd = (D10_3 == 5)
label variable v18_fdi "Ha votato FdI nel 2018"
tab v18_fdi- La domanda sull'immigrazione va da 1 («riceviamo troppi immigrati») a 7 («potremmo accoglierne di più»): con
8 - D03_3la giriamo, così valori alti indicano più ostilità. Girare le scale in modo che vadano tutte nella stessa direzione rende i coefficienti più facili da leggere. - L'onda pre-elettorale non ha la domanda sull'identificazione di partito. Come indicatore del legame pregresso con il partito usiamo il voto alle elezioni del 2018 (
v18_). Nell'EES avrete la party identification.
3.6 La valenza: la credibilità economica del partito
* --- 3.6 Valenza: la credibilita' economica del partito ------------
* D01_4bis: "quale partito propone provvedimenti concreti che potrebbero
* migliorare la condizione economica sua e della sua famiglia?"
* (chiesta a un sottocampione casuale: per gli altri e' missing)
* Chi risponde "nessun partito", "non c'e' differenza" o "non saprei"
* non attribuisce credibilita' a nessun partito: vale 0.
gen byte cred_fdi = (D01_4bis == 1) if !missing(D01_4bis)
gen byte cred_lega = (D01_4bis == 2) if !missing(D01_4bis)
gen byte cred_fi = (D01_4bis == 3) if !missing(D01_4bis)
gen byte cred_m5s = (D01_4bis == 6) if !missing(D01_4bis)
gen byte cred_pd = (D01_4bis == 7) if !missing(D01_4bis)
label variable cred_fdi "FdI credibile sull'economia"
tab cred_fdi, missingLa domanda D01_4bis chiede quale partito propone provvedimenti concreti per migliorare la condizione economica dell'intervistato e della sua famiglia: è un buon indicatore di valenza nel senso di Stokes, perché riguarda un obiettivo condiviso da tutti (stare meglio economicamente) e non una posizione. È stata però chiesta solo a un sottocampione casuale di 2.155 intervistati (34%): per gli altri è missing. Ne terremo conto nella sezione 7.4.
Output completo della sezione 3 (testo del log di Stata)
. *====================================================================
. * SEZIONE 3. Ricodificare le variabili
. *====================================================================
.
. * --- 3.1 Variabile dipendente: PTV per FdI ---------------------------
. * D09_01 va da 0 ("per niente probabile") a 10 ("molto probabile");
. * 98 = "non saprei" -> missing
. gen ptv_fdi = D09_01 if inrange(D09_01, 0, 10)
(466 missing values generated)
. label variable ptv_fdi "PTV FdI (0-10)"
.
. * controllo: ogni codice originale finisce nel valore giusto?
. tab D09_01 ptv_fdi if D09_01 <= 2 | D09_01 >= 9, missing
| PTV FdI (0-10)
PTV FDI | 0 1 2 9 10 . | Total
----------------------+------------------------------------------------------------------+----------
0. 0. Per niente pro | 3,125 0 0 0 0 0 | 3,125
1. 1. | 0 232 0 0 0 0 | 232
2. 2. | 0 0 213 0 0 0 | 213
9. 9. | 0 0 0 192 0 0 | 192
10. Molto probabile | 0 0 0 0 476 0 | 476
98. Non saprei | 0 0 0 0 0 466 | 466
----------------------+------------------------------------------------------------------+----------
Total | 3,125 232 213 192 476 466 | 4,704
.
. * --- 3.2 Gli altri partiti, con un ciclo -----------------------------
. * Usiamo i cinque partiti chiesti a TUTTI gli intervistati.
. * (Azione, Italia Viva, +Europa, Italexit, SI, Verdi e Impegno Civico
. * sono stati chiesti solo a sottocampioni casuali: 95 = "non chiesto")
. * PTV e posizione leader voto 2018
. * fdi Fratelli d'Italia _01 D06_01 Meloni 3
. * lega Lega _02 D06_02 Salvini 1
. * fi Forza Italia _03 D06_03 Berlusconi 2
. * m5s Movimento 5 Stelle _06 D06_05 Conte 4
. * pd Partito Democr. _07 D06_06 Letta 5
. local partiti "fdi lega fi m5s pd"
. local numptv "01 02 03 06 07"
. local numlead "01 02 03 05 06"
. forvalues i = 1/5 {
2. local p : word `i' of `partiti'
3. local n : word `i' of `numptv'
4. local l : word `i' of `numlead'
5. capture drop ptv_`p'
6. gen ptv_`p' = D09_`n' if inrange(D09_`n', 0, 10)
7. gen lr_`p' = D08_2_`n' if inrange(D08_2_`n', 0, 10)
8. gen leader_`p' = D06_`l' if inrange(D06_`l', 0, 10)
9. label variable ptv_`p' "PTV `p' (0-10)"
10. label variable lr_`p' "Posizione percepita di `p' (0-10)"
11. label variable leader_`p' "Giudizio sul leader di `p' (0-10)"
12. }
(466 missing values generated)
(564 missing values generated)
(304 missing values generated)
(438 missing values generated)
(541 missing values generated)
(278 missing values generated)
(459 missing values generated)
(541 missing values generated)
(278 missing values generated)
(485 missing values generated)
(949 missing values generated)
(295 missing values generated)
(495 missing values generated)
(551 missing values generated)
(410 missing values generated)
. label variable ptv_fdi "PTV FdI (0-10)"
. label variable leader_fdi "Giudizio su Meloni (0-10)"
.
. * --- 3.3 Autocollocazione sinistra-destra ---------------------------
. * D08_1_01: 0-10; 96 = non si colloca; 98 = non saprei
. gen lr_self = D08_1_01 if inrange(D08_1_01, 0, 10)
(1,290 missing values generated)
. label variable lr_self "Autocollocazione sinistra-destra (0-10)"
. gen byte non_colloca = (D08_1_01 == 96)
. label variable non_colloca "Non si colloca sull'asse sinistra-destra"
. tab non_colloca
Non si |
colloca |
sull'asse |
sinistra-de |
stra | Freq. Percent Cum.
------------+-----------------------------------
0 | 5,203 83.25 83.25
1 | 1,047 16.75 100.00
------------+-----------------------------------
Total | 6,250 100.00
.
. * --- 3.4 Variabili socio-demografiche (controlli) -------------------
. recode sesso (1 = 0 "Uomo") (2 = 1 "Donna") (else = .), gen(donna)
(6,250 differences between sesso and donna)
. label variable donna "Genere"
.
. recode eta_classi (1/2 = 1 "18-34") (3/4 = 2 "35-54") (5/6 = 3 "55+"), ///
> gen(eta3)
(5,836 differences between eta_classi and eta3)
. label variable eta3 "Classe d'eta'"
.
. recode tit_studio1 (1/3 = 1 "Fino alla licenza media") (4/6 = 2 "Diploma") ///
> (7/11 = 3 "Laurea o più"), gen(edu3)
(6,168 differences between tit_studio1 and edu3)
. label variable edu3 "Titolo di studio"
.
. * reddito soggettivo: "il reddito familiare consente di vivere..."
. recode D01_3 (1/2 = 1 "Agiatamente o con tranquillità") ///
> (3 = 2 "Con qualche difficoltà") ///
> (4 = 3 "Non arriva a fine mese") (else = .), gen(reddito)
(6,175 differences between D01_3 and reddito)
. label variable reddito "Condizione economica familiare"
.
. * frequenza alla messa: 1 = settimanale ... 6 = mai, 7 = non saprei
. recode SD1_3 (6 = 1 "Mai") (4/5 = 2 "Qualche volta l'anno") ///
> (1/3 = 3 "Almeno una volta al mese") (else = .), gen(chiesa3)
(5,734 differences between SD1_3 and chiesa3)
. label variable chiesa3 "Frequenza alla messa"
.
. recode area (1 = 1 "Nord-ovest") (2 = 2 "Nord-est") (3 = 3 "Centro") ///
> (4/5 = 4 "Sud e isole"), gen(area4)
(709 differences between area and area4)
. label variable area4 "Zona geografica"
.
. * condizione occupazionale: due domande (SD2_1 lavora si'/no, SD2_7
. * condizione di chi non lavora) -> una sola variabile
. gen occup = .
(6,250 missing values generated)
. replace occup = 1 if SD2_1 == 1
(3,481 real changes made)
. replace occup = 2 if inlist(SD2_7, 4, 5, 6)
(472 real changes made)
. replace occup = 3 if SD2_7 == 3
(342 real changes made)
. replace occup = 4 if SD2_7 == 1
(1,375 real changes made)
. replace occup = 5 if inlist(SD2_7, 2, 7, 8)
(580 real changes made)
. label define occup_l 1 "Occupato/a" 2 "Disoccupato/a" 3 "Studente/ssa" ///
> 4 "Pensionato/a" 5 "Casalinga/o e altro"
. label values occup occup_l
. label variable occup "Condizione occupazionale"
.
. * controllo delle ricodifiche: originale x nuova
. tab tit_studio1 edu3, missing
Qual é il Suo titolo | Titolo di studio
di studio? | Fino alla Diploma Laurea o | Total
----------------------+---------------------------------+----------
1. elementare / privo | 82 0 0 | 82
2. media inferiore | 632 0 0 | 632
3. superiori in corso | 72 0 0 | 72
4. diploma di istitut | 0 532 0 | 532
5. diploma di maturit | 0 3,216 0 | 3,216
6. università in cors | 0 625 0 | 625
7. diploma universita | 0 0 285 | 285
8. laurea triennale d | 0 0 134 | 134
9. laurea specialisti | 0 0 503 | 503
10. master / scuola d | 0 0 131 | 131
11. dottorato di rice | 0 0 38 | 38
----------------------+---------------------------------+----------
Total | 786 4,373 1,091 | 6,250
. tab SD1_3 chiesa3, missing
Escluse le cerimonie |
(come matrimoni, |
funerali e battesimi) | Frequenza alla messa
con quale frequenza | Mai Qualche v Almeno un . | Total
----------------------+--------------------------------------------+----------
1. Almeno una volta a | 0 0 842 0 | 842
2. Due-tre volte al m | 0 0 313 0 | 313
3. Una volta al mese | 0 0 516 0 | 516
4. Due-tre volte all' | 0 1,331 0 0 | 1,331
5. Una volta all'anno | 0 594 0 0 | 594
6. Mai | 2,441 0 0 0 | 2,441
7. Non saprei | 0 0 0 213 | 213
----------------------+--------------------------------------------+----------
Total | 2,441 1,925 1,671 213 | 6,250
.
. * --- 3.5 Atteggiamenti politici ------------------------------------
. * percezione dell'economia italiana: 1 molto migliorata ... 5 molto
. * peggiorata (valori alti = giudizio piu' negativo)
. gen econ_peggio = D01_1 if inrange(D01_1, 1, 5)
(82 missing values generated)
. label variable econ_peggio "Economia italiana peggiorata (1-5)"
.
. * Europa: appartenenza all'UE un bene / ne' bene ne' male / un male
. recode D03_1 (1 = 1 "Un bene") (3 = 2 "Né bene né male") (2 = 3 "Un male") ///
> (else = .), gen(ue)
(3,039 differences between D03_1 and ue)
. label variable ue "Appartenenza all'UE"
.
. * immigrazione: D03_3 va da 1 ("riceviamo troppi immigrati") a 7
. * ("potremmo accoglierne di piu'"): la giriamo, valori alti = piu' ostili
. gen immig_contro = 8 - D03_3 if inrange(D03_3, 1, 7)
(343 missing values generated)
. label variable immig_contro "Ostilità all'immigrazione (1-7)"
.
. * interesse per la politica (sofisticazione, settimana 4)
. recode D04_1 (1 2 = 1 "Molto o abbastanza") (3 4 = 0 "Poco o per niente") ///
> (else = .), gen(interesse)
(5,292 differences between D04_1 and interesse)
. label variable interesse "Interesse per la politica"
.
. * legame pregresso con il partito: ha votato quel partito nel 2018?
. * (D10_3: 1 Lega, 2 FI, 3 FdI, 4 M5S, 5 PD; chi non ha votato, non
. * ricorda o ha votato altri partiti vale 0)
. gen byte v18_fdi = (D10_3 == 3)
. gen byte v18_lega = (D10_3 == 1)
. gen byte v18_fi = (D10_3 == 2)
. gen byte v18_m5s = (D10_3 == 4)
. gen byte v18_pd = (D10_3 == 5)
. label variable v18_fdi "Ha votato FdI nel 2018"
. tab v18_fdi
Ha votato |
FdI nel |
2018 | Freq. Percent Cum.
------------+-----------------------------------
0 | 5,905 94.48 94.48
1 | 345 5.52 100.00
------------+-----------------------------------
Total | 6,250 100.00
.
. * --- 3.6 Valenza: la credibilita' economica del partito ------------
. * D01_4bis: "quale partito propone provvedimenti concreti che potrebbero
. * migliorare la condizione economica sua e della sua famiglia?"
. * (chiesta a un sottocampione casuale: per gli altri e' missing)
. * Chi risponde "nessun partito", "non c'e' differenza" o "non saprei"
. * non attribuisce credibilita' a nessun partito: vale 0.
. gen byte cred_fdi = (D01_4bis == 1) if !missing(D01_4bis)
(4,095 missing values generated)
. gen byte cred_lega = (D01_4bis == 2) if !missing(D01_4bis)
(4,095 missing values generated)
. gen byte cred_fi = (D01_4bis == 3) if !missing(D01_4bis)
(4,095 missing values generated)
. gen byte cred_m5s = (D01_4bis == 6) if !missing(D01_4bis)
(4,095 missing values generated)
. gen byte cred_pd = (D01_4bis == 7) if !missing(D01_4bis)
(4,095 missing values generated)
. label variable cred_fdi "FdI credibile sull'economia"
. tab cred_fdi, missing
FdI |
credibile |
sull'econom |
ia | Freq. Percent Cum.
------------+-----------------------------------
0 | 1,924 30.78 30.78
1 | 231 3.70 34.48
. | 4,095 65.52 100.00
------------+-----------------------------------
Total | 6,250 100.00
.
.4Descrivere la variabile dipendente
Prima dei modelli, descrivete la variabile dipendente: media, dispersione, forma della distribuzione, differenze tra gruppi. Sono le prime slide della sezione «Dati».
* peso socio-demografico: [aw=] per le descrittive, [pw=] per le
* regressioni (in Stata i pesi pw calcolano errori standard robusti)
summarize ptv_fdi
summarize ptv_fdi [aw=wsociodem_trim]
histogram ptv_fdi, discrete percent ///
xlabel(0(1)10) ytitle("% degli intervistati") ///
xtitle("Probabilità di votare FdI (0 = per niente, 10 = molto)") ///
title("Quanto è probabile votare Fratelli d'Italia?") ///
note("Fonte: Itanes 2022, onda pre-elettorale (dati non pesati)")
graph export "grafici/fig1_istogramma_ptv_fdi.png", replace width(1600)
* confronto tra partiti: media, deviazione standard, N
tabstat ptv_fdi ptv_lega ptv_fi ptv_m5s ptv_pd [aw=wsociodem_trim], ///
statistics(mean sd n) columns(statistics) format(%5.2f)
* PTV media per gruppo sociale
tabstat ptv_fdi [aw=wsociodem_trim], by(edu3) statistics(mean sd n) format(%5.2f)tabstat.La distribuzione non è normale: una grossa massa a 0 e valori sparsi tra 1 e 10, con un piccolo picco a 10. Non impedisce di usare l'OLS, che resta lo strumento standard per le PTV, ma è un'informazione da riportare. Il PD ha la PTV media più alta (3,16), seguito da FdI (2,82) e M5S (2,78). La tabella per titolo di studio mostra già una prima differenza: 3,15 tra chi ha al massimo la licenza media, 2,33 tra i laureati.
Output completo della sezione 4 (testo del log di Stata)
. *====================================================================
. * SEZIONE 4. Descrivere la variabile dipendente
. *====================================================================
. * peso socio-demografico: [aw=] per le descrittive, [pw=] per le
. * regressioni (in Stata i pesi pw calcolano errori standard robusti)
. summarize ptv_fdi
Variable | Obs Mean Std. dev. Min Max
-------------+---------------------------------------------------------
ptv_fdi | 5,784 2.780083 3.604382 0 10
. summarize ptv_fdi [aw=wsociodem_trim]
Variable | Obs Weight Mean Std. dev. Min Max
-------------+-----------------------------------------------------------------
ptv_fdi | 5,784 4760.15084 2.819277 3.616843 0 10
.
. histogram ptv_fdi, discrete percent ///
> xlabel(0(1)10) ytitle("% degli intervistati") ///
> xtitle("Probabilità di votare FdI (0 = per niente, 10 = molto)") ///
> title("Quanto è probabile votare Fratelli d'Italia?") ///
> note("Fonte: Itanes 2022, onda pre-elettorale (dati non pesati)")
(start=0, width=1)
. graph export "grafici/fig1_istogramma_ptv_fdi.png", replace width(1600)
file C:/Users/nome/Documents/OPEL/grafici/fig1_istogramma_ptv_fdi.png saved as PNG format
.
. * confronto tra partiti: media, deviazione standard, N
. tabstat ptv_fdi ptv_lega ptv_fi ptv_m5s ptv_pd [aw=wsociodem_trim], ///
> statistics(mean sd n) columns(statistics) format(%5.2f)
Variable | Mean SD N
-------------+------------------------------
ptv_fdi | 2.82 3.62 5784.00
ptv_lega | 2.34 3.23 5812.00
ptv_fi | 2.15 3.02 5791.00
ptv_m5s | 2.78 3.37 5765.00
ptv_pd | 3.16 3.40 5755.00
--------------------------------------------
.
. * PTV media per gruppo sociale
. tabstat ptv_fdi [aw=wsociodem_trim], by(edu3) statistics(mean sd n) format(%5.2f)
Summary for variables: ptv_fdi
Group variable: edu3 (Titolo di studio)
edu3 | Mean SD N
-----------------+------------------------------
Fino alla licenz | 3.15 3.84 704.00
Diploma | 2.70 3.50 4053.00
Laurea o più | 2.33 3.32 1027.00
-----------------+------------------------------
Total | 2.82 3.62 5784.00
------------------------------------------------
.
.5Le variabili focali: prossimità e valenza
5.1 La distanza ideologica (modello spaziale di Downs)
Secondo il modello spaziale, un elettore è più propenso a votare i partiti più vicini alla propria posizione. La prossimità si misura come distanza assoluta tra la posizione dell'intervistato i e quella del partito j:
distanzaij = | autocollocazionei − posizionej |
* --- 5.1 Distanza ideologica dal partito ----------------------------
* Posizione del partito = media delle collocazioni date da tutti gli
* intervistati (riduce la "proiezione": chi ama un partito tende a
* collocarlo vicino a se').
summarize lr_fdi [aw=wsociodem_trim]
scalar pos_fdi = r(mean)
display "Posizione media di FdI (0-10): " %4.2f pos_fdi
gen dist_fdi = abs(lr_self - pos_fdi)
label variable dist_fdi "Distanza ideologica da FdI (0-10)"
summarize dist_fdi
* lo stesso per gli altri partiti
foreach p in lega fi m5s pd {
quietly summarize lr_`p' [aw=wsociodem_trim]
display "Posizione media di `p': " %4.2f r(mean)
gen dist_`p' = abs(lr_self - r(mean))
label variable dist_`p' "Distanza ideologica da `p' (0-10)"
}r(mean) è il risultato salvato da summarize.Perché la posizione media e non quella percepita da ciascuno? Chi è propenso a votare un partito tende a collocarlo vicino a sé (proiezione), e chi lo esclude lo allontana: con la posizione percepita la distanza sarebbe in parte conseguenza, non causa, della PTV. Le posizioni medie stimate sono: PD 3,15; M5S 3,94; FI 7,54; Lega 8,16; FdI 8,54. Nell'EES farete lo stesso su ciascuna dimensione (economia, Europa, immigrazione), se il questionario chiede sia la posizione dell'intervistato sia quella dei partiti sulla stessa scala.
5.2 La valenza (Stokes)
* --- 5.2 Valenza: credibilita' del partito e giudizio sul leader ----
tab cred_fdi [aw=wsociodem_trim]
summarize leader_fdiIl 9,6% del sottocampione indica FdI come il partito che propone misure concrete per migliorare la propria condizione economica. Il giudizio sul leader (Meloni, 0-10) è un secondo indicatore di valenza, chiesto a tutti, ma va usato con cautela: è molto vicino alla PTV stessa (correlazione 0,86, vedi sotto).
5.3 Le correlazioni
* --- 5.3 Correlazioni tra variabile dipendente e variabili focali --
pwcorr ptv_fdi dist_fdi cred_fdi leader_fdi lr_self v18_fdi, obs star(0.05)Quattro cose da notare. La distanza è correlata negativamente con la PTV (−0,71), come previsto. La credibilità economica è correlata positivamente (0,57), e le coppie che la contengono hanno circa 2.000 casi invece di 5.000-6.000: è l'effetto del sottocampione. Il giudizio su Meloni è quasi sovrapposto alla PTV (0,86). Distanza da FdI e autocollocazione sono correlate a −0,97: per un partito collocato all'estremo, «essere vicini a FdI» e «essere di destra» sono quasi la stessa informazione (lo ritroveremo nella sezione 7.6).
Output completo della sezione 5 (testo del log di Stata)
. *====================================================================
. * SEZIONE 5. Le variabili focali: prossimita' (Downs) e valenza (Stokes)
. *====================================================================
.
. * --- 5.1 Distanza ideologica dal partito ----------------------------
. * Posizione del partito = media delle collocazioni date da tutti gli
. * intervistati (riduce la "proiezione": chi ama un partito tende a
. * collocarlo vicino a se').
. summarize lr_fdi [aw=wsociodem_trim]
Variable | Obs Weight Mean Std. dev. Min Max
-------------+-----------------------------------------------------------------
lr_fdi | 5,686 4586.28019 8.543377 2.267498 0 10
. scalar pos_fdi = r(mean)
. display "Posizione media di FdI (0-10): " %4.2f pos_fdi
Posizione media di FdI (0-10): 8.54
.
. gen dist_fdi = abs(lr_self - pos_fdi)
(1,290 missing values generated)
. label variable dist_fdi "Distanza ideologica da FdI (0-10)"
. summarize dist_fdi
Variable | Obs Mean Std. dev. Min Max
-------------+---------------------------------------------------------
dist_fdi | 4,960 4.040412 2.610663 .4566232 8.543377
.
. * lo stesso per gli altri partiti
. foreach p in lega fi m5s pd {
2. quietly summarize lr_`p' [aw=wsociodem_trim]
3. display "Posizione media di `p': " %4.2f r(mean)
4. gen dist_`p' = abs(lr_self - r(mean))
5. label variable dist_`p' "Distanza ideologica da `p' (0-10)"
6. }
Posizione media di lega: 8.16
(1,290 missing values generated)
Posizione media di fi: 7.54
(1,290 missing values generated)
Posizione media di m5s: 3.94
(1,290 missing values generated)
Posizione media di pd: 3.15
(1,290 missing values generated)
.
. * --- 5.2 Valenza: credibilita' del partito e giudizio sul leader ----
. tab cred_fdi [aw=wsociodem_trim]
FdI |
credibile |
sull'econom |
ia | Freq. Percent Cum.
------------+-----------------------------------
0 | 1,949.0435 90.44 90.44
1 | 205.956541 9.56 100.00
------------+-----------------------------------
Total | 2,155 100.00
. summarize leader_fdi
Variable | Obs Mean Std. dev. Min Max
-------------+---------------------------------------------------------
leader_fdi | 5,946 3.248907 3.498014 0 10
.
. * --- 5.3 Correlazioni tra variabile dipendente e variabili focali --
. pwcorr ptv_fdi dist_fdi cred_fdi leader_fdi lr_self v18_fdi, obs star(0.05)
| ptv_fdi dist_fdi cred_fdi leade~di lr_self v18_fdi
-------------+------------------------------------------------------
ptv_fdi | 1.0000
| 5784
|
dist_fdi | -0.7141* 1.0000
| 4831 4960
|
cred_fdi | 0.5722* -0.3689* 1.0000
| 1993 1734 2155
|
leader_fdi | 0.8560* -0.7094* 0.5240* 1.0000
| 5718 4880 2050 5946
|
lr_self | 0.7383* -0.9683* 0.4157* 0.7313* 1.0000
| 4831 4960 1734 4880 4960
|
v18_fdi | 0.3199* -0.2543* 0.3528* 0.2892* 0.2787* 1.0000
| 5784 4960 2155 5946 4960 6250
|
.
.6Prima la relazione bivariata
regress ptv_fdi dist_fdi [pw=wsociodem_trim]
twoway (scatter ptv_fdi dist_fdi, jitter(6) msize(vsmall) mcolor(%15)) ///
(lfit ptv_fdi dist_fdi [aw=wsociodem_trim], lwidth(thick)), ///
ytitle("PTV FdI (0-10)") ///
xtitle("Distanza ideologica da FdI (0-10)") ///
legend(off) title("Più si è lontani, meno si pensa di votarlo")
graph export "grafici/fig2_scatter_distanza.png", replace width(1600)Come si legge: chi ha distanza zero da FdI ha in media una PTV di 7,11 (la costante); ogni punto di distanza in più abbassa la PTV di 1,01 punti. Il coefficiente è molto preciso (errore standard 0,02, p < 0,001) e la sola distanza spiega il 49% della varianza (R² = 0,49). N = 4.831: i casi validi su entrambe le variabili.
Output completo della sezione 6 (testo del log di Stata)
. *====================================================================
. * SEZIONE 6. Prima la relazione bivariata
. *====================================================================
. regress ptv_fdi dist_fdi [pw=wsociodem_trim]
(sum of wgt is 3,818.59489119053)
Linear regression Number of obs = 4,831
F(1, 4829) = 2689.13
Prob > F = 0.0000
R-squared = 0.4903
Root MSE = 2.6762
------------------------------------------------------------------------------
| Robust
ptv_fdi | Coefficient std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
dist_fdi | -1.008689 .0194514 -51.86 0.000 -1.046823 -.9705558
_cons | 7.106564 .1138451 62.42 0.000 6.883376 7.329753
------------------------------------------------------------------------------
.
. twoway (scatter ptv_fdi dist_fdi, jitter(6) msize(vsmall) mcolor(%15)) ///
> (lfit ptv_fdi dist_fdi [aw=wsociodem_trim], lwidth(thick)), ///
> ytitle("PTV FdI (0-10)") ///
> xtitle("Distanza ideologica da FdI (0-10)") ///
> legend(off) title("Più si è lontani, meno si pensa di votarlo")
. graph export "grafici/fig2_scatter_distanza.png", replace width(1600)
file C:/Users/nome/Documents/OPEL/grafici/fig2_scatter_distanza.png saved as PNG format
.
.7Il modello multivariato (OLS) a blocchi
La relazione bivariata può essere in parte spuria: chi è lontano da FdI è anche, per esempio, più spesso favorevole all'UE o all'immigrazione. Il modello multivariato stima l'effetto di ciascuna variabile a parità di tutte le altre. Si costruisce a blocchi: prima i controlli socio-demografici, poi gli atteggiamenti, poi le variabili focali. Osservare come cambiano i coefficienti da un blocco all'altro è parte dell'interpretazione.
* abbreviazioni per non riscrivere sempre la stessa lista
global socio "i.donna i.eta3 i.edu3 i.reddito i.chiesa3 i.occup"
global controlli "$socio i.area4"
global atteggiamenti "econ_peggio i.ue immig_contro"
global w "[pw=wsociodem_trim]"Le global sono abbreviazioni: $controlli verrà sostituito dalla lista di variabili. Il prefisso i. dice a Stata che la variabile è categoriale: crea automaticamente una dummy per ogni categoria tranne la prima, che fa da categoria di riferimento.
7.1 Un campione comune
* --- 7.1 Campione comune --------------------------------------------
* I modelli a blocchi vanno confrontati sugli STESSI casi: teniamo
* solo chi ha valori validi su tutte le variabili usate.
mark campione
markout campione ptv_fdi donna eta3 edu3 reddito chiesa3 area4 occup ///
econ_peggio ue immig_contro v18_fdi dist_fdi leader_fdi interesse
tab campione
* quanti casi persi per variabile?
misstable summarize ptv_fdi donna reddito chiesa3 econ_peggio ue ///
immig_contro dist_fdi leader_fdi interesseI modelli a blocchi vanno confrontati sugli stessi casi, altrimenti le differenze tra modelli potrebbero dipendere dal campione e non dalle variabili aggiunte. mark e markout creano una variabile che vale 1 solo per chi ha valori validi su tutte le variabili. Qui restano 4.428 casi su 6.250 (71%); misstable mostra che la perdita maggiore viene dall'autocollocazione (chi non si colloca). La credibilità economica non è inclusa, perché dimezzerebbe il campione: la tratteremo a parte nella sezione 7.4.
7.2 Leggere un modello per intero
* --- 7.2 Un modello letto per intero --------------------------------
regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi $w if campione, vsquishvsquish elimina le righe vuote.Come si legge
- Number of obs: 4.428 casi. R-squared: il modello spiega il 55% della varianza della PTV per FdI. F e Prob > F: il modello nel suo insieme è significativo.
- Coefficient: variazione attesa della variabile dipendente (in punti della scala 0-10) per un'unità in più della variabile, tenendo costanti le altre. Per le variabili categoriali è la differenza rispetto alla categoria di riferimento (uomini, 18-34 anni, fino alla licenza media, chi pensa che l'UE sia un bene, ecc.).
v18_fdi= 1,89: chi ha votato FdI nel 2018 ha una PTV di quasi 1,9 punti più alta, a parità di distanza e di atteggiamenti.dist_fdi= −0,78: ogni punto di distanza ideologica in più costa 0,78 punti di PTV. L'effetto si riduce rispetto alla bivariata (−1,01), perché parte di quell'effetto passava per gli atteggiamenti su UE e immigrazione e per il voto precedente.- Gli atteggiamenti contano anche al netto della distanza: chi pensa che l'UE sia «un male» ha una PTV per FdI più alta di 1,15 punti rispetto a chi la ritiene «un bene»; ogni punto di ostilità all'immigrazione (scala 1-7) vale +0,27.
- Robust std. err., t e P>|t|: precisione della stima e test dell'ipotesi che il coefficiente sia zero. P < 0,05 è la soglia convenzionale. [95% conf. interval]: l'intervallo che con il 95% di confidenza contiene il vero valore.
7.3 Modelli a blocchi in una sola tabella
* --- 7.3 Modelli a blocchi e tabella ----------------------------------
eststo clear
eststo m1: regress ptv_fdi $controlli $w if campione
eststo m2: regress ptv_fdi $controlli $atteggiamenti v18_fdi $w if campione
eststo m3: regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi ///
$w if campione
eststo m4: regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi ///
leader_fdi $w if campione
esttab m1 m2 m3 m4, b(%9.2f) se(%9.2f) star(* 0.05 ** 0.01 *** 0.001) ///
r2 ar2 label nobaselevels nogaps varwidth(32) modelwidth(13) ///
mtitles("Socio-dem." "+ atteggiam." "+ distanza" "+ leader")esttab: coefficienti, errori standard tra parentesi, asterischi di significatività, N e R².Cosa racconta la tabella:
- L'R² sale da 0,09 (solo socio-demografiche) a 0,38 (con atteggiamenti e voto 2018), 0,55 (con la distanza) e 0,79 (con il leader). Le caratteristiche sociali da sole spiegano poco; gli atteggiamenti politici spiegano molto.
- La religiosità ha un effetto forte nel modello 1 (+1,7/+1,9 punti per chi va a messa) che si dimezza con gli atteggiamenti e quasi scompare con la distanza: passa in larga parte per la collocazione ideologica. Lo stesso vale per la laurea (−1,18 nel modello 1, non più significativa dal modello 2).
- L'ostilità all'immigrazione passa da 0,65 a 0,27 quando entra la distanza: una parte del suo effetto «è» collocazione di destra.
- Con il giudizio sul leader (modello 4) quasi tutti gli altri coefficienti si riducono drasticamente: è il segnale che quella variabile è «troppo vicina» alla dipendente. Nel lavoro di gruppo è il tipo di risultato da discutere, non solo da riportare.
7.4 La valenza: credibilità economica (sottocampione)
* --- 7.4 La valenza: credibilita' economica (sottocampione) ---------
* D01_4bis e' stata chiesta a un sottocampione casuale: confrontiamo
* il modello 3 con e senza credibilita' sugli STESSI casi.
mark campione_cred if campione
markout campione_cred cred_fdi
tab campione_cred
eststo m3s: regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi ///
$w if campione_cred
eststo m5: regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi ///
cred_fdi $w if campione_cred
esttab m3s m5, b(%9.2f) se(%9.2f) star(* 0.05 ** 0.01 *** 0.001) ///
r2 label nobaselevels nogaps varwidth(32) modelwidth(16) ///
keep(v18_fdi dist_fdi cred_fdi econ_peggio immig_contro) ///
mtitles("Modello 3" "+ credibilità")Poiché D01_4bis è stata chiesta a un sottocampione casuale, possiamo stimare i modelli su quel sottocampione senza introdurre distorsioni, a patto di confrontare i due modelli sugli stessi casi (campione_cred). Chi ritiene FdI credibile sull'economia ha una PTV più alta di 3,32 punti, a parità di distanza e di tutto il resto, e l'R² sale da 0,57 a 0,63. La distanza resta forte (−0,69): prossimità e valenza contano entrambe. Il voto 2018, invece, perde significatività: la credibilità attuale assorbe buona parte del legame pregresso con il partito.
7.5 Coefficienti standardizzati
* --- 7.5 Coefficienti standardizzati (confrontare le variabili focali)
regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi cred_fdi ///
[aw=wsociodem_trim] if campione_cred, betaDistanza (0-10), credibilità (0/1) e immigrazione (1-7) sono misurate su scale diverse. L'opzione beta riporta i coefficienti standardizzati (effetto di una deviazione standard), utili per confrontare il peso relativo delle variabili focali: distanza −0,48, credibilità 0,30, UE «un male» 0,13, immigrazione 0,10. Qui il peso è indicato come [aw=]: i coefficienti sono identici a quelli del modello con [pw=], cambiano solo gli errori standard (non robusti). Usate questa tabella per confrontare le grandezze, non per i test di significatività.
7.6 Diagnostica: multicollinearità
* --- 7.6 Diagnostica: multicollinearita' ------------------------------
* (estat vif richiede un modello senza pesi pw)
quietly regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi ///
leader_fdi lr_self if campione
estat vifestat vif dopo un modello che contiene sia la distanza da FdI sia l'autocollocazione.Il VIF (variance inflation factor) misura quanto una variabile è «spiegata» dalle altre. Valori sopra 10 indicano un problema: qui distanza (17,0) e autocollocazione (18,2) sono quasi la stessa informazione (correlazione −0,97) e non vanno messe insieme nello stesso modello. È per questo che il modello principale non contiene lr_self.
Output completo della sezione 7 (testo del log di Stata)
. *====================================================================
. * SEZIONE 7. Il modello multivariato (OLS) a blocchi
. *====================================================================
. * abbreviazioni per non riscrivere sempre la stessa lista
. global socio "i.donna i.eta3 i.edu3 i.reddito i.chiesa3 i.occup"
. global controlli "$socio i.area4"
. global atteggiamenti "econ_peggio i.ue immig_contro"
. global w "[pw=wsociodem_trim]"
.
. * --- 7.1 Campione comune --------------------------------------------
. * I modelli a blocchi vanno confrontati sugli STESSI casi: teniamo
. * solo chi ha valori validi su tutte le variabili usate.
. mark campione
. markout campione ptv_fdi donna eta3 edu3 reddito chiesa3 area4 occup ///
> econ_peggio ue immig_contro v18_fdi dist_fdi leader_fdi interesse
. tab campione
campione | Freq. Percent Cum.
------------+-----------------------------------
0 | 1,822 29.15 29.15
1 | 4,428 70.85 100.00
------------+-----------------------------------
Total | 6,250 100.00
.
. * quanti casi persi per variabile?
. misstable summarize ptv_fdi donna reddito chiesa3 econ_peggio ue ///
> immig_contro dist_fdi leader_fdi interesse
Obs<.
+------------------------------
| | Unique
Variable | Obs=. Obs>. Obs<. | values Min Max
-------------+--------------------------------+------------------------------
ptv_fdi | 466 5,784 | 11 0 10
donna | 14 6,236 | 2 0 1
reddito | 104 6,146 | 3 1 3
chiesa3 | 213 6,037 | 3 1 3
econ_peggio | 82 6,168 | 5 1 5
ue | 368 5,882 | 3 1 3
immig_contro | 343 5,907 | 7 1 7
dist_fdi | 1,290 4,960 | 11 .4566232 8.543377
leader_fdi | 304 5,946 | 11 0 10
interesse | 169 6,081 | 2 0 1
-----------------------------------------------------------------------------
.
. * --- 7.2 Un modello letto per intero --------------------------------
. regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi $w if campione, vsquish
(sum of wgt is 3,483.8495631218)
Linear regression Number of obs = 4,428
F(22, 4405) = 184.25
Prob > F = 0.0000
R-squared = 0.5526
Root MSE = 2.5122
-------------------------------------------------------------------------------------------
| Robust
ptv_fdi | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.2443272 .1147322 -2.13 0.033 -.4692599 -.0193945
eta3 |
35-54 | -.0666458 .1399244 -0.48 0.634 -.340968 .2076763
55+ | .1680366 .1731331 0.97 0.332 -.1713914 .5074645
edu3 |
Diploma | .0752623 .1483938 0.51 0.612 -.2156642 .3661888
Laurea o più | .223445 .1651049 1.35 0.176 -.1002436 .5471336
reddito |
Con qualche difficoltà | .0146235 .1135456 0.13 0.898 -.2079829 .2372298
Non arriva a fine mese | -.0729051 .208062 -0.35 0.726 -.4808113 .3350011
chiesa3 |
Qualche volta l'anno | .2901754 .1368996 2.12 0.034 .0217834 .5585674
Almeno una volta al mese | .0977654 .1423867 0.69 0.492 -.1813841 .3769149
occup |
Disoccupato/a | .0597122 .2257641 0.26 0.791 -.3828991 .5023234
Studente/ssa | -.1536782 .1674897 -0.92 0.359 -.4820422 .1746858
Pensionato/a | .1931708 .1817302 1.06 0.288 -.1631117 .5494533
Casalinga/o e altro | .1714572 .2646939 0.65 0.517 -.3474759 .6903903
area4 |
Nord-est | -.3485513 .1509626 -2.31 0.021 -.6445139 -.0525887
Centro | -.2649187 .1533025 -1.73 0.084 -.5654687 .0356313
Sud e isole | -.4165173 .1479167 -2.82 0.005 -.7065085 -.1265262
econ_peggio | -.0237004 .0558805 -0.42 0.671 -.1332542 .0858534
ue |
Né bene né male | .69109 .1496481 4.62 0.000 .3977046 .9844755
Un male | 1.154003 .177707 6.49 0.000 .8056076 1.502398
immig_contro | .2735935 .0314541 8.70 0.000 .2119277 .3352593
v18_fdi | 1.887095 .2287785 8.25 0.000 1.438574 2.335616
dist_fdi | -.7802959 .0255348 -30.56 0.000 -.830357 -.7302348
_cons | 4.594004 .3240288 14.18 0.000 3.958745 5.229263
-------------------------------------------------------------------------------------------
.
. * --- 7.3 Modelli a blocchi e tabella ----------------------------------
. eststo clear
. eststo m1: regress ptv_fdi $controlli $w if campione
(sum of wgt is 3,483.8495631218)
Linear regression Number of obs = 4,428
F(16, 4411) = 17.90
Prob > F = 0.0000
R-squared = 0.0922
Root MSE = 3.5759
-------------------------------------------------------------------------------------------
| Robust
ptv_fdi | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.5295519 .1523224 -3.48 0.001 -.8281802 -.2309236
|
eta3 |
35-54 | .3471976 .1764885 1.97 0.049 .0011915 .6932037
55+ | .0600163 .2233387 0.27 0.788 -.3778397 .4978722
|
edu3 |
Diploma | -.7363578 .2101796 -3.50 0.000 -1.148415 -.3243002
Laurea o più | -1.177226 .2365702 -4.98 0.000 -1.641022 -.7134294
|
reddito |
Con qualche difficoltà | .0673122 .1581133 0.43 0.670 -.2426694 .3772937
Non arriva a fine mese | .1585225 .2664955 0.59 0.552 -.3639424 .6809875
|
chiesa3 |
Qualche volta l'anno | 1.723805 .1855181 9.29 0.000 1.360096 2.087513
Almeno una volta al mese | 1.847331 .181167 10.20 0.000 1.492153 2.20251
|
occup |
Disoccupato/a | .2762675 .3183322 0.87 0.386 -.3478234 .9003584
Studente/ssa | -.8897002 .2196992 -4.05 0.000 -1.320421 -.4589794
Pensionato/a | -.2321731 .2652212 -0.88 0.381 -.7521397 .2877935
Casalinga/o e altro | .5183203 .3432135 1.51 0.131 -.1545503 1.191191
|
area4 |
Nord-est | -.1914635 .2253382 -0.85 0.396 -.6332395 .2503124
Centro | -.4115869 .2218666 -1.86 0.064 -.8465567 .023383
Sud e isole | -.8411289 .2014338 -4.18 0.000 -1.23604 -.4462174
|
_cons | 3.137897 .3079192 10.19 0.000 2.534221 3.741573
-------------------------------------------------------------------------------------------
. eststo m2: regress ptv_fdi $controlli $atteggiamenti v18_fdi $w if campione
(sum of wgt is 3,483.8495631218)
Linear regression Number of obs = 4,428
F(21, 4406) = 75.73
Prob > F = 0.0000
R-squared = 0.3754
Root MSE = 2.9678
-------------------------------------------------------------------------------------------
| Robust
ptv_fdi | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.4863806 .1310993 -3.71 0.000 -.743401 -.2293602
|
eta3 |
35-54 | -.128407 .1612906 -0.80 0.426 -.4446177 .1878037
55+ | -.0767986 .1977581 -0.39 0.698 -.4645039 .3109067
|
edu3 |
Diploma | -.2693175 .177506 -1.52 0.129 -.6173185 .0786834
Laurea o più | -.2297348 .1960557 -1.17 0.241 -.6141025 .1546329
|
reddito |
Con qualche difficoltà | -.0863912 .1343559 -0.64 0.520 -.3497961 .1770138
Non arriva a fine mese | -.3079206 .2437934 -1.26 0.207 -.7858783 .170037
|
chiesa3 |
Qualche volta l'anno | .9806378 .1552672 6.32 0.000 .6762361 1.28504
Almeno una volta al mese | 1.161945 .1639139 7.09 0.000 .8405914 1.483299
|
occup |
Disoccupato/a | -.2234877 .2543225 -0.88 0.380 -.7220876 .2751121
Studente/ssa | -.5215759 .1930382 -2.70 0.007 -.9000278 -.1431239
Pensionato/a | -.1303175 .2176501 -0.60 0.549 -.5570211 .2963861
Casalinga/o e altro | .087048 .3014031 0.29 0.773 -.5038536 .6779495
|
area4 |
Nord-est | -.280617 .1797946 -1.56 0.119 -.6331049 .0718708
Centro | -.5158837 .1852401 -2.78 0.005 -.8790474 -.15272
Sud e isole | -.6184823 .1742342 -3.55 0.000 -.9600688 -.2768958
|
econ_peggio | -.1970891 .0643701 -3.06 0.002 -.3232868 -.0708913
|
ue |
Né bene né male | 1.309161 .1752156 7.47 0.000 .9656505 1.652672
Un male | 2.241162 .2012216 11.14 0.000 1.846666 2.635657
|
immig_contro | .6543358 .0342691 19.09 0.000 .5871512 .7215204
v18_fdi | 2.849778 .254665 11.19 0.000 2.350507 3.34905
_cons | .3643351 .3350693 1.09 0.277 -.2925691 1.021239
-------------------------------------------------------------------------------------------
. eststo m3: regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi ///
> $w if campione
(sum of wgt is 3,483.8495631218)
Linear regression Number of obs = 4,428
F(22, 4405) = 184.25
Prob > F = 0.0000
R-squared = 0.5526
Root MSE = 2.5122
-------------------------------------------------------------------------------------------
| Robust
ptv_fdi | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.2443272 .1147322 -2.13 0.033 -.4692599 -.0193945
|
eta3 |
35-54 | -.0666458 .1399244 -0.48 0.634 -.340968 .2076763
55+ | .1680366 .1731331 0.97 0.332 -.1713914 .5074645
|
edu3 |
Diploma | .0752623 .1483938 0.51 0.612 -.2156642 .3661888
Laurea o più | .223445 .1651049 1.35 0.176 -.1002436 .5471336
|
reddito |
Con qualche difficoltà | .0146235 .1135456 0.13 0.898 -.2079829 .2372298
Non arriva a fine mese | -.0729051 .208062 -0.35 0.726 -.4808113 .3350011
|
chiesa3 |
Qualche volta l'anno | .2901754 .1368996 2.12 0.034 .0217834 .5585674
Almeno una volta al mese | .0977654 .1423867 0.69 0.492 -.1813841 .3769149
|
occup |
Disoccupato/a | .0597122 .2257641 0.26 0.791 -.3828991 .5023234
Studente/ssa | -.1536782 .1674897 -0.92 0.359 -.4820422 .1746858
Pensionato/a | .1931708 .1817302 1.06 0.288 -.1631117 .5494533
Casalinga/o e altro | .1714572 .2646939 0.65 0.517 -.3474759 .6903903
|
area4 |
Nord-est | -.3485513 .1509626 -2.31 0.021 -.6445139 -.0525887
Centro | -.2649187 .1533025 -1.73 0.084 -.5654687 .0356313
Sud e isole | -.4165173 .1479167 -2.82 0.005 -.7065085 -.1265262
|
econ_peggio | -.0237004 .0558805 -0.42 0.671 -.1332542 .0858534
|
ue |
Né bene né male | .69109 .1496481 4.62 0.000 .3977046 .9844755
Un male | 1.154003 .177707 6.49 0.000 .8056076 1.502398
|
immig_contro | .2735935 .0314541 8.70 0.000 .2119277 .3352593
v18_fdi | 1.887095 .2287785 8.25 0.000 1.438574 2.335616
dist_fdi | -.7802959 .0255348 -30.56 0.000 -.830357 -.7302348
_cons | 4.594004 .3240288 14.18 0.000 3.958745 5.229263
-------------------------------------------------------------------------------------------
. eststo m4: regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi ///
> leader_fdi $w if campione
(sum of wgt is 3,483.8495631218)
Linear regression Number of obs = 4,428
F(23, 4404) = 667.28
Prob > F = 0.0000
R-squared = 0.7863
Root MSE = 1.7364
-------------------------------------------------------------------------------------------
| Robust
ptv_fdi | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.0476781 .0803553 -0.59 0.553 -.2052149 .1098586
|
eta3 |
35-54 | -.0918405 .0923876 -0.99 0.320 -.2729666 .0892856
55+ | -.1150596 .1098294 -1.05 0.295 -.3303805 .1002612
|
edu3 |
Diploma | -.0164068 .1028945 -0.16 0.873 -.2181317 .1853182
Laurea o più | -.0021172 .1155111 -0.02 0.985 -.228577 .2243427
|
reddito |
Con qualche difficoltà | .0482679 .0743184 0.65 0.516 -.0974335 .1939694
Non arriva a fine mese | -.1007183 .1500122 -0.67 0.502 -.3948175 .193381
|
chiesa3 |
Qualche volta l'anno | .1010435 .0892756 1.13 0.258 -.0739815 .2760685
Almeno una volta al mese | .0287851 .1023481 0.28 0.779 -.1718687 .2294388
|
occup |
Disoccupato/a | -.0494461 .1439529 -0.34 0.731 -.3316662 .232774
Studente/ssa | .0588357 .119673 0.49 0.623 -.1757836 .293455
Pensionato/a | .0859522 .1212162 0.71 0.478 -.1516926 .323597
Casalinga/o e altro | .105176 .160216 0.66 0.512 -.2089278 .4192799
|
area4 |
Nord-est | -.1690356 .1004801 -1.68 0.093 -.3660272 .027956
Centro | -.1432139 .1052443 -1.36 0.174 -.3495457 .0631178
Sud e isole | -.175227 .1000278 -1.75 0.080 -.3713319 .0208779
|
econ_peggio | .0361361 .0355177 1.02 0.309 -.0334965 .1057688
|
ue |
Né bene né male | .3521086 .1021494 3.45 0.001 .1518444 .5523729
Un male | .6053328 .1269087 4.77 0.000 .3565279 .8541377
|
immig_contro | .0271186 .0243692 1.11 0.266 -.0206572 .0748945
v18_fdi | .8929104 .1238831 7.21 0.000 .6500372 1.135784
dist_fdi | -.2084837 .0232963 -8.95 0.000 -.2541562 -.1628112
leader_fdi | .7398147 .0174175 42.48 0.000 .7056677 .7739616
_cons | .9407688 .2429287 3.87 0.000 .4645064 1.417031
-------------------------------------------------------------------------------------------
.
. esttab m1 m2 m3 m4, b(%9.2f) se(%9.2f) star(* 0.05 ** 0.01 *** 0.001) ///
> r2 ar2 label nobaselevels nogaps varwidth(32) modelwidth(13) ///
> mtitles("Socio-dem." "+ atteggiam." "+ distanza" "+ leader")
----------------------------------------------------------------------------------------------------
(1) (2) (3) (4)
Socio-dem. + atteggiam. + distanza + leader
----------------------------------------------------------------------------------------------------
Donna -0.53*** -0.49*** -0.24* -0.05
(0.15) (0.13) (0.11) (0.08)
35-54 0.35* -0.13 -0.07 -0.09
(0.18) (0.16) (0.14) (0.09)
55+ 0.06 -0.08 0.17 -0.12
(0.22) (0.20) (0.17) (0.11)
Diploma -0.74*** -0.27 0.08 -0.02
(0.21) (0.18) (0.15) (0.10)
Laurea o più -1.18*** -0.23 0.22 -0.00
(0.24) (0.20) (0.17) (0.12)
Con qualche difficoltà 0.07 -0.09 0.01 0.05
(0.16) (0.13) (0.11) (0.07)
Non arriva a fine mese 0.16 -0.31 -0.07 -0.10
(0.27) (0.24) (0.21) (0.15)
Qualche volta l'anno 1.72*** 0.98*** 0.29* 0.10
(0.19) (0.16) (0.14) (0.09)
Almeno una volta al mese 1.85*** 1.16*** 0.10 0.03
(0.18) (0.16) (0.14) (0.10)
Disoccupato/a 0.28 -0.22 0.06 -0.05
(0.32) (0.25) (0.23) (0.14)
Studente/ssa -0.89*** -0.52** -0.15 0.06
(0.22) (0.19) (0.17) (0.12)
Pensionato/a -0.23 -0.13 0.19 0.09
(0.27) (0.22) (0.18) (0.12)
Casalinga/o e altro 0.52 0.09 0.17 0.11
(0.34) (0.30) (0.26) (0.16)
Nord-est -0.19 -0.28 -0.35* -0.17
(0.23) (0.18) (0.15) (0.10)
Centro -0.41 -0.52** -0.26 -0.14
(0.22) (0.19) (0.15) (0.11)
Sud e isole -0.84*** -0.62*** -0.42** -0.18
(0.20) (0.17) (0.15) (0.10)
Economia italiana peggiorata (1- -0.20** -0.02 0.04
(0.06) (0.06) (0.04)
Né bene né male 1.31*** 0.69*** 0.35***
(0.18) (0.15) (0.10)
Un male 2.24*** 1.15*** 0.61***
(0.20) (0.18) (0.13)
Ostilità all'immigrazione (1-7) 0.65*** 0.27*** 0.03
(0.03) (0.03) (0.02)
Ha votato FdI nel 2018 2.85*** 1.89*** 0.89***
(0.25) (0.23) (0.12)
Distanza ideologica da FdI (0-10 -0.78*** -0.21***
(0.03) (0.02)
Giudizio su Meloni (0-10) 0.74***
(0.02)
Constant 3.14*** 0.36 4.59*** 0.94***
(0.31) (0.34) (0.32) (0.24)
----------------------------------------------------------------------------------------------------
Observations 4428 4428 4428 4428
R-squared 0.092 0.375 0.553 0.786
Adjusted R-squared 0.089 0.372 0.550 0.785
----------------------------------------------------------------------------------------------------
Standard errors in parentheses
* p<0.05, ** p<0.01, *** p<0.001
.
. * --- 7.4 La valenza: credibilita' economica (sottocampione) ---------
. * D01_4bis e' stata chiesta a un sottocampione casuale: confrontiamo
. * il modello 3 con e senza credibilita' sugli STESSI casi.
. mark campione_cred if campione
. markout campione_cred cred_fdi
. tab campione_cred
campione_cr |
ed | Freq. Percent Cum.
------------+-----------------------------------
0 | 4,703 75.25 75.25
1 | 1,547 24.75 100.00
------------+-----------------------------------
Total | 6,250 100.00
.
. eststo m3s: regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi ///
> $w if campione_cred
(sum of wgt is 1,202.78596711159)
Linear regression Number of obs = 1,547
F(22, 1524) = 75.00
Prob > F = 0.0000
R-squared = 0.5651
Root MSE = 2.4322
-------------------------------------------------------------------------------------------
| Robust
ptv_fdi | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.3448313 .1821443 -1.89 0.059 -.7021114 .0124487
|
eta3 |
35-54 | .022557 .2089795 0.11 0.914 -.3873609 .4324748
55+ | -.1061558 .239011 -0.44 0.657 -.5749811 .3626696
|
edu3 |
Diploma | -.1325248 .2434566 -0.54 0.586 -.6100702 .3450206
Laurea o più | .0856231 .2688225 0.32 0.750 -.4416781 .6129243
|
reddito |
Con qualche difficoltà | .0741344 .179824 0.41 0.680 -.2785942 .426863
Non arriva a fine mese | .2388132 .327523 0.73 0.466 -.4036302 .8812567
|
chiesa3 |
Qualche volta l'anno | .3777295 .2149266 1.76 0.079 -.0438537 .7993127
Almeno una volta al mese | -.0508867 .2237129 -0.23 0.820 -.4897045 .3879311
|
occup |
Disoccupato/a | -.2094489 .2749371 -0.76 0.446 -.7487442 .3298463
Studente/ssa | -.2310665 .2493507 -0.93 0.354 -.7201733 .2580403
Pensionato/a | .0160313 .2912607 0.06 0.956 -.5552829 .5873455
Casalinga/o e altro | -.2758276 .3666697 -0.75 0.452 -.9950583 .4434031
|
area4 |
Nord-est | -.2311488 .2242463 -1.03 0.303 -.6710129 .2087153
Centro | -.3037507 .2345392 -1.30 0.195 -.7638044 .156303
Sud e isole | -.3248075 .2346505 -1.38 0.166 -.7850796 .1354645
|
econ_peggio | .0889601 .0850758 1.05 0.296 -.0779179 .2558382
|
ue |
Né bene né male | .5513032 .2410447 2.29 0.022 .0784887 1.024118
Un male | 1.228582 .2420127 5.08 0.000 .7538684 1.703295
|
immig_contro | .2728711 .0489204 5.58 0.000 .1769127 .3688295
v18_fdi | 1.765943 .3238998 5.45 0.000 1.130607 2.40128
dist_fdi | -.7813908 .0385611 -20.26 0.000 -.8570292 -.7057524
_cons | 4.473263 .4818876 9.28 0.000 3.52803 5.418496
-------------------------------------------------------------------------------------------
. eststo m5: regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi ///
> cred_fdi $w if campione_cred
(sum of wgt is 1,202.78596711159)
Linear regression Number of obs = 1,547
F(23, 1523) = 122.86
Prob > F = 0.0000
R-squared = 0.6301
Root MSE = 2.2438
-------------------------------------------------------------------------------------------
| Robust
ptv_fdi | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.2747077 .1701744 -1.61 0.107 -.6085088 .0590933
|
eta3 |
35-54 | -.1007462 .1971475 -0.51 0.609 -.4874554 .2859631
55+ | -.3102836 .2241809 -1.38 0.167 -.7500196 .1294524
|
edu3 |
Diploma | -.2520145 .2173663 -1.16 0.246 -.6783835 .1743544
Laurea o più | -.1028697 .2417828 -0.43 0.671 -.5771323 .3713928
|
reddito |
Con qualche difficoltà | .1123461 .1671594 0.67 0.502 -.215541 .4402331
Non arriva a fine mese | .3913665 .2977942 1.31 0.189 -.1927637 .9754967
|
chiesa3 |
Qualche volta l'anno | .3782798 .1996045 1.90 0.058 -.013249 .7698087
Almeno una volta al mese | .0914478 .2061212 0.44 0.657 -.3128637 .4957593
|
occup |
Disoccupato/a | -.3976584 .2850747 -1.39 0.163 -.9568388 .1615221
Studente/ssa | -.2810784 .2481474 -1.13 0.258 -.7678253 .2056684
Pensionato/a | .0543966 .2657751 0.20 0.838 -.4669272 .5757205
Casalinga/o e altro | -.2638454 .3184089 -0.83 0.407 -.8884117 .3607209
|
area4 |
Nord-est | -.0126664 .2106069 -0.06 0.952 -.4257767 .4004439
Centro | -.2772719 .2081988 -1.33 0.183 -.6856585 .1311148
Sud e isole | -.1728923 .2207207 -0.78 0.434 -.6058409 .2600563
|
econ_peggio | .0441647 .0804847 0.55 0.583 -.1137078 .2020373
|
ue |
Né bene né male | .4017106 .2221041 1.81 0.071 -.0339516 .8373728
Un male | 1.233105 .2255884 5.47 0.000 .7906083 1.675602
|
immig_contro | .1857794 .0480868 3.86 0.000 .091456 .2801027
v18_fdi | .4261409 .2823528 1.51 0.131 -.1277005 .9799824
dist_fdi | -.6853979 .0397521 -17.24 0.000 -.7633724 -.6074233
cred_fdi | 3.323961 .2579143 12.89 0.000 2.818056 3.829865
_cons | 4.372885 .4569841 9.57 0.000 3.476501 5.26927
-------------------------------------------------------------------------------------------
.
. esttab m3s m5, b(%9.2f) se(%9.2f) star(* 0.05 ** 0.01 *** 0.001) ///
> r2 label nobaselevels nogaps varwidth(32) modelwidth(16) ///
> keep(v18_fdi dist_fdi cred_fdi econ_peggio immig_contro) ///
> mtitles("Modello 3" "+ credibilità")
------------------------------------------------------------------------
(1) (2)
Modello 3 + credibilità
------------------------------------------------------------------------
Economia italiana peggiorata (1- 0.09 0.04
(0.09) (0.08)
Ostilità all'immigrazione (1-7) 0.27*** 0.19***
(0.05) (0.05)
Ha votato FdI nel 2018 1.77*** 0.43
(0.32) (0.28)
Distanza ideologica da FdI (0-10 -0.78*** -0.69***
(0.04) (0.04)
FdI credibile sull'economia 3.32***
(0.26)
------------------------------------------------------------------------
Observations 1547 1547
R-squared 0.565 0.630
------------------------------------------------------------------------
Standard errors in parentheses
* p<0.05, ** p<0.01, *** p<0.001
.
. * --- 7.5 Coefficienti standardizzati (confrontare le variabili focali)
. regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi cred_fdi ///
> [aw=wsociodem_trim] if campione_cred, beta
(sum of wgt is 1,202.78596711159)
Source | SS df MS Number of obs = 1,547
-------------+---------------------------------- F(23, 1523) = 112.81
Model | 13062.9753 23 567.955448 Prob > F = 0.0000
Residual | 7667.4497 1,523 5.03443841 R-squared = 0.6301
-------------+---------------------------------- Adj R-squared = 0.6245
Total | 20730.425 1,546 13.4090718 Root MSE = 2.2438
-------------------------------------------------------------------------------------------
ptv_fdi | Coefficient Std. err. t P>|t| Beta
--------------------------+----------------------------------------------------------------
donna |
Donna | -.2747077 .1237835 -2.22 0.027 -.0375078
|
eta3 |
35-54 | -.1007462 .1717403 -0.59 0.558 -.0129171
55+ | -.3102836 .2018879 -1.54 0.125 -.0418154
|
edu3 |
Diploma | -.2520145 .1464587 -1.72 0.086 -.0343177
Laurea o più | -.1028697 .1979586 -0.52 0.603 -.0100375
|
reddito |
Con qualche difficoltà | .1123461 .1288428 0.87 0.383 .0153164
Non arriva a fine mese | .3913665 .1986617 1.97 0.049 .0365519
|
chiesa3 |
Qualche volta l'anno | .3782798 .1435268 2.64 0.008 .0484596
Almeno una volta al mese | .0914478 .1525974 0.60 0.549 .0113397
|
occup |
Disoccupato/a | -.3976584 .2441205 -1.63 0.104 -.0269029
Studente/ssa | -.2810784 .2306209 -1.22 0.223 -.0224104
Pensionato/a | .0543966 .1968497 0.28 0.782 .0062036
Casalinga/o e altro | -.2638454 .2206673 -1.20 0.232 -.0219073
|
area4 |
Nord-est | -.0126664 .17214 -0.07 0.941 -.0014002
Centro | -.2772719 .1767693 -1.57 0.117 -.0294276
Sud e isole | -.1728923 .1535586 -1.13 0.260 -.0224127
|
econ_peggio | .0441647 .060836 0.73 0.468 .0126812
|
ue |
Né bene né male | .4017106 .1525822 2.63 0.009 .0461924
Un male | 1.233105 .1732513 7.12 0.000 .1323086
|
immig_contro | .1857794 .0340838 5.45 0.000 .1044716
v18_fdi | .4261409 .248282 1.72 0.086 .0295833
dist_fdi | -.6853979 .0288612 -23.75 0.000 -.4814019
cred_fdi | 3.323961 .2031505 16.36 0.000 .2993774
_cons | 4.372885 .3502908 12.48 0.000 .
-------------------------------------------------------------------------------------------
.
. * --- 7.6 Diagnostica: multicollinearita' ------------------------------
. * (estat vif richiede un modello senza pesi pw)
. quietly regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi ///
> leader_fdi lr_self if campione
. estat vif
Variable | VIF 1/VIF
-------------+----------------------
1.donna | 1.13 0.882693
eta3 |
2 | 2.40 0.416739
3 | 3.10 0.322377
edu3 |
2 | 2.36 0.422971
3 | 2.47 0.405329
reddito |
2 | 1.23 0.810123
3 | 1.30 0.770898
chiesa3 |
2 | 1.32 0.755654
3 | 1.42 0.702701
occup |
2 | 1.09 0.921585
3 | 1.32 0.759512
4 | 1.64 0.609759
5 | 1.20 0.831815
area4 |
2 | 1.38 0.722156
3 | 1.39 0.720167
4 | 1.53 0.655058
econ_peggio | 1.22 0.817894
ue |
2 | 1.28 0.778769
3 | 1.40 0.712896
immig_contro | 1.65 0.605995
v18_fdi | 1.12 0.895460
dist_fdi | 16.97 0.058942
leader_fdi | 2.41 0.414160
lr_self | 18.15 0.055085
-------------+----------------------
Mean VIF | 2.94
.
.8Visualizzare i risultati
8.1 Il grafico dei coefficienti
* --- 8.1 Grafico dei coefficienti (coefplot) --------------------------
coefplot m3, drop(_cons) xline(0) msymbol(D) ylabel(, labsize(small)) ///
xtitle("Effetto sulla PTV per FdI (punti 0-10)", size(small)) ///
title("Modello 3: PTV per FdI", size(medium)) ///
headings(1.donna = "{bf:Genere}" 2.eta3 = "{bf:Età}" ///
2.edu3 = "{bf:Istruzione}" 2.reddito = "{bf:Reddito}" ///
2.chiesa3 = "{bf:Messa}" 2.occup = "{bf:Occupazione}" ///
2.area4 = "{bf:Zona}" econ_peggio = "{bf:Atteggiamenti}" ///
v18_fdi = "{bf:Variabili focali}") ///
xsize(8) ysize(9)
graph export "grafici/fig3_coefplot_m3.png", replace width(1600)8.2 I valori predetti
* --- 8.2 Valori predetti (margins) ------------------------------------
estimates restore m3
margins, at(dist_fdi = (0(1)8))
marginsplot, recast(line) recastci(rarea) ciopts(color(%25)) ///
ytitle("PTV predetta per FdI (0-10)") ///
xtitle("Distanza ideologica da FdI") ///
title("Valori predetti dal modello 3")
graph export "grafici/fig4_margins_distanza.png", replace width(1600)margins traduce il coefficiente in valori concreti: a distanza 0 la PTV predetta è 6,2; a distanza 4 è 3,1; a distanza 8 è praticamente 0. In una presentazione un grafico così è spesso più chiaro di una tabella.
8.3 Un'interazione: la distanza conta di più per chi è interessato alla politica?
* --- 8.3 Interazione: la distanza conta di piu' per chi e' interessato?
regress ptv_fdi $controlli $atteggiamenti v18_fdi ///
c.dist_fdi##i.interesse $w if campione
margins interesse, dydx(dist_fdi)
margins interesse, at(dist_fdi = (0(2)8))
marginsplot, ytitle("PTV predetta per FdI (0-10)") ///
xtitle("Distanza ideologica da FdI") ///
title("Effetto della distanza per livello di interesse")
graph export "grafici/fig5_interazione_interesse.png", replace width(1600)L'ipotesi viene dalle lezioni sulla sofisticazione: gli elettori più interessati dovrebbero usare di più la prossimità ideologica. Con c.dist_fdi##i.interesse Stata stima l'effetto della distanza, l'effetto dell'interesse e il loro prodotto (c. indica una variabile continua).
margins, dydx(): l'effetto (pendenza) della distanza separatamente per poco e molto interessati.Le due pendenze sono praticamente identiche (−0,78 in entrambi i gruppi) e il termine di interazione è nullo (p = 0,97): in questi dati non c'è evidenza che l'interesse moderi l'effetto della distanza. Anche un risultato nullo è un risultato: va riportato e discusso alla luce della teoria.
Output completo della sezione 8 (testo del log di Stata)
. *====================================================================
. * SEZIONE 8. Visualizzare i risultati
. *====================================================================
.
. * --- 8.1 Grafico dei coefficienti (coefplot) --------------------------
. coefplot m3, drop(_cons) xline(0) msymbol(D) ylabel(, labsize(small)) ///
> xtitle("Effetto sulla PTV per FdI (punti 0-10)", size(small)) ///
> title("Modello 3: PTV per FdI", size(medium)) ///
> headings(1.donna = "{bf:Genere}" 2.eta3 = "{bf:Età}" ///
> 2.edu3 = "{bf:Istruzione}" 2.reddito = "{bf:Reddito}" ///
> 2.chiesa3 = "{bf:Messa}" 2.occup = "{bf:Occupazione}" ///
> 2.area4 = "{bf:Zona}" econ_peggio = "{bf:Atteggiamenti}" ///
> v18_fdi = "{bf:Variabili focali}") ///
> xsize(8) ysize(9)
. graph export "grafici/fig3_coefplot_m3.png", replace width(1600)
file C:/Users/nome/Documents/OPEL/grafici/fig3_coefplot_m3.png saved as PNG format
.
. * --- 8.2 Valori predetti (margins) ------------------------------------
. estimates restore m3
(results m3 are active now)
. margins, at(dist_fdi = (0(1)8))
Predictive margins Number of obs = 4,428
Model VCE: Robust
Expression: Linear prediction, predict()
1._at: dist_fdi = 0
2._at: dist_fdi = 1
3._at: dist_fdi = 2
4._at: dist_fdi = 3
5._at: dist_fdi = 4
6._at: dist_fdi = 5
7._at: dist_fdi = 6
8._at: dist_fdi = 7
9._at: dist_fdi = 8
------------------------------------------------------------------------------
| Delta-method
| Margin std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
_at |
1 | 6.180682 .125518 49.24 0.000 5.934604 6.426761
2 | 5.400386 .102786 52.54 0.000 5.198874 5.601899
3 | 4.620091 .0817265 56.53 0.000 4.459865 4.780316
4 | 3.839795 .064012 59.99 0.000 3.714299 3.96529
5 | 3.059499 .0531027 57.61 0.000 2.955391 3.163607
6 | 2.279203 .0533508 42.72 0.000 2.174608 2.383797
7 | 1.498907 .064628 23.19 0.000 1.372204 1.62561
8 | .718611 .0825306 8.71 0.000 .5568096 .8804124
9 | -.0616849 .1036816 -0.59 0.552 -.2649529 .1415832
------------------------------------------------------------------------------
. marginsplot, recast(line) recastci(rarea) ciopts(color(%25)) ///
> ytitle("PTV predetta per FdI (0-10)") ///
> xtitle("Distanza ideologica da FdI") ///
> title("Valori predetti dal modello 3")
Variables that uniquely identify margins: dist_fdi
. graph export "grafici/fig4_margins_distanza.png", replace width(1600)
file C:/Users/nome/Documents/OPEL/grafici/fig4_margins_distanza.png saved as PNG format
.
. * --- 8.3 Interazione: la distanza conta di piu' per chi e' interessato?
. regress ptv_fdi $controlli $atteggiamenti v18_fdi ///
> c.dist_fdi##i.interesse $w if campione
(sum of wgt is 3,483.8495631218)
Linear regression Number of obs = 4,428
F(24, 4403) = 174.06
Prob > F = 0.0000
R-squared = 0.5530
Root MSE = 2.5115
-------------------------------------------------------------------------------------------
| Robust
ptv_fdi | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.2220776 .1185562 -1.87 0.061 -.4545074 .0103522
|
eta3 |
35-54 | -.0802639 .1399621 -0.57 0.566 -.3546599 .1941322
55+ | .1402255 .1739248 0.81 0.420 -.2007545 .4812055
|
edu3 |
Diploma | .0585615 .1482762 0.39 0.693 -.2321345 .3492576
Laurea o più | .1980706 .1652763 1.20 0.231 -.125954 .5220952
|
reddito |
Con qualche difficoltà | .0194683 .1134745 0.17 0.864 -.2029987 .2419353
Non arriva a fine mese | -.0709501 .2082639 -0.34 0.733 -.479252 .3373519
|
chiesa3 |
Qualche volta l'anno | .2993222 .1375296 2.18 0.030 .0296949 .5689495
Almeno una volta al mese | .0961845 .1418154 0.68 0.498 -.181845 .374214
|
occup |
Disoccupato/a | .0712796 .2272373 0.31 0.754 -.3742199 .516779
Studente/ssa | -.164082 .1672948 -0.98 0.327 -.4920639 .1638999
Pensionato/a | .1891049 .1825231 1.04 0.300 -.1687323 .546942
Casalinga/o e altro | .1640275 .2643535 0.62 0.535 -.3542383 .6822934
|
area4 |
Nord-est | -.3409497 .1503342 -2.27 0.023 -.6356804 -.046219
Centro | -.268132 .1528518 -1.75 0.079 -.5677984 .0315345
Sud e isole | -.4175707 .1484351 -2.81 0.005 -.7085782 -.1265632
|
econ_peggio | -.0224499 .0558276 -0.40 0.688 -.1319 .0870002
|
ue |
Né bene né male | .706772 .15121 4.67 0.000 .4103245 1.00322
Un male | 1.170813 .1783586 6.56 0.000 .8211406 1.520486
|
immig_contro | .2762291 .0321169 8.60 0.000 .2132637 .3391944
v18_fdi | 1.891937 .2311515 8.18 0.000 1.438763 2.34511
dist_fdi | -.7792387 .043809 -17.79 0.000 -.8651264 -.693351
|
interesse |
Molto o abbastanza | .1857263 .2509473 0.74 0.459 -.3062566 .6777091
|
interesse#c.dist_fdi |
Molto o abbastanza | -.0019079 .0461427 -0.04 0.967 -.0923708 .088555
|
_cons | 4.456335 .375763 11.86 0.000 3.71965 5.193019
-------------------------------------------------------------------------------------------
. margins interesse, dydx(dist_fdi)
Average marginal effects Number of obs = 4,428
Model VCE: Robust
Expression: Linear prediction, predict()
dy/dx wrt: dist_fdi
-------------------------------------------------------------------------------------
| Delta-method
| dy/dx std. err. t P>|t| [95% conf. interval]
--------------------+----------------------------------------------------------------
dist_fdi |
interesse |
Poco o per niente | -.7792387 .043809 -17.79 0.000 -.8651264 -.693351
Molto o abbastanza | -.7811466 .0275582 -28.35 0.000 -.8351745 -.7271188
-------------------------------------------------------------------------------------
. margins interesse, at(dist_fdi = (0(2)8))
Predictive margins Number of obs = 4,428
Model VCE: Robust
Expression: Linear prediction, predict()
1._at: dist_fdi = 0
2._at: dist_fdi = 2
3._at: dist_fdi = 4
4._at: dist_fdi = 6
5._at: dist_fdi = 8
---------------------------------------------------------------------------------------
| Delta-method
| Margin std. err. t P>|t| [95% conf. interval]
----------------------+----------------------------------------------------------------
_at#interesse |
1#Poco o per niente | 6.051871 .2230006 27.14 0.000 5.614677 6.489064
1#Molto o abbastanza | 6.237597 .1417977 43.99 0.000 5.959602 6.515592
2#Poco o per niente | 4.493393 .1503028 29.90 0.000 4.198724 4.788062
2#Molto o abbastanza | 4.675304 .0958998 48.75 0.000 4.487292 4.863315
3#Poco o per niente | 2.934916 .1039539 28.23 0.000 2.731114 3.138718
3#Molto o abbastanza | 3.11301 .0660497 47.13 0.000 2.98352 3.242501
4#Poco o per niente | 1.376438 .1198988 11.48 0.000 1.141377 1.6115
4#Molto o abbastanza | 1.550717 .0748598 20.71 0.000 1.403954 1.69748
5#Poco o per niente | -.182039 .1824797 -1.00 0.319 -.539791 .175713
5#Molto o abbastanza | -.011576 .1136707 -0.10 0.919 -.2344278 .2112757
---------------------------------------------------------------------------------------
. marginsplot, ytitle("PTV predetta per FdI (0-10)") ///
> xtitle("Distanza ideologica da FdI") ///
> title("Effetto della distanza per livello di interesse")
Variables that uniquely identify margins: dist_fdi interesse
. graph export "grafici/fig5_interazione_interesse.png", replace width(1600)
file C:/Users/nome/Documents/OPEL/grafici/fig5_interazione_interesse.png saved as PNG format
.
.9Confrontare partiti diversi
Per il secondo panel dovrete stimare lo stesso modello per partiti diversi, con la prossimità e la valenza come variabili focali. Il trucco è creare variabili generiche (ptv, v18, dist, cred) che a ogni giro del ciclo contengono i valori di un partito diverso: così la tabella ha le stesse righe per tutti.
* Esempio didattico: PD e FI come mainstream, FdI e M5S come
* challenger. Nel lavoro di gruppo la classificazione va giustificata
* con la letteratura.
* Trucco: variabili "generiche" (ptv, v18, dist, cred) che a ogni giro
* del ciclo contengono i valori di un partito diverso. Cosi' la
* tabella ha le stesse righe per tutti i partiti.
foreach p in pd fi fdi m5s {
capture drop ptv v18 dist cred
gen ptv = ptv_`p'
gen v18 = v18_`p'
gen dist = dist_`p'
gen cred = cred_`p'
label variable v18 "Ha votato il partito nel 2018"
label variable dist "Distanza ideologica dal partito"
label variable cred "Partito credibile sull'economia"
eststo p_`p': regress ptv $controlli $atteggiamenti v18 dist cred $w
}
esttab p_pd p_fi p_fdi p_m5s, b(%9.2f) se(%9.2f) ///
star(* 0.05 ** 0.01 *** 0.001) r2 label nobaselevels nogaps ///
varwidth(32) modelwidth(13) ///
keep(v18 dist cred econ_peggio immig_contro) ///
order(v18 dist cred econ_peggio immig_contro) ///
mtitles("PD" "FI" "FdI" "M5S") ///
mgroups("Mainstream" "Challenger", pattern(1 0 1 0))keep()).- La credibilità economica ha un effetto forte per tutti i partiti, da +2,6 punti (PD) a +4,4 (M5S): la valenza conta per mainstream e challenger.
- La distanza ideologica pesa molto per FdI (−0,69) e FI (−0,49), meno per il PD (−0,30) ed è nulla per il M5S (−0,06, non significativa): coerente con un partito che rifiuta il posizionamento sinistra-destra e si colloca al centro della scala.
- L'immigrazione divide i partiti: chi è più ostile ha una PTV più alta per FdI (+0,18) e FI (+0,10), più bassa per PD (−0,36) e M5S (−0,26). Il giudizio negativo sull'economia pesa solo sul PD (−0,26), il partito più identificato con il governo uscente: un esempio di voto economico retrospettivo.
- La classificazione PD e FI «mainstream», FdI e M5S «challenger» è solo didattica: nel vostro lavoro va giustificata con la letteratura (per esempio De Vries e Hobolt), tenendo conto che il M5S nel 2022 aveva governato.
Output completo della sezione 9 (testo del log di Stata)
. *====================================================================
. * SEZIONE 9. Confrontare partiti diversi (mainstream vs challenger)
. *====================================================================
. * Esempio didattico: PD e FI come mainstream, FdI e M5S come
. * challenger. Nel lavoro di gruppo la classificazione va giustificata
. * con la letteratura.
. * Trucco: variabili "generiche" (ptv, v18, dist, cred) che a ogni giro
. * del ciclo contengono i valori di un partito diverso. Cosi' la
. * tabella ha le stesse righe per tutti i partiti.
. foreach p in pd fi fdi m5s {
2. capture drop ptv v18 dist cred
3. gen ptv = ptv_`p'
4. gen v18 = v18_`p'
5. gen dist = dist_`p'
6. gen cred = cred_`p'
7. label variable v18 "Ha votato il partito nel 2018"
8. label variable dist "Distanza ideologica dal partito"
9. label variable cred "Partito credibile sull'economia"
10. eststo p_`p': regress ptv $controlli $atteggiamenti v18 dist cred $w
11. }
(495 missing values generated)
(1,290 missing values generated)
(4,095 missing values generated)
(sum of wgt is 1,211.2585708499)
Linear regression Number of obs = 1,553
F(23, 1529) = 70.85
Prob > F = 0.0000
R-squared = 0.4873
Root MSE = 2.4943
-------------------------------------------------------------------------------------------
| Robust
ptv | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | .3452599 .1801989 1.92 0.056 -.0082032 .698723
|
eta3 |
35-54 | -.475698 .2405439 -1.98 0.048 -.9475289 -.003867
55+ | -.8073727 .2874886 -2.81 0.005 -1.371286 -.243459
|
edu3 |
Diploma | .0852536 .2419626 0.35 0.725 -.38936 .5598673
Laurea o più | .1748084 .3008213 0.58 0.561 -.4152577 .7648745
|
reddito |
Con qualche difficoltà | .2069467 .1845385 1.12 0.262 -.1550287 .5689222
Non arriva a fine mese | -.1834743 .2655585 -0.69 0.490 -.7043717 .3374232
|
chiesa3 |
Qualche volta l'anno | .3643082 .1982143 1.84 0.066 -.0244924 .7531087
Almeno una volta al mese | .3979612 .217147 1.83 0.067 -.0279762 .8238987
|
occup |
Disoccupato/a | -.1267743 .4183727 -0.30 0.762 -.9474194 .6938707
Studente/ssa | -.4467787 .3372797 -1.32 0.185 -1.108359 .2148012
Pensionato/a | .311942 .3132151 1.00 0.319 -.3024347 .9263187
Casalinga/o e altro | -.835204 .32725 -2.55 0.011 -1.47711 -.1932977
|
area4 |
Nord-est | .1387727 .2185409 0.63 0.526 -.289899 .5674444
Centro | -.2021029 .2396798 -0.84 0.399 -.6722389 .2680331
Sud e isole | -.0646339 .2301079 -0.28 0.779 -.5159944 .3867266
|
econ_peggio | -.2563954 .0926416 -2.77 0.006 -.4381134 -.0746773
|
ue |
Né bene né male | -.8565219 .2339421 -3.66 0.000 -1.315403 -.3976407
Un male | -.6262686 .2183265 -2.87 0.004 -1.05452 -.1980174
|
immig_contro | -.356451 .0563111 -6.33 0.000 -.4669061 -.2459959
v18 | 1.699194 .2438086 6.97 0.000 1.22096 2.177429
dist | -.2970717 .0510848 -5.82 0.000 -.3972753 -.1968681
cred | 2.621979 .2418871 10.84 0.000 2.147513 3.096445
_cons | 6.682817 .4620593 14.46 0.000 5.77648 7.589154
-------------------------------------------------------------------------------------------
(459 missing values generated)
(1,290 missing values generated)
(4,095 missing values generated)
(sum of wgt is 1,212.74529618025)
Linear regression Number of obs = 1,557
F(23, 1533) = 63.53
Prob > F = 0.0000
R-squared = 0.4695
Root MSE = 2.3607
-------------------------------------------------------------------------------------------
| Robust
ptv | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.0942239 .1850371 -0.51 0.611 -.4571765 .2687287
|
eta3 |
35-54 | -.3741569 .2303694 -1.62 0.105 -.8260293 .0777156
55+ | -.800131 .2574026 -3.11 0.002 -1.305029 -.2952327
|
edu3 |
Diploma | -.0623868 .2354944 -0.26 0.791 -.5243121 .3995384
Laurea o più | -.086136 .2575414 -0.33 0.738 -.5913067 .4190347
|
reddito |
Con qualche difficoltà | .0236849 .1738076 0.14 0.892 -.3172408 .3646106
Non arriva a fine mese | .0865923 .2980171 0.29 0.771 -.497972 .6711567
|
chiesa3 |
Qualche volta l'anno | .7978562 .1993869 4.00 0.000 .4067564 1.188956
Almeno una volta al mese | .5465524 .2185296 2.50 0.012 .1179037 .9752011
|
occup |
Disoccupato/a | .5876 .2976018 1.97 0.049 .0038503 1.17135
Studente/ssa | -.2147471 .2792801 -0.77 0.442 -.7625586 .3330644
Pensionato/a | .5312662 .2625128 2.02 0.043 .0163441 1.046188
Casalinga/o e altro | -.117871 .329171 -0.36 0.720 -.7635441 .527802
|
area4 |
Nord-est | .0360985 .2352555 0.15 0.878 -.4253581 .4975551
Centro | -.3595828 .2249329 -1.60 0.110 -.8007916 .081626
Sud e isole | -.2958794 .2221291 -1.33 0.183 -.7315885 .1398297
|
econ_peggio | -.1297849 .0883534 -1.47 0.142 -.3030911 .0435214
|
ue |
Né bene né male | .7013067 .2206792 3.18 0.002 .2684417 1.134172
Un male | 1.385182 .2522498 5.49 0.000 .890391 1.879973
|
immig_contro | .096149 .0462146 2.08 0.038 .0054985 .1867994
v18 | 2.461051 .3389454 7.26 0.000 1.796205 3.125897
dist | -.4949865 .0397818 -12.44 0.000 -.5730191 -.416954
cred | 3.395548 .407259 8.34 0.000 2.596704 4.194392
_cons | 3.583414 .4938508 7.26 0.000 2.61472 4.552109
-------------------------------------------------------------------------------------------
(466 missing values generated)
(1,290 missing values generated)
(4,095 missing values generated)
(sum of wgt is 1,215.72262275219)
Linear regression Number of obs = 1,560
F(23, 1536) = 123.68
Prob > F = 0.0000
R-squared = 0.6297
Root MSE = 2.2443
-------------------------------------------------------------------------------------------
| Robust
ptv | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.2762155 .1692808 -1.63 0.103 -.6082614 .0558305
|
eta3 |
35-54 | -.0848193 .1959769 -0.43 0.665 -.4692298 .2995912
55+ | -.3387338 .2221385 -1.52 0.127 -.7744606 .096993
|
edu3 |
Diploma | -.2392588 .2164891 -1.11 0.269 -.6639042 .1853866
Laurea o più | -.1005492 .241411 -0.42 0.677 -.5740792 .3729807
|
reddito |
Con qualche difficoltà | .1034177 .1668968 0.62 0.536 -.223952 .4307873
Non arriva a fine mese | .3374008 .2940504 1.15 0.251 -.2393819 .9141836
|
chiesa3 |
Qualche volta l'anno | .3910187 .1990072 1.96 0.050 .0006641 .7813733
Almeno una volta al mese | .0846733 .2033726 0.42 0.677 -.314244 .4835907
|
occup |
Disoccupato/a | -.3609107 .2809036 -1.28 0.199 -.9119058 .1900843
Studente/ssa | -.2489216 .2486059 -1.00 0.317 -.7365646 .2387213
Pensionato/a | .0909075 .2635269 0.34 0.730 -.426003 .607818
Casalinga/o e altro | -.2293929 .3106537 -0.74 0.460 -.8387431 .3799573
|
area4 |
Nord-est | -.0091246 .2081293 -0.04 0.965 -.4173722 .399123
Centro | -.2594096 .2072926 -1.25 0.211 -.666016 .1471968
Sud e isole | -.1516246 .2185467 -0.69 0.488 -.580306 .2770568
|
econ_peggio | .0500542 .0800131 0.63 0.532 -.1068923 .2070007
|
ue |
Né bene né male | .4254531 .2208508 1.93 0.054 -.0077479 .8586541
Un male | 1.2092 .2193943 5.51 0.000 .7788565 1.639544
|
immig_contro | .1818677 .04767 3.82 0.000 .0883626 .2753729
v18 | .4250307 .2826853 1.50 0.133 -.1294593 .9795207
dist | -.6904195 .038816 -17.79 0.000 -.7665574 -.6142817
cred | 3.312731 .2570928 12.89 0.000 2.808441 3.817021
_cons | 4.373921 .4557569 9.60 0.000 3.479949 5.267892
-------------------------------------------------------------------------------------------
(485 missing values generated)
(1,290 missing values generated)
(4,095 missing values generated)
(sum of wgt is 1,205.83689913154)
Linear regression Number of obs = 1,550
F(23, 1526) = 41.31
Prob > F = 0.0000
R-squared = 0.4372
Root MSE = 2.5016
-------------------------------------------------------------------------------------------
| Robust
ptv | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.1431791 .1797088 -0.80 0.426 -.4956815 .2093233
|
eta3 |
35-54 | -.0834933 .2345694 -0.36 0.722 -.5436059 .3766193
55+ | -.4927181 .2838517 -1.74 0.083 -1.049499 .0640625
|
edu3 |
Diploma | -.2795383 .2228376 -1.25 0.210 -.7166387 .157562
Laurea o più | -.3536007 .2756361 -1.28 0.200 -.8942663 .1870648
|
reddito |
Con qualche difficoltà | .2989691 .1737354 1.72 0.085 -.0418163 .6397545
Non arriva a fine mese | -.0587564 .3082286 -0.19 0.849 -.6633528 .5458401
|
chiesa3 |
Qualche volta l'anno | .3546867 .1945728 1.82 0.069 -.0269716 .736345
Almeno una volta al mese | .5474207 .2253962 2.43 0.015 .1053016 .9895397
|
occup |
Disoccupato/a | .5734976 .4001501 1.43 0.152 -.2114048 1.3584
Studente/ssa | -.1073052 .3170043 -0.34 0.735 -.7291153 .514505
Pensionato/a | .1440548 .3035993 0.47 0.635 -.4514611 .7395708
Casalinga/o e altro | -.1114607 .3325125 -0.34 0.738 -.7636906 .5407692
|
area4 |
Nord-est | .2606132 .2244521 1.16 0.246 -.179654 .7008805
Centro | .230394 .2474782 0.93 0.352 -.2550395 .7158274
Sud e isole | .7086931 .2275504 3.11 0.002 .2623485 1.155038
|
econ_peggio | -.0858271 .0832413 -1.03 0.303 -.2491066 .0774523
|
ue |
Né bene né male | .4592711 .2399141 1.91 0.056 -.0113251 .9298673
Un male | .4646056 .2639313 1.76 0.079 -.053101 .9823121
|
immig_contro | -.2642246 .0447144 -5.91 0.000 -.3519328 -.1765165
v18 | 1.714134 .2672786 6.41 0.000 1.189861 2.238406
dist | -.055608 .0606798 -0.92 0.360 -.1746325 .0634166
cred | 4.443476 .3200421 13.88 0.000 3.815707 5.071245
_cons | 3.127878 .461558 6.78 0.000 2.222523 4.033233
-------------------------------------------------------------------------------------------
.
. esttab p_pd p_fi p_fdi p_m5s, b(%9.2f) se(%9.2f) ///
> star(* 0.05 ** 0.01 *** 0.001) r2 label nobaselevels nogaps ///
> varwidth(32) modelwidth(13) ///
> keep(v18 dist cred econ_peggio immig_contro) ///
> order(v18 dist cred econ_peggio immig_contro) ///
> mtitles("PD" "FI" "FdI" "M5S") ///
> mgroups("Mainstream" "Challenger", pattern(1 0 1 0))
----------------------------------------------------------------------------------------------------
Mainstream Challenger
(1) (2) (3) (4)
PD FI FdI M5S
----------------------------------------------------------------------------------------------------
Ha votato il partito nel 2018 1.70*** 2.46*** 0.43 1.71***
(0.24) (0.34) (0.28) (0.27)
Distanza ideologica dal partito -0.30*** -0.49*** -0.69*** -0.06
(0.05) (0.04) (0.04) (0.06)
Partito credibile sull'economia 2.62*** 3.40*** 3.31*** 4.44***
(0.24) (0.41) (0.26) (0.32)
Economia italiana peggiorata (1- -0.26** -0.13 0.05 -0.09
(0.09) (0.09) (0.08) (0.08)
Ostilità all'immigrazione (1-7) -0.36*** 0.10* 0.18*** -0.26***
(0.06) (0.05) (0.05) (0.04)
----------------------------------------------------------------------------------------------------
Observations 1553 1557 1560 1550
R-squared 0.487 0.469 0.630 0.437
----------------------------------------------------------------------------------------------------
Standard errors in parentheses
* p<0.05, ** p<0.01, *** p<0.001
.
.10Lo stesso modello in sottogruppi
Nel primo panel confronterete il modello su tutti i paesi con modelli per macroregioni e per l'Italia; nel secondo, modelli per singolo paese. La logica è la stessa che qui applichiamo alle quattro zone geografiche italiane: si stima il modello con if su ciascun gruppo, togliendo dai controlli la variabile che definisce il gruppo.
* Con l'ESS e l'EES confronterete paesi o macroregioni; qui usiamo le
* quattro zone geografiche italiane. Nei sottogruppi si toglie la
* variabile che li definisce (area4) dai controlli.
forvalues a = 1/4 {
eststo z`a': regress ptv_fdi $socio $atteggiamenti v18_fdi ///
dist_fdi $w if area4 == `a'
}
esttab z1 z2 z3 z4, b(%9.2f) se(%9.2f) star(* 0.05 ** 0.01 *** 0.001) ///
r2 label nobaselevels nogaps varwidth(32) modelwidth(13) ///
keep(v18_fdi dist_fdi econ_peggio immig_contro) ///
mtitles("Nord-ovest" "Nord-est" "Centro" "Sud e isole")
* La differenza tra gruppi e' significativa? Interazione nel modello
* unico (test congiunto dei termini di interazione)
regress ptv_fdi $controlli $atteggiamenti v18_fdi ///
c.dist_fdi##i.area4 $w
testparm c.dist_fdi#i.area4L'effetto della distanza va da −0,85 nel Nord-ovest a −0,72 al Sud. Sono differenze reali? Non si confrontano gli asterischi: un coefficiente significativo in un gruppo e non in un altro non prova che i due siano diversi. Si stima invece un modello unico con l'interazione c.dist_fdi##i.area4 e si testano insieme i termini di interazione con testparm: F = 5,22, p = 0,001. Le differenze tra zone sono statisticamente significative, anche se sostanzialmente contenute: al Sud la distanza ideologica pesa un po' meno, e anche l'R² del modello è più basso (0,48 contro circa 0,60). Con i paesi dell'ESS o dell'EES si procede allo stesso modo (per esempio c.variabile##i.paese).
Output completo della sezione 10 (testo del log di Stata)
. *====================================================================
. * SEZIONE 10. Lo stesso modello in sottogruppi (aree, paesi, ...)
. *====================================================================
. * Con l'ESS e l'EES confronterete paesi o macroregioni; qui usiamo le
. * quattro zone geografiche italiane. Nei sottogruppi si toglie la
. * variabile che li definisce (area4) dai controlli.
. forvalues a = 1/4 {
2. eststo z`a': regress ptv_fdi $socio $atteggiamenti v18_fdi ///
> dist_fdi $w if area4 == `a'
3. }
(sum of wgt is 968.6748532354832)
Linear regression Number of obs = 1,253
F(19, 1233) = 93.18
Prob > F = 0.0000
R-squared = 0.6127
Root MSE = 2.4261
-------------------------------------------------------------------------------------------
| Robust
ptv_fdi | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.5455918 .2023381 -2.70 0.007 -.9425569 -.1486266
|
eta3 |
35-54 | -.2247995 .2700424 -0.83 0.405 -.7545929 .304994
55+ | .3371917 .3349533 1.01 0.314 -.3199497 .994333
|
edu3 |
Diploma | -.5019516 .2431273 -2.06 0.039 -.9789407 -.0249625
Laurea o più | -.5090231 .2775702 -1.83 0.067 -1.053585 .0355391
|
reddito |
Con qualche difficoltà | .1147143 .2074335 0.55 0.580 -.2922473 .5216758
Non arriva a fine mese | .0012187 .3957145 0.00 0.998 -.7751297 .777567
|
chiesa3 |
Qualche volta l'anno | .3256969 .2465999 1.32 0.187 -.1581048 .8094987
Almeno una volta al mese | .1436151 .2669884 0.54 0.591 -.3801867 .6674168
|
occup |
Disoccupato/a | .3218281 .3860898 0.83 0.405 -.4356375 1.079294
Studente/ssa | -.4499522 .3149039 -1.43 0.153 -1.067759 .1678546
Pensionato/a | -.0189863 .3183742 -0.06 0.952 -.6436014 .6056288
Casalinga/o e altro | -.3487895 .5032792 -0.69 0.488 -1.336168 .6385889
|
econ_peggio | -.0709168 .1070172 -0.66 0.508 -.2808727 .1390392
|
ue |
Né bene né male | .9393007 .2456297 3.82 0.000 .4574024 1.421199
Un male | .8948315 .3843491 2.33 0.020 .1407809 1.648882
|
immig_contro | .2977566 .0624089 4.77 0.000 .1753172 .420196
v18_fdi | 1.686392 .3045648 5.54 0.000 1.08887 2.283915
dist_fdi | -.8471504 .0471569 -17.96 0.000 -.939667 -.7546338
_cons | 5.389959 .6116381 8.81 0.000 4.189993 6.589926
-------------------------------------------------------------------------------------------
(sum of wgt is 721.5212986767292)
Linear regression Number of obs = 906
F(19, 886) = 60.98
Prob > F = 0.0000
R-squared = 0.6113
Root MSE = 2.3429
-------------------------------------------------------------------------------------------
| Robust
ptv_fdi | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.1070475 .2518997 -0.42 0.671 -.6014373 .3873423
|
eta3 |
35-54 | -.1762178 .3120069 -0.56 0.572 -.7885767 .436141
55+ | -.136462 .3825073 -0.36 0.721 -.887188 .614264
|
edu3 |
Diploma | .1301289 .3042651 0.43 0.669 -.4670355 .7272933
Laurea o più | .4281091 .3325441 1.29 0.198 -.224557 1.080775
|
reddito |
Con qualche difficoltà | -.2261979 .2355103 -0.96 0.337 -.688421 .2360252
Non arriva a fine mese | .0774419 .3913204 0.20 0.843 -.6905812 .845465
|
chiesa3 |
Qualche volta l'anno | .097662 .2729271 0.36 0.721 -.437997 .6333209
Almeno una volta al mese | .3652483 .2761441 1.32 0.186 -.1767246 .9072213
|
occup |
Disoccupato/a | -.8155867 .3525839 -2.31 0.021 -1.507584 -.1235897
Studente/ssa | -.5788094 .3647382 -1.59 0.113 -1.294661 .1370423
Pensionato/a | .4537054 .3215292 1.41 0.159 -.1773424 1.084753
Casalinga/o e altro | .2436709 .5770997 0.42 0.673 -.888971 1.376313
|
econ_peggio | -.0531553 .1263642 -0.42 0.674 -.3011634 .1948528
|
ue |
Né bene né male | .8446488 .3238176 2.61 0.009 .2091098 1.480188
Un male | 1.345281 .2958087 4.55 0.000 .7647136 1.925848
|
immig_contro | .3297793 .0534145 6.17 0.000 .2249455 .4346131
v18_fdi | 1.783698 .4268877 4.18 0.000 .9458692 2.621527
dist_fdi | -.7717373 .0520838 -14.82 0.000 -.8739593 -.6695153
_cons | 4.123576 .6358199 6.49 0.000 2.875687 5.371465
-------------------------------------------------------------------------------------------
(sum of wgt is 693.7440959215164)
Linear regression Number of obs = 896
F(19, 876) = 52.58
Prob > F = 0.0000
R-squared = 0.5773
Root MSE = 2.4688
-------------------------------------------------------------------------------------------
| Robust
ptv_fdi | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | .0389434 .2237084 0.17 0.862 -.4001236 .4780104
|
eta3 |
35-54 | .3749461 .2730927 1.37 0.170 -.1610463 .9109386
55+ | .5930139 .3321353 1.79 0.075 -.0588599 1.244888
|
edu3 |
Diploma | .4185256 .3245552 1.29 0.198 -.218471 1.055522
Laurea o più | .3278441 .3670733 0.89 0.372 -.3926017 1.04829
|
reddito |
Con qualche difficoltà | -.068396 .2501323 -0.27 0.785 -.5593246 .4225326
Non arriva a fine mese | .2369289 .3669085 0.65 0.519 -.4831934 .9570512
|
chiesa3 |
Qualche volta l'anno | .3205832 .2561389 1.25 0.211 -.1821344 .8233009
Almeno una volta al mese | -.0330952 .2972344 -0.11 0.911 -.6164699 .5502794
|
occup |
Disoccupato/a | -.5566052 .4491231 -1.24 0.216 -1.438088 .3248778
Studente/ssa | .0572721 .3543715 0.16 0.872 -.6382442 .7527885
Pensionato/a | -.1375867 .3630358 -0.38 0.705 -.8501083 .5749348
Casalinga/o e altro | -.2128539 .7196339 -0.30 0.767 -1.625262 1.199554
|
econ_peggio | .1719405 .1133398 1.52 0.130 -.0505088 .3943898
|
ue |
Né bene né male | .3599093 .3340194 1.08 0.282 -.2956624 1.015481
Un male | .9201476 .3412846 2.70 0.007 .2503166 1.589979
|
immig_contro | .3490319 .0611107 5.71 0.000 .2290915 .4689724
v18_fdi | 1.452683 .4995118 2.91 0.004 .4723031 2.433063
dist_fdi | -.7970685 .0508978 -15.66 0.000 -.8969645 -.6971725
_cons | 2.951308 .6716453 4.39 0.000 1.633086 4.26953
-------------------------------------------------------------------------------------------
(sum of wgt is 1,133.00521716475)
Linear regression Number of obs = 1,411
F(19, 1391) = 54.54
Prob > F = 0.0000
R-squared = 0.4791
Root MSE = 2.6416
-------------------------------------------------------------------------------------------
| Robust
ptv_fdi | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.3115383 .2085416 -1.49 0.135 -.7206283 .0975518
|
eta3 |
35-54 | -.1462197 .2450353 -0.60 0.551 -.6268984 .3344589
55+ | .0389225 .2989199 0.13 0.896 -.5474599 .6253049
|
edu3 |
Diploma | .4916432 .2957853 1.66 0.097 -.0885901 1.071877
Laurea o più | .8258063 .3211319 2.57 0.010 .1958512 1.455762
|
reddito |
Con qualche difficoltà | .0733518 .2029879 0.36 0.718 -.3248436 .4715472
Non arriva a fine mese | -.1570018 .3597843 -0.44 0.663 -.8627801 .5487765
|
chiesa3 |
Qualche volta l'anno | .3955964 .2669443 1.48 0.139 -.1280604 .9192531
Almeno una volta al mese | .0506231 .2532684 0.20 0.842 -.4462062 .5474524
|
occup |
Disoccupato/a | .5949904 .3981414 1.49 0.135 -.1860319 1.376013
Studente/ssa | .0719238 .2876099 0.25 0.803 -.4922722 .6361197
Pensionato/a | .3305351 .3636964 0.91 0.364 -.3829175 1.043988
Casalinga/o e altro | .7309681 .3973421 1.84 0.066 -.0484863 1.510423
|
econ_peggio | -.0779818 .0919061 -0.85 0.396 -.2582713 .1023076
|
ue |
Né bene né male | .5336871 .2647315 2.02 0.044 .014371 1.053003
Un male | 1.372949 .3305837 4.15 0.000 .7244529 2.021446
|
immig_contro | .1623079 .0580516 2.80 0.005 .0484298 .276186
v18_fdi | 2.321357 .5066469 4.58 0.000 1.327482 3.315231
dist_fdi | -.7176487 .0438753 -16.36 0.000 -.8037175 -.6315798
_cons | 4.170175 .5725105 7.28 0.000 3.047098 5.293253
-------------------------------------------------------------------------------------------
. esttab z1 z2 z3 z4, b(%9.2f) se(%9.2f) star(* 0.05 ** 0.01 *** 0.001) ///
> r2 label nobaselevels nogaps varwidth(32) modelwidth(13) ///
> keep(v18_fdi dist_fdi econ_peggio immig_contro) ///
> mtitles("Nord-ovest" "Nord-est" "Centro" "Sud e isole")
----------------------------------------------------------------------------------------------------
(1) (2) (3) (4)
Nord-ovest Nord-est Centro Sud e isole
----------------------------------------------------------------------------------------------------
Economia italiana peggiorata (1- -0.07 -0.05 0.17 -0.08
(0.11) (0.13) (0.11) (0.09)
Ostilità all'immigrazione (1-7) 0.30*** 0.33*** 0.35*** 0.16**
(0.06) (0.05) (0.06) (0.06)
Ha votato FdI nel 2018 1.69*** 1.78*** 1.45** 2.32***
(0.30) (0.43) (0.50) (0.51)
Distanza ideologica da FdI (0-10 -0.85*** -0.77*** -0.80*** -0.72***
(0.05) (0.05) (0.05) (0.04)
----------------------------------------------------------------------------------------------------
Observations 1253 906 896 1411
R-squared 0.613 0.611 0.577 0.479
----------------------------------------------------------------------------------------------------
Standard errors in parentheses
* p<0.05, ** p<0.01, *** p<0.001
.
. * La differenza tra gruppi e' significativa? Interazione nel modello
. * unico (test congiunto dei termini di interazione)
. regress ptv_fdi $controlli $atteggiamenti v18_fdi ///
> c.dist_fdi##i.area4 $w
(sum of wgt is 3,516.94546499848)
Linear regression Number of obs = 4,466
F(25, 4440) = 165.79
Prob > F = 0.0000
R-squared = 0.5551
Root MSE = 2.5075
-------------------------------------------------------------------------------------------
| Robust
ptv_fdi | Coefficient std. err. t P>|t| [95% conf. interval]
--------------------------+----------------------------------------------------------------
donna |
Donna | -.2406296 .1138329 -2.11 0.035 -.4637989 -.0174603
|
eta3 |
35-54 | -.062633 .1382017 -0.45 0.650 -.3335772 .2083113
55+ | .1673947 .1706949 0.98 0.327 -.1672525 .5020418
|
edu3 |
Diploma | .0612517 .1472687 0.42 0.677 -.2274684 .3499717
Laurea o più | .219065 .1641556 1.33 0.182 -.1027618 .5408919
|
reddito |
Con qualche difficoltà | .0169491 .1125495 0.15 0.880 -.203704 .2376022
Non arriva a fine mese | -.0623426 .2028095 -0.31 0.759 -.4599504 .3352651
|
chiesa3 |
Qualche volta l'anno | .2968119 .1351945 2.20 0.028 .0317632 .5618605
Almeno una volta al mese | .0845199 .1406878 0.60 0.548 -.1912983 .3603382
|
occup |
Disoccupato/a | .0533016 .2200768 0.24 0.809 -.3781586 .4847618
Studente/ssa | -.1541926 .1660328 -0.93 0.353 -.4796995 .1713144
Pensionato/a | .207128 .1793433 1.15 0.248 -.1444742 .5587302
Casalinga/o e altro | .1546264 .2610107 0.59 0.554 -.3570847 .6663376
|
area4 |
Nord-est | -.6085527 .3042239 -2.00 0.046 -1.204983 -.0121223
Centro | -.5413199 .3104461 -1.74 0.081 -1.149949 .0673091
Sud e isole | -1.154069 .2952371 -3.91 0.000 -1.732881 -.5752574
|
econ_peggio | -.0254522 .0550568 -0.46 0.644 -.1333909 .0824865
|
ue |
Né bene né male | .6859997 .1472531 4.66 0.000 .3973102 .9746893
Un male | 1.155543 .1754425 6.59 0.000 .8115883 1.499498
|
immig_contro | .2663294 .0310208 8.59 0.000 .2055133 .3271456
v18_fdi | 1.903815 .2283627 8.34 0.000 1.456111 2.35152
dist_fdi | -.8768651 .0387232 -22.64 0.000 -.9527819 -.8009483
|
area4#c.dist_fdi |
Nord-est | .067036 .0557653 1.20 0.229 -.0422918 .1763638
Centro | .0834119 .0519798 1.60 0.109 -.0184944 .1853183
Sud e isole | .1922786 .0490968 3.92 0.000 .0960245 .2885328
|
_cons | 4.996945 .3576071 13.97 0.000 4.295856 5.698033
-------------------------------------------------------------------------------------------
. testparm c.dist_fdi#i.area4
( 1) 2.area4#c.dist_fdi = 0
( 2) 3.area4#c.dist_fdi = 0
( 3) 4.area4#c.dist_fdi = 0
F( 3, 4440) = 5.22
Prob > F = 0.0013
.
.11Avanzato: un modello unico per più partiti (dati stacked)
Il gruppo che studia la propensione a votare i partiti mainstream (o challenger) potrebbe voler stimare un unico modello per tutta la famiglia di partiti. Si trasforma il dataset in formato stacked (o long): ogni riga diventa una coppia intervistato × partito, con le variabili generiche costruite nella sezione 9. È l'approccio standard negli studi sulle PTV.
* Ogni riga = una coppia intervistato x partito. Serve per stimare un
* modello unico per tutta una famiglia di partiti (es. tutti i
* mainstream) invece di un modello per partito.
preserve
keep seriale wsociodem_trim ptv_* v18_* dist_* cred_*
reshape long ptv_ v18_ dist_ cred_, i(seriale) j(partito) string
rename (ptv_ v18_ dist_ cred_) (ptv v18 dist cred)
label variable v18 "Ha votato il partito nel 2018"
label variable dist "Distanza ideologica dal partito"
label variable cred "Partito credibile sull'economia"
encode partito, gen(partito_n)
describe, short
list seriale partito ptv v18 dist cred in 1/5, sepby(seriale)
gen byte mainstream = inlist(partito, "pd", "fi")
gen byte challenger = inlist(partito, "fdi", "m5s")
* Solo variabili "generiche" (relazione intervistato-partito) +
* effetti fissi di partito (i.partito_n). Le caratteristiche
* individuali (eta', istruzione...) non si inseriscono cosi' come sono:
* hanno effetti di segno diverso per partiti diversi (vedi la
* procedura "y-hat" di van der Eijk et al. 2006).
* Errori standard raggruppati per intervistato: ogni persona compare
* piu' volte nel dataset.
eststo s_main: regress ptv v18 dist cred i.partito_n $w ///
if mainstream, vce(cluster seriale)
eststo s_chal: regress ptv v18 dist cred i.partito_n $w ///
if challenger, vce(cluster seriale)
esttab s_main s_chal, b(%9.2f) se(%9.2f) star(* 0.05 ** 0.01 *** 0.001) ///
r2 label nobaselevels varwidth(32) modelwidth(22) keep(v18 dist cred) ///
mtitles("Mainstream (PD, FI)" "Challenger (FdI, M5S)")
restorereshape long: da 6.250 righe (una per intervistato) a 31.250 (cinque per intervistato). Sotto, le cinque righe del primo intervistato.- In entrambe le famiglie contano prossimità e valenza: ogni punto di distanza riduce la PTV di circa 0,6 punti; la credibilità economica la aumenta di 3,1 punti per i mainstream e di 4,4 per i challenger.
i.partito_n(effetti fissi di partito) tiene conto del fatto che alcuni partiti sono in media più votabili di altri.vce(cluster seriale)corregge gli errori standard: ogni intervistato compare più volte e le sue risposte non sono indipendenti.- Le variabili socio-demografiche non si inseriscono così come sono, perché hanno effetti di segno opposto per partiti diversi (l'età può aumentare la PTV per un partito e ridurla per un altro). La soluzione standard è la procedura «y-hat» (van der Eijk et al. 2006): chiedete prima di usarla.
preserveerestorepermettono di trasformare i dati e poi tornare al dataset originale.
Output completo della sezione 11 (testo del log di Stata)
. *====================================================================
. * SEZIONE 11. Avanzato: un modello unico su piu' partiti (dati stacked)
. *====================================================================
. * Ogni riga = una coppia intervistato x partito. Serve per stimare un
. * modello unico per tutta una famiglia di partiti (es. tutti i
. * mainstream) invece di un modello per partito.
. preserve
. keep seriale wsociodem_trim ptv_* v18_* dist_* cred_*
. reshape long ptv_ v18_ dist_ cred_, i(seriale) j(partito) string
(j = fdi fi lega m5s pd)
Data Wide -> Long
-----------------------------------------------------------------------------
Number of observations 6,250 -> 31,250
Number of variables 22 -> 7
j variable (5 values) -> partito
xij variables:
ptv_fdi ptv_fi ... ptv_pd -> ptv_
v18_fdi v18_fi ... v18_pd -> v18_
dist_fdi dist_fi ... dist_pd -> dist_
cred_fdi cred_fi ... cred_pd -> cred_
-----------------------------------------------------------------------------
. rename (ptv_ v18_ dist_ cred_) (ptv v18 dist cred)
. label variable v18 "Ha votato il partito nel 2018"
. label variable dist "Distanza ideologica dal partito"
. label variable cred "Partito credibile sull'economia"
. encode partito, gen(partito_n)
. describe, short
Contains data
Observations: 31,250
Variables: 8
Sorted by: seriale partito
Note: Dataset has changed since last saved.
. list seriale partito ptv v18 dist cred in 1/5, sepby(seriale)
+-------------------------------------------------+
| seriale partito ptv v18 dist cred |
|-------------------------------------------------|
1. | 9 fdi 0 0 1.543377 0 |
2. | 9 fi 10 1 .543481 1 |
3. | 9 lega 0 0 1.159467 0 |
4. | 9 m5s 0 0 3.05727 0 |
5. | 9 pd 0 0 3.852582 0 |
+-------------------------------------------------+
.
. gen byte mainstream = inlist(partito, "pd", "fi")
. gen byte challenger = inlist(partito, "fdi", "m5s")
.
. * Solo variabili "generiche" (relazione intervistato-partito) +
. * effetti fissi di partito (i.partito_n). Le caratteristiche
. * individuali (eta', istruzione...) non si inseriscono cosi' come sono:
. * hanno effetti di segno diverso per partiti diversi (vedi la
. * procedura "y-hat" di van der Eijk et al. 2006).
. * Errori standard raggruppati per intervistato: ogni persona compare
. * piu' volte nel dataset.
. eststo s_main: regress ptv v18 dist cred i.partito_n $w ///
> if mainstream, vce(cluster seriale)
(sum of wgt is 2,637.7387650311)
Linear regression Number of obs = 3,368
F(4, 1693) = 596.87
Prob > F = 0.0000
R-squared = 0.4127
Root MSE = 2.5907
(Std. err. adjusted for 1,694 clusters in seriale)
------------------------------------------------------------------------------
| Robust
ptv | Coefficient std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
v18 | 1.900757 .204821 9.28 0.000 1.499028 2.302486
dist | -.5944848 .0260144 -22.85 0.000 -.6455086 -.5434609
cred | 3.086645 .2008551 15.37 0.000 2.692695 3.480595
|
partito_n |
pd | .2800457 .1166882 2.40 0.017 .0511775 .5089139
_cons | 4.189691 .1480564 28.30 0.000 3.899298 4.480083
------------------------------------------------------------------------------
. eststo s_chal: regress ptv v18 dist cred i.partito_n $w ///
> if challenger, vce(cluster seriale)
(sum of wgt is 2,637.35256144404)
Linear regression Number of obs = 3,370
F(4, 1692) = 625.92
Prob > F = 0.0000
R-squared = 0.4623
Root MSE = 2.5568
(Std. err. adjusted for 1,693 clusters in seriale)
------------------------------------------------------------------------------
| Robust
ptv | Coefficient std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
v18 | 1.469487 .2012768 7.30 0.000 1.07471 1.864265
dist | -.5604724 .0269646 -20.79 0.000 -.6133599 -.5075849
cred | 4.396923 .2072789 21.21 0.000 3.990373 4.803473
|
partito_n |
m5s | -1.131419 .1213023 -9.33 0.000 -1.369338 -.8935007
_cons | 4.622545 .1759222 26.28 0.000 4.277498 4.967593
------------------------------------------------------------------------------
. esttab s_main s_chal, b(%9.2f) se(%9.2f) star(* 0.05 ** 0.01 *** 0.001) ///
> r2 label nobaselevels varwidth(32) modelwidth(22) keep(v18 dist cred) ///
> mtitles("Mainstream (PD, FI)" "Challenger (FdI, M5S)")
------------------------------------------------------------------------------------
(1) (2)
Mainstream (PD, FI) Challenger (FdI, M5S)
------------------------------------------------------------------------------------
Ha votato il partito nel 2018 1.90*** 1.47***
(0.20) (0.20)
Distanza ideologica dal partito -0.59*** -0.56***
(0.03) (0.03)
Partito credibile sull'economia 3.09*** 4.40***
(0.20) (0.21)
------------------------------------------------------------------------------------
Observations 3368 3370
R-squared 0.413 0.462
------------------------------------------------------------------------------------
Standard errors in parentheses
* p<0.05, ** p<0.01, *** p<0.001
. restore
.
.12Esportare tabelle e grafici per la presentazione
* tabella in formato Word (.rtf si apre con Word)
esttab m1 m2 m3 m4 using "tabella_modelli_fdi.rtf", replace ///
b(%9.2f) se(%9.2f) star(* 0.05 ** 0.01 *** 0.001) r2 ar2 label ///
nobaselevels mtitles("Socio-dem." "+ atteggiamenti" "+ distanza" "+ leader") ///
title("Determinanti della PTV per FdI (OLS, Itanes 2022)") ///
addnotes("Errori standard robusti tra parentesi. Dati pesati.")
* la stessa tabella in .csv (si apre con Excel)
esttab m1 m2 m3 m4 using "tabella_modelli_fdi.csv", replace ///
b(%9.2f) se(%9.2f) star(* 0.05 ** 0.01 *** 0.001) r2 label nobaselevels
esttab p_pd p_fi p_fdi p_m5s using "tabella_partiti.rtf", replace ///
b(%9.2f) se(%9.2f) star(* 0.05 ** 0.01 *** 0.001) r2 label ///
nobaselevels keep(v18 dist cred econ_peggio immig_contro) ///
mtitles("PD" "FI" "FdI" "M5S")
log close- Il file
.rtfsi apre con Word: da lì potete copiare la tabella nelle slide. Il.csvsi apre con Excel. - I grafici sono già salvati in PNG nella cartella
graficicongraph export(sezioni 4, 6 e 8). - In una slide non mettete tabelle con 25 righe: tenete le variabili focali con
keep()e indicate in nota quali controlli sono inclusi.
✓Checklist ed errori frequenti
Prima di stimare
- Ho controllato i codici dei valori mancanti di ogni variabile (
tab, nolabel)? - Ho controllato quali domande sono state chieste solo a un sottocampione?
- Ho controllato ogni ricodifica incrociando originale e nuova variabile?
- Le scale vanno nella direzione giusta (valori alti = più favorevole, più ostile…)?
- Sto usando il peso raccomandato dal dataset?
- Ogni scelta di variabile e di ricodifica è giustificata dalla letteratura?
Mentre interpreto
- I modelli a blocchi sono stimati sullo stesso campione?
- Ho interpretato i coefficienti nell'unità della variabile (punti 0-10)?
- Ho confrontato i gruppi con un'interazione e non con gli asterischi?
- Ho controllato la multicollinearità tra variabili simili?
- Ho discusso anche i risultati nulli o contrari alle attese?
Errori frequenti di Stata
| Messaggio | Cosa significa | Soluzione |
|---|---|---|
file … not found (r(601)) | Stata non trova il file dei dati | Controllate la riga cd e il nome del file (spazi compresi) |
variable … already defined (r(110)) | State creando una variabile che esiste già, di solito perché avete rieseguito una sezione | Rieseguite tutto il do-file dall'inizio (la riga use …, clear riparte dai dati originali) |
variable … not found (r(111)) | Nome sbagliato, o la variabile viene creata in una sezione non ancora eseguita | Controllate il nome con describe o lookfor |
command esttab is unrecognized | Il pacchetto non è installato | ssc install estout |
no observations (r(2000)) | Dopo i filtri e i missing non resta nessun caso | Controllate la condizione if e i missing con misstable summarize |