Opinione pubblica ed elezioni · LUISS · 2026/27

Tutorial Stata per il lavoro di gruppo

Dalla ricodifica delle variabili alla regressione multivariata: un'analisi completa della propensione al voto (PTV) con i dati Itanes 2022 pre-elettorali, con codice e output di Stata.

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 estout e coefplot

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

ConcettoIn questo tutorial (Itanes 2022 pre)Nel vostro dataset
Variabile dipendentePTV 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-destraEES: 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 leaderEES: credibilità/competenza del partito su obiettivi condivisi
ControlliGenere, età, istruzione, condizione economica, religiosità, occupazione, zona, atteggiamenti su economia, UE e immigrazione, voto 2018Gli stessi, più quelli suggeriti dalla letteratura del vostro tema (es. party identification nell'EES)
ConfrontiPartiti (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.

Il do-file del tutorial aperto nel Do-file Editor di Stata. Per eseguire tutto si usa il pulsante <b>Do</b> in alto a destra; per eseguire solo alcune righe, selezionatele e premete lo stesso pulsante (scorciatoia: Ctrl+D su Windows, Cmd+Shift+D su Mac).
Il do-file del tutorial aperto nel Do-file Editor di Stata. Per eseguire tutto si usa il pulsante Do in alto a destra; per eseguire solo alcune righe, selezionatele e premete lo stesso pulsante (scorciatoia: Ctrl+D su Windows, Cmd+Shift+D su Mac).
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, replace
  • cd imposta 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 text salva tutto l'output in un file di testo: utile per ritrovare i risultati senza rieseguire.
  • ssc install scarica due pacchetti gratuiti: estout (tabelle di regressione affiancate) e coefplot (grafici dei coefficienti). capture which … / if _rc li installa solo se mancano.
L'interfaccia di Stata: a sinistra la finestra <b>Results</b> (output) e sotto la finestra <b>Command</b>; a destra l'elenco delle <b>Variables</b> e le <b>Properties</b> della variabile selezionata.
L'interfaccia di Stata: a sinistra la finestra Results (output) e sotto la finestra Command; a destra l'elenco delle Variables e le Properties della variabile selezionata.

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».

Codice
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, nolabel
Stata — Results
<code>describe</code> mostra nome, etichetta e set di etichette dei valori delle dodici PTV; <code>lookfor</code> 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 (<code>D08_1_01</code>) e la collocazione dei partiti (<code>D08_2_01</code>…).
describe 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…).
Stata — Results
<code>tab D09_01</code>: distribuzione della PTV per Fratelli d'Italia.
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

Codice
* --- 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, missing

La 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

Codice
* --- 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

Codice
* --- 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_colloca

Il 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

Codice
* --- 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, missing
Stata — Results
Controllo della ricodifica: ogni titolo di studio originale finisce in una sola delle tre nuove categorie, nessun caso va perso.
Controllo della ricodifica: ogni titolo di studio originale finisce in una sola delle tre nuove categorie, nessun caso va perso.
  • recode … (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

Codice
* --- 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_3 la 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

Codice
* --- 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, missing

La 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».

Codice
* 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)
Stata — Results
Media pesata della PTV per FdI (2,82) e confronto tra i cinque partiti con <code>tabstat</code>.
Media pesata della PTV per FdI (2,82) e confronto tra i cinque partiti con tabstat.
Distribuzione della PTV per FdI. Il 54% dei rispondenti dà 0: la variabile è molto asimmetrica, cosa tipica delle PTV (la maggior parte degli elettori esclude la maggior parte dei partiti).
Distribuzione della PTV per FdI. Il 54% dei rispondenti dà 0: la variabile è molto asimmetrica, cosa tipica delle PTV (la maggior parte degli elettori esclude la maggior parte dei partiti).

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 |

Codice
* --- 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)"
}
Stata — Results
La posizione di FdI è la media pesata delle collocazioni date da tutti gli intervistati (8,54 su 0-10). <code>r(mean)</code> è il risultato salvato da <code>summarize</code>.
La posizione di FdI è la media pesata delle collocazioni date da tutti gli intervistati (8,54 su 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)

Codice
* --- 5.2 Valenza: credibilita' del partito e giudizio sul leader ----
tab cred_fdi [aw=wsociodem_trim]
summarize leader_fdi

Il 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

Codice
* --- 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)
Stata — Results
Matrice di correlazione con il numero di casi validi per ogni coppia. L'asterisco indica p &lt; 0,05.
Matrice di correlazione con il numero di casi validi per ogni coppia. L'asterisco indica p < 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

Codice
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)
Stata — Results
Regressione semplice della PTV per FdI sulla distanza ideologica.
Regressione semplice della PTV per FdI sulla distanza ideologica.

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.

Diagramma di dispersione (con <i>jitter</i>, cioè un piccolo spostamento casuale dei punti per vederli tutti) e retta di regressione.
Diagramma di dispersione (con jitter, cioè un piccolo spostamento casuale dei punti per vederli tutti) e retta di regressione.
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
* 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

Codice
* --- 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 interesse

I 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

Codice
* --- 7.2 Un modello letto per intero --------------------------------
regress ptv_fdi $controlli $atteggiamenti v18_fdi dist_fdi $w if campione, vsquish
Stata — Results
Output completo del modello 3. L'opzione <code>vsquish</code> elimina le righe vuote.
Output completo del modello 3. L'opzione vsquish elimina le righe vuote.

Come si legge

  1. 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.
  2. 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.).
  3. 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.
  4. 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.
  5. 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.
  6. 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

Codice
* --- 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")
Stata — Results
I quattro modelli affiancati con <code>esttab</code>: coefficienti, errori standard tra parentesi, asterischi di significatività, N e R².
I quattro modelli affiancati con 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)

Codice
* --- 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à")
Stata — Results
Modello 3 e modello 3 più credibilità economica, stimati sugli stessi 1.547 casi del sottocampione (sono mostrate solo alcune variabili; i controlli sono nel modello).
Modello 3 e modello 3 più credibilità economica, stimati sugli stessi 1.547 casi del sottocampione (sono mostrate solo alcune variabili; i controlli sono nel modello).

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

Codice
* --- 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

Distanza (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à

Codice
* --- 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
Stata — Results
<code>estat vif</code> dopo un modello che contiene sia la distanza da FdI sia l'autocollocazione.
estat 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

Codice
* --- 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)
Coefficienti del modello 3 con intervalli di confidenza al 95%. Un coefficiente è significativo se il suo intervallo non tocca la linea dello zero.
Coefficienti del modello 3 con intervalli di confidenza al 95%. Un coefficiente è significativo se il suo intervallo non tocca la linea dello zero.

8.2 I valori predetti

Codice
* --- 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)
PTV predetta per FdI al variare della distanza ideologica (modello 3), con le altre variabili ai valori osservati.
PTV predetta per FdI al variare della distanza ideologica (modello 3), con le altre variabili ai valori osservati.

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?

Codice
* --- 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).

Stata — Results
<code>margins, dydx()</code>: l'effetto (pendenza) della distanza separatamente per poco e molto interessati.
margins, dydx(): l'effetto (pendenza) della distanza separatamente per poco e molto interessati.
PTV predetta per FdI per distanza e livello di interesse.
PTV predetta per FdI per distanza e livello di interesse.

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.

Codice
* 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))
Stata — Results
Lo stesso modello stimato separatamente per PD, FI, FdI e M5S sul sottocampione con la domanda di credibilità (sono mostrate solo alcune variabili; i controlli sono nel modello ma non in tabella, grazie all'opzione <code>keep()</code>).
Lo stesso modello stimato separatamente per PD, FI, FdI e M5S sul sottocampione con la domanda di credibilità (sono mostrate solo alcune variabili; i controlli sono nel modello ma non in tabella, grazie all'opzione 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.

Codice
* 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.area4
Stata — Results
Modelli separati per zona geografica e test dell'interazione nel modello unico.
Modelli separati per zona geografica e test dell'interazione nel modello unico.

L'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.

Codice
* 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)")
restore
Stata — Results
<code>reshape long</code>: da 6.250 righe (una per intervistato) a 31.250 (cinque per intervistato). Sotto, le cinque righe del primo intervistato.
reshape long: da 6.250 righe (una per intervistato) a 31.250 (cinque per intervistato). Sotto, le cinque righe del primo intervistato.
Stata — Results
Modelli stacked per le due famiglie di partiti, con effetti fissi di partito ed errori standard raggruppati per intervistato.
Modelli stacked per le due famiglie di partiti, con effetti fissi di partito ed errori standard raggruppati per 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.
  • preserve e restore permettono 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

Codice
* 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 .rtf si apre con Word: da lì potete copiare la tabella nelle slide. Il .csv si apre con Excel.
  • I grafici sono già salvati in PNG nella cartella grafici con graph 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

MessaggioCosa significaSoluzione
file … not found (r(601))Stata non trova il file dei datiControllate 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 sezioneRieseguite 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 eseguitaControllate il nome con describe o lookfor
command esttab is unrecognizedIl pacchetto non è installatossc install estout
no observations (r(2000))Dopo i filtri e i missing non resta nessun casoControllate la condizione if e i missing con misstable summarize