Opinione pubblica ed elezioni · LUISS · 2026/27

Tutorial Stata per il lavoro di gruppo

Dalla ricodifica delle variabili alla regressione multivariata: un'analisi completa del giudizio sui partiti con i dati Itanes 2022, 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 post-elettorale), e lo stesso esempio: quanto piace agli elettori un partito, su una scala da 0 a 10.

Cosa vi serve

  • Stata 17 o successivo (anche BE)
  • Il file Itanes2022_POST_release 01_weighted.dta
  • 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 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)Nel vostro dataset
Variabile dipendenteGiudizio su FdI, 0-10 (Q16a)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)Giudizio sul leader (indicatore indiretto)EES: credibilità/competenza del partito su obiettivi condivisi
ControlliGenere, età, istruzione, reddito, religiosità, occupazione, zona, PID, economiaGli stessi, più quelli suggeriti dalla letteratura del vostro tema
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 risponde».

Codice
use "Itanes2022_POST_release 01_weighted.dta", clear

* quante osservazioni e quante variabili
describe, short

* le variabili del giudizio sui partiti
describe Q16a-Q16h

* cercare variabili per parola chiave nelle etichette
lookfor sinistra

* codici e etichette di una variabile
codebook Q16a, tabulate(20)
tab Q16a
tab Q16a, nolabel
Stata — Results
<code>describe</code> mostra nome, etichetta e set di etichette dei valori; <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.
describe mostra nome, etichetta e set di etichette dei valori; 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.
Stata — Results
<code>tab Q16a</code>: distribuzione del giudizio su Fratelli d'Italia, con le etichette.
tab Q16a: distribuzione del giudizio su Fratelli d'Italia, con le etichette.
Output completo della sezione 2 (testo del log di Stata)
. *====================================================================
. * SEZIONE 2. Aprire ed esplorare i dati
. *====================================================================
. use "Itanes2022_POST_release 01_weighted.dta", clear

. 
. * quante osservazioni e quante variabili
. describe, short

Contains data from Itanes2022_POST_release 01_weighted.dta
 Observations:         4,696                  
    Variables:           169                  6 Jun 2023 00:52
Sorted by: seriale

. 
. * le variabili del giudizio sui partiti
. describe Q16a-Q16h

Variable      Storage   Display    Value
    name         type    format    label      Variable label
-----------------------------------------------------------------------------------------------------------------------------------
Q16a            double  %25.0g     Q16_01     Giudizio partito: Fratelli d'Italia
Q16b            double  %25.0g     Q16_02     Giudizio partito: Lega
Q16c            double  %25.0g     Q16_03     Giudizio partito: Forza Italia
Q16d            double  %25.0g     Q16_04     Giudizio partito: Azione-Italia Viva
Q16e            double  %25.0g     Q16_05     Giudizio partito: Movimento 5 Stelle
Q16f            double  %25.0g     Q16_06     Giudizio partito: Partito Democratico
Q16g            double  %25.0g     Q16_07     Giudizio partito: + Europa
Q16h            double  %25.0g     Q16_08   * Giudizio partito: Sinistra Italiana-Europa Verde

. 
. * cercare variabili per parola chiave nelle etichette
. lookfor sinistra

Variable      Storage   Display    Value
    name         type    format    label      Variable label
-----------------------------------------------------------------------------------------------------------------------------------
Q16h            double  %25.0g     Q16_08   * Giudizio partito: Sinistra Italiana-Europa Verde
sez12           double  %12.0g     sez12      SINISTRA - DESTRA (9)
Q19             double  %30.0g     Q19_01   * Autocollocazione sinistra/destra
Q18a            double  %25.0g     D18_01     Collocazione sinistra/destra: Fratelli d'Italia
Q18b            double  %25.0g     D18_02     Collocazione sinistra/destra: Lega
Q18c            double  %25.0g     D18_03     Collocazione sinistra/destra: Forza Italia
Q18d            double  %25.0g     D18_04     Collocazione sinistra/destra: Azione-Italia Viva
Q18e            double  %25.0g     D18_05     Collocazione sinistra/destra: Movimento 5 Stelle
Q18f            double  %25.0g     D18_06     Collocazione sinistra/destra: Partito Democratico
Q18g            double  %25.0g     D18_07     Collocazione sinistra/destra: +Europa
Q18h            double  %25.0g     D18_08   * Collocazione sinistra/destra: Sinistra Italiana-Europa Verde

. 
. * codici e etichette di una variabile
. codebook Q16a, tabulate(20)

-----------------------------------------------------------------------------------------------------------------------------------
Q16a                                                                                            Giudizio partito: Fratelli d'Italia
-----------------------------------------------------------------------------------------------------------------------------------

                  Type: Numeric (double)
                 Label: Q16_01

                 Range: [1,99]                        Units: 1
         Unique values: 14                        Missing .: 0/4,696

            Tabulation: Freq.   Numeric  Label
                        1,913         1  0 = Non mi piace affatto
                          277         2  1
                          182         3  2
                          174         4  3
                          163         5  4
                          251         6  5
                          283         7  6
                          295         8  7
                          243         9  8
                          223        10  9
                          378        11  10 = Mi piace molto
                           18        97  Non lo conosco
                          162        98  Non saprei
                          134        99  Preferisco non rispondere

. tab Q16a

        Giudizio partito: |
        Fratelli d'Italia |      Freq.     Percent        Cum.
--------------------------+-----------------------------------
 0 = Non mi piace affatto |      1,913       40.74       40.74
                        1 |        277        5.90       46.64
                        2 |        182        3.88       50.51
                        3 |        174        3.71       54.22
                        4 |        163        3.47       57.69
                        5 |        251        5.34       63.03
                        6 |        283        6.03       69.06
                        7 |        295        6.28       75.34
                        8 |        243        5.17       80.52
                        9 |        223        4.75       85.26
      10 = Mi piace molto |        378        8.05       93.31
           Non lo conosco |         18        0.38       93.70
               Non saprei |        162        3.45       97.15
Preferisco non rispondere |        134        2.85      100.00
--------------------------+-----------------------------------
                    Total |      4,696      100.00

. tab Q16a, nolabel

   Giudizio |
   partito: |
   Fratelli |
   d'Italia |      Freq.     Percent        Cum.
------------+-----------------------------------
          1 |      1,913       40.74       40.74
          2 |        277        5.90       46.64
          3 |        182        3.88       50.51
          4 |        174        3.71       54.22
          5 |        163        3.47       57.69
          6 |        251        5.34       63.03
          7 |        283        6.03       69.06
          8 |        295        6.28       75.34
          9 |        243        5.17       80.52
         10 |        223        4.75       85.26
         11 |        378        8.05       93.31
         97 |         18        0.38       93.70
         98 |        162        3.45       97.15
         99 |        134        2.85      100.00
------------+-----------------------------------
      Total |      4,696      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: giudizio su FdI ----------------------
* Q16a e' codificata 1-11 (1 = "0 non mi piace affatto", 11 = "10
* mi piace molto"); 97, 98, 99 sono "non lo conosco", "non saprei",
* "preferisco non rispondere" -> missing
gen ptv_fdi = Q16a - 1 if inrange(Q16a, 1, 11)
label variable ptv_fdi "Giudizio su FdI (0-10)"

* controllo: ogni codice originale finisce nel valore giusto?
tab Q16a ptv_fdi if Q16a <= 3 | Q16a >= 10, missing

La condizione if inrange(Q16a, 1, 11) fa sì che i codici 97-99 diventino missing (.): Stata li escluderà automaticamente da medie e regressioni. La tabella di controllo mostra che 1 è diventato 0, 11 è diventato 10 e 97-99 sono diventati missing.

3.2 Gli altri partiti, con un ciclo

Codice
* --- 3.2 Lo stesso per tutti gli altri partiti, con un ciclo ---------
* lettera della variabile Itanes:  b    c   d     e    f   g     h
local partiti "lega fi aziv m5s pd piueu avs"
local lettere "b c d e f g h"
forvalues i = 1/7 {
    local p : word `i' of `partiti'
    local l : word `i' of `lettere'
    gen ptv_`p' = Q16`l' - 1 if inrange(Q16`l', 1, 11)
    label variable ptv_`p' "Giudizio su `p' (0-10)"
}

* posizione dei partiti sull'asse sinistra-destra (percepita, 0-10)
* e giudizio sui leader (0-10): stessi codici, stesso ciclo
local partiti "fdi lega fi aziv m5s pd piueu avs"
local lettere "a b c d e f g h"
forvalues i = 1/8 {
    local p : word `i' of `partiti'
    local l : word `i' of `lettere'
    gen lr_`p'     = Q18`l' - 1 if inrange(Q18`l', 1, 11)
    gen leader_`p' = Q17`l' - 1 if inrange(Q17`l', 1, 11)
    label variable lr_`p'     "Posizione percepita di `p' (0-10)"
    label variable leader_`p' "Giudizio sul leader di `p' (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 tutti gli otto partiti. Il ciclo non è obbligatorio: potete anche scrivere un gen per ogni partito, il risultato è lo stesso.

3.3 L'autocollocazione sinistra-destra

Codice
* --- 3.3 Autocollocazione sinistra-destra ---------------------------
* Q19: 1-11 -> 0-10; 96 = non si colloca; 98, 99 -> missing
gen lr_self = Q19 - 1 if inrange(Q19, 1, 11)
label variable lr_self "Autocollocazione sinistra-destra (0-10)"
gen byte non_colloca = (Q19 == 96)
label variable non_colloca "Non si colloca sull'asse sinistra-destra"
tab non_colloca

Il 16% degli intervistati (768 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 D01 (1 = 0 "Uomo") (2 = 1 "Donna") (else = .), gen(donna)
label variable donna "Genere"

recode eta_classe (1/2 = 1 "18-34") (3/4 = 2 "35-54") (5/6 = 3 "55+"), ///
    gen(eta3)
label variable eta3 "Classe d'eta'"

recode scol (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: chi non risponde (98, 99) e' il 17%: invece di perderlo
* lo teniamo come categoria a parte
recode D09 (1/2 = 1 "Meno di 20 mila") (3/4 = 2 "20-40 mila")   ///
           (5/11 = 3 "Oltre 40 mila") (98 99 = 4 "Non indica"), ///
           gen(reddito)
label variable reddito "Reddito familiare annuo"

recode D11 (1 = 1 "Mai") (2/4 = 2 "Qualche volta l'anno o al mese") ///
           (5/6 = 3 "Almeno 2 volte 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 (D06 lavora si'/no, D06_2
* condizione di chi non lavora) -> una sola variabile
gen occup = .
replace occup = 1 if D06 == 1
replace occup = 2 if D06_2 == 1
replace occup = 3 if D06_2 == 2
replace occup = 4 if D06_2 == 3
replace occup = 5 if inlist(D06_2, 4, 5, 6)
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 scol edu3, missing
tab D09 reddito, 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 «preferisco non rispondere»).
  • Per il reddito quasi un intervistato su cinque non risponde: invece di perdere quei casi li teniamo come categoria «Non indica». È una scelta comune e va dichiarata.
  • 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 = Q09 if inrange(Q09, 1, 5)
label variable econ_peggio "Economia italiana peggiorata (1-5)"

* interesse per la politica (sofisticazione, settimana 4)
recode Q01 (1 2 = 1 "Molto o abbastanza") (3 4 = 0 "Poco o per niente") ///
           (else = .), gen(interesse)
label variable interesse "Interesse per la politica"

* identificazione di partito: Q23c chiesta solo a chi si sente vicino
* a un partito (Q23a o Q23b = si'); tutti gli altri valgono 0
gen byte pid_fdi   = (Q23c == 1)          if !inlist(Q23c, 98, 99)
gen byte pid_lega  = (Q23c == 2)          if !inlist(Q23c, 98, 99)
gen byte pid_fi    = (Q23c == 3)          if !inlist(Q23c, 98, 99)
gen byte pid_aziv  = inlist(Q23c, 4, 5)   if !inlist(Q23c, 98, 99)
gen byte pid_m5s   = (Q23c == 6)          if !inlist(Q23c, 98, 99)
gen byte pid_pd    = (Q23c == 7)          if !inlist(Q23c, 98, 99)
gen byte pid_piueu = (Q23c == 8)          if !inlist(Q23c, 98, 99)
gen byte pid_avs   = inlist(Q23c, 10, 11) if !inlist(Q23c, 98, 99)
label variable pid_fdi "Si sente vicino a FdI"
tab pid_fdi, missing

L'identificazione di partito si chiede in due passaggi: prima «si sente vicino a un partito?», poi «quale?». Chi non si sente vicino a nessun partito ha Q23c «non si applica» e riceve 0 su tutte le variabili pid_; solo chi non sa o non risponde diventa missing.

Output completo della sezione 3 (testo del log di Stata)
. *====================================================================
. * SEZIONE 3. Ricodificare le variabili
. *====================================================================
. 
. * --- 3.1 Variabile dipendente: giudizio su FdI ----------------------
. * Q16a e' codificata 1-11 (1 = "0 non mi piace affatto", 11 = "10
. * mi piace molto"); 97, 98, 99 sono "non lo conosco", "non saprei",
. * "preferisco non rispondere" -> missing
. gen ptv_fdi = Q16a - 1 if inrange(Q16a, 1, 11)
(314 missing values generated)

. label variable ptv_fdi "Giudizio su FdI (0-10)"

. 
. * controllo: ogni codice originale finisce nel valore giusto?
. tab Q16a ptv_fdi if Q16a <= 3 | Q16a >= 10, missing

    Giudizio partito: |                      Giudizio su FdI (0-10)
    Fratelli d'Italia |         0          1          2          9         10          . |     Total
----------------------+------------------------------------------------------------------+----------
0 = Non mi piace affa |     1,913          0          0          0          0          0 |     1,913 
                    1 |         0        277          0          0          0          0 |       277 
                    2 |         0          0        182          0          0          0 |       182 
                    9 |         0          0          0        223          0          0 |       223 
  10 = Mi piace molto |         0          0          0          0        378          0 |       378 
       Non lo conosco |         0          0          0          0          0         18 |        18 
           Non saprei |         0          0          0          0          0        162 |       162 
Preferisco non rispon |         0          0          0          0          0        134 |       134 
----------------------+------------------------------------------------------------------+----------
                Total |     1,913        277        182        223        378        314 |     3,287 

. 
. * --- 3.2 Lo stesso per tutti gli altri partiti, con un ciclo ---------
. * lettera della variabile Itanes:  b    c   d     e    f   g     h
. local partiti "lega fi aziv m5s pd piueu avs"

. local lettere "b c d e f g h"

. forvalues i = 1/7 {
  2.     local p : word `i' of `partiti'
  3.     local l : word `i' of `lettere'
  4.     gen ptv_`p' = Q16`l' - 1 if inrange(Q16`l', 1, 11)
  5.     label variable ptv_`p' "Giudizio su `p' (0-10)"
  6. }
(284 missing values generated)
(295 missing values generated)
(428 missing values generated)
(286 missing values generated)
(300 missing values generated)
(522 missing values generated)
(437 missing values generated)

. 
. * posizione dei partiti sull'asse sinistra-destra (percepita, 0-10)
. * e giudizio sui leader (0-10): stessi codici, stesso ciclo
. local partiti "fdi lega fi aziv m5s pd piueu avs"

. local lettere "a b c d e f g h"

. forvalues i = 1/8 {
  2.     local p : word `i' of `partiti'
  3.     local l : word `i' of `lettere'
  4.     gen lr_`p'     = Q18`l' - 1 if inrange(Q18`l', 1, 11)
  5.     gen leader_`p' = Q17`l' - 1 if inrange(Q17`l', 1, 11)
  6.     label variable lr_`p'     "Posizione percepita di `p' (0-10)"
  7.     label variable leader_`p' "Giudizio sul leader di `p' (0-10)"
  8. }
(438 missing values generated)
(269 missing values generated)
(444 missing values generated)
(251 missing values generated)
(432 missing values generated)
(257 missing values generated)
(773 missing values generated)
(336 missing values generated)
(684 missing values generated)
(259 missing values generated)
(471 missing values generated)
(323 missing values generated)
(906 missing values generated)
(339 missing values generated)
(573 missing values generated)
(1,061 missing values generated)

. label variable leader_fdi "Giudizio su Meloni (0-10)"

. 
. * --- 3.3 Autocollocazione sinistra-destra ---------------------------
. * Q19: 1-11 -> 0-10; 96 = non si colloca; 98, 99 -> missing
. gen lr_self = Q19 - 1 if inrange(Q19, 1, 11)
(965 missing values generated)

. label variable lr_self "Autocollocazione sinistra-destra (0-10)"

. gen byte non_colloca = (Q19 == 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 |      3,928       83.65       83.65
          1 |        768       16.35      100.00
------------+-----------------------------------
      Total |      4,696      100.00

. 
. * --- 3.4 Variabili socio-demografiche (controlli) -------------------
. recode D01 (1 = 0 "Uomo") (2 = 1 "Donna") (else = .), gen(donna)
(4,696 differences between D01 and donna)

. label variable donna "Genere"

. 
. recode eta_classe (1/2 = 1 "18-34") (3/4 = 2 "35-54") (5/6 = 3 "55+"), ///
>     gen(eta3)
(4,417 differences between eta_classe and eta3)

. label variable eta3 "Classe d'eta'"

. 
. recode scol (1/3 = 1 "Fino alla licenza media") (4/6 = 2 "Diploma") ///
>             (7/11 = 3 "Laurea o più"), gen(edu3)
(4,634 differences between scol and edu3)

. label variable edu3 "Titolo di studio"

. 
. * reddito: chi non risponde (98, 99) e' il 17%: invece di perderlo
. * lo teniamo come categoria a parte
. recode D09 (1/2 = 1 "Meno di 20 mila") (3/4 = 2 "20-40 mila")   ///
>            (5/11 = 3 "Oltre 40 mila") (98 99 = 4 "Non indica"), ///
>            gen(reddito)
(4,399 differences between D09 and reddito)

. label variable reddito "Reddito familiare annuo"

. 
. recode D11 (1 = 1 "Mai") (2/4 = 2 "Qualche volta l'anno o al mese") ///
>            (5/6 = 3 "Almeno 2 volte al mese") (else = .), gen(chiesa3)
(2,509 differences between D11 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)
(547 differences between area and area4)

. label variable area4 "Zona geografica"

. 
. * condizione occupazionale: due domande (D06 lavora si'/no, D06_2
. * condizione di chi non lavora) -> una sola variabile
. gen occup = .
(4,696 missing values generated)

. replace occup = 1 if D06 == 1
(2,383 real changes made)

. replace occup = 2 if D06_2 == 1
(307 real changes made)

. replace occup = 3 if D06_2 == 2
(239 real changes made)

. replace occup = 4 if D06_2 == 3
(1,085 real changes made)

. replace occup = 5 if inlist(D06_2, 4, 5, 6)
(481 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 scol edu3, missing

       Qual  è il Suo |         Titolo di studio
    titolo di studio? | Fino alla    Diploma  Laurea o  |     Total
----------------------+---------------------------------+----------
elementare / privo di |        62          0          0 |        62 
      media inferiore |       479          0          0 |       479 
   superiori in corso |        56          0          0 |        56 
diploma di istituto p |         0        405          0 |       405 
diploma di maturità ( |         0      2,453          0 |     2,453 
università in corso / |         0        441          0 |       441 
diploma universitario |         0          0        207 |       207 
laurea triennale di I |         0          0         94 |        94 
laurea specialistica  |         0          0        373 |       373 
master / scuola di sp |         0          0        100 |       100 
 dottorato di ricerca |         0          0         26 |        26 
----------------------+---------------------------------+----------
                Total |       597      3,299        800 |     4,696 

. tab D09 reddito, missing

    Può indicare qual |
     è all'incirca il |
reddito annuale della |           Reddito familiare annuo
        sua famiglia? | Meno di 2  20-40 mil  Oltre 40   Non indic |     Total
----------------------+--------------------------------------------+----------
   Meno di Euro 9.990 |       297          0          0          0 |       297 
   Euro 10.000-19.990 |       711          0          0          0 |       711 
   Euro 20.000-29.990 |         0        964          0          0 |       964 
   Euro 30.000-39.990 |         0        794          0          0 |       794 
   Euro 40.000-49.990 |         0          0        464          0 |       464 
   Euro 50.000-59.990 |         0          0        293          0 |       293 
   Euro 60.000-69.990 |         0          0        128          0 |       128 
   Euro 70.000-79.990 |         0          0         94          0 |        94 
   Euro 80.000-89.900 |         0          0         45          0 |        45 
   Euro 90.000-99.990 |         0          0         29          0 |        29 
   oltre Euro 100.000 |         0          0         53          0 |        53 
           Non saprei |         0          0          0        190 |       190 
Preferisco non rispon |         0          0          0        634 |       634 
----------------------+--------------------------------------------+----------
                Total |     1,008      1,758      1,106        824 |     4,696 

. 
. * --- 3.5 Atteggiamenti politici ------------------------------------
. * percezione dell'economia italiana: 1 molto migliorata ... 5 molto
. * peggiorata (valori alti = giudizio piu' negativo)
. gen econ_peggio = Q09 if inrange(Q09, 1, 5)
(202 missing values generated)

. label variable econ_peggio "Economia italiana peggiorata (1-5)"

. 
. * interesse per la politica (sofisticazione, settimana 4)
. recode Q01 (1 2 = 1 "Molto o abbastanza") (3 4 = 0 "Poco o per niente") ///
>            (else = .), gen(interesse)
(3,882 differences between Q01 and interesse)

. label variable interesse "Interesse per la politica"

. 
. * identificazione di partito: Q23c chiesta solo a chi si sente vicino
. * a un partito (Q23a o Q23b = si'); tutti gli altri valgono 0
. gen byte pid_fdi   = (Q23c == 1)          if !inlist(Q23c, 98, 99)
(83 missing values generated)

. gen byte pid_lega  = (Q23c == 2)          if !inlist(Q23c, 98, 99)
(83 missing values generated)

. gen byte pid_fi    = (Q23c == 3)          if !inlist(Q23c, 98, 99)
(83 missing values generated)

. gen byte pid_aziv  = inlist(Q23c, 4, 5)   if !inlist(Q23c, 98, 99)
(83 missing values generated)

. gen byte pid_m5s   = (Q23c == 6)          if !inlist(Q23c, 98, 99)
(83 missing values generated)

. gen byte pid_pd    = (Q23c == 7)          if !inlist(Q23c, 98, 99)
(83 missing values generated)

. gen byte pid_piueu = (Q23c == 8)          if !inlist(Q23c, 98, 99)
(83 missing values generated)

. gen byte pid_avs   = inlist(Q23c, 10, 11) if !inlist(Q23c, 98, 99)
(83 missing values generated)

. label variable pid_fdi "Si sente vicino a FdI"

. tab pid_fdi, missing

   Si sente |
   vicino a |
        FdI |      Freq.     Percent        Cum.
------------+-----------------------------------
          0 |      4,072       86.71       86.71
          1 |        541       11.52       98.23
          . |         83        1.77      100.00
------------+-----------------------------------
      Total |      4,696      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("Giudizio su Fratelli d'Italia (0 = per niente, 10 = molto)") ///
    title("Quanto piace Fratelli d'Italia?")                         ///
    note("Fonte: Itanes 2022, onda post-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_aziv ptv_m5s ptv_pd ptv_piueu ptv_avs ///
    [aw=wsociodem_trim], statistics(mean sd n) columns(statistics) format(%5.2f)

* giudizio medio per gruppo sociale
tabstat ptv_fdi [aw=wsociodem_trim], by(edu3) statistics(mean sd n) format(%5.2f)
Stata — Results
Media pesata del giudizio su FdI (3,31) e confronto tra gli otto partiti con <code>tabstat</code>.
Media pesata del giudizio su FdI (3,31) e confronto tra gli otto partiti con tabstat.
Distribuzione del giudizio su FdI. Il 44% dei rispondenti dà 0: la variabile è molto asimmetrica, cosa tipica dei giudizi sui partiti e delle PTV.
Distribuzione del giudizio su FdI. Il 44% dei rispondenti dà 0: la variabile è molto asimmetrica, cosa tipica dei giudizi sui partiti e delle PTV.

La distribuzione non è normale: una grossa massa a 0 e una seconda moda tra 6 e 10. Non impedisce di usare l'OLS, che resta lo strumento standard per le PTV, ma è un'informazione da riportare. La tabella per titolo di studio mostra già una prima differenza: 3,50 tra chi ha al massimo la licenza media, 2,85 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 |      4,382    3.323597    3.673105          0         10

. summarize ptv_fdi [aw=wsociodem_trim]

    Variable |     Obs      Weight        Mean   Std. dev.       Min        Max
-------------+-----------------------------------------------------------------
     ptv_fdi |   4,382  3886.54571     3.31127   3.684083          0         10

. 
. histogram ptv_fdi, discrete percent                         ///
>     xlabel(0(1)10) ytitle("% degli intervistati")                   ///
>     xtitle("Giudizio su Fratelli d'Italia (0 = per niente, 10 = molto)") ///
>     title("Quanto piace Fratelli d'Italia?")                         ///
>     note("Fonte: Itanes 2022, onda post-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_aziv ptv_m5s ptv_pd ptv_piueu ptv_avs ///
>     [aw=wsociodem_trim], statistics(mean sd n) columns(statistics) format(%5.2f)

    Variable |      Mean        SD         N
-------------+------------------------------
     ptv_fdi |      3.31      3.68   4382.00
    ptv_lega |      2.64      3.25   4412.00
      ptv_fi |      2.57      3.13   4401.00
    ptv_aziv |      2.46      2.92   4268.00
     ptv_m5s |      3.31      3.36   4410.00
      ptv_pd |      3.19      3.09   4396.00
   ptv_piueu |      2.81      2.91   4174.00
     ptv_avs |      2.82      2.99   4259.00
--------------------------------------------

. 
. * giudizio medio 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.50      3.81    538.00
         Diploma |      3.31      3.64   3081.00
    Laurea o più |      2.85      3.44    763.00
-----------------+------------------------------
           Total |      3.31      3.68   4382.00
------------------------------------------------

. 
.

5Le variabili focali: prossimità e valenza

5.1 La distanza ideologica (modello spaziale di Downs)

Secondo il modello spaziale, un elettore valuta meglio 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 aziv m5s pd piueu avs {
    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,38 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,38 su 0-10). r(mean) è il risultato salvato da summarize.

Perché la posizione media e non quella percepita da ciascuno? Chi apprezza un partito tende a collocarlo vicino a sé (proiezione), e chi lo detesta lo allontana: con la posizione percepita la distanza sarebbe in parte conseguenza, non causa, del giudizio. Le posizioni medie stimate sono: AVS 1,88; PD 2,93; +Europa 3,43; M5S 3,59; Azione-IV 4,51; FI 7,37; Lega 7,95; FdI 8,38. 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: il giudizio sul leader ----------------------------
* Nell'onda post di Itanes 2022 non c'e' una domanda sulla competenza
* dei partiti: usiamo il giudizio sul leader come indicatore di
* valenza (con cautela: e' molto vicino al giudizio sul partito).
* Nell'EES userete le domande sulla credibilita'/competenza.
summarize leader_fdi

5.3 Le correlazioni

Codice
* --- 5.3 Correlazioni tra variabile dipendente e variabili focali --
pwcorr ptv_fdi dist_fdi leader_fdi lr_self pid_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.

Tre cose da notare. La distanza è correlata negativamente con il giudizio (−0,74), come previsto. Il giudizio sul leader è quasi sovrapposto al giudizio sul partito (0,91). Distanza da FdI e autocollocazione sono correlate a −0,96: per un partito collocato all'estremo, «essere vicini a FdI» e «essere di destra» sono quasi la stessa informazione (lo ritroveremo nella sezione 7.5).

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 |   4,258  3698.62906    8.383564   2.359165          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.38

. 
. gen dist_fdi = abs(lr_self - pos_fdi)
(965 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 |      3,731     3.93626    2.553159   .3835643   8.383564

. 
. * lo stesso per gli altri partiti
. foreach p in lega fi aziv m5s pd piueu avs {
  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: 7.95
(965 missing values generated)
Posizione media di fi: 7.37
(965 missing values generated)
Posizione media di aziv: 4.51
(965 missing values generated)
Posizione media di m5s: 3.59
(965 missing values generated)
Posizione media di pd: 2.93
(965 missing values generated)
Posizione media di piueu: 3.43
(965 missing values generated)
Posizione media di avs: 1.88
(965 missing values generated)

. 
. * --- 5.2 Valenza: il giudizio sul leader ----------------------------
. * Nell'onda post di Itanes 2022 non c'e' una domanda sulla competenza
. * dei partiti: usiamo il giudizio sul leader come indicatore di
. * valenza (con cautela: e' molto vicino al giudizio sul partito).
. * Nell'EES userete le domande sulla credibilita'/competenza.
. summarize leader_fdi

    Variable |        Obs        Mean    Std. dev.       Min        Max
-------------+---------------------------------------------------------
  leader_fdi |      4,427    3.630901    3.722251          0         10

. 
. * --- 5.3 Correlazioni tra variabile dipendente e variabili focali --
. pwcorr ptv_fdi dist_fdi leader_fdi lr_self pid_fdi, obs star(0.05)

             |  ptv_fdi dist_fdi leade~di  lr_self  pid_fdi
-------------+---------------------------------------------
     ptv_fdi |   1.0000 
             |     4382
             |
    dist_fdi |  -0.7374*  1.0000 
             |     3636     3731
             |
  leader_fdi |   0.9147* -0.7229*  1.0000 
             |     4350     3652     4427
             |
     lr_self |   0.7588* -0.9582*  0.7470*  1.0000 
             |     3636     3731     3652     3731
             |
     pid_fdi |   0.5566* -0.4204*  0.5323*  0.4736*  1.0000 
             |     4318     3674     4359     3674     4613
             |

. 
.

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("Giudizio su FdI (0-10)")                                ///
       xtitle("Distanza ideologica da FdI (0-10)")                      ///
       legend(off) title("Più si è lontani, meno piace il partito")
graph export "grafici/fig2_scatter_distanza.png", replace width(1600)
Stata — Results
Regressione semplice del giudizio su FdI sulla distanza ideologica.
Regressione semplice del giudizio su FdI sulla distanza ideologica.

Come si legge: chi ha distanza zero da FdI dà in media 7,70 (la costante); ogni punto di distanza in più abbassa il giudizio di 1,07 punti. Il coefficiente è molto preciso (errore standard 0,02, p < 0,001) e la sola distanza spiega il 53% della varianza (R² = 0,53). N = 3.636: 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,111.72995471954)

Linear regression                               Number of obs     =      3,636
                                                F(1, 3634)        =    2578.26
                                                Prob > F          =     0.0000
                                                R-squared         =     0.5258
                                                Root MSE          =      2.603

------------------------------------------------------------------------------
             |               Robust
     ptv_fdi | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
    dist_fdi |  -1.074027    .021152   -50.78   0.000    -1.115498   -1.032556
       _cons |   7.696223   .1247904    61.67   0.000     7.451557    7.940889
------------------------------------------------------------------------------

. 
. twoway (scatter ptv_fdi dist_fdi, jitter(6) msize(vsmall) mcolor(%15))  ///
>        (lfit ptv_fdi dist_fdi [aw=wsociodem_trim], lwidth(thick)),      ///
>        ytitle("Giudizio su FdI (0-10)")                                ///
>        xtitle("Distanza ideologica da FdI (0-10)")                      ///
>        legend(off) title("Più si è lontani, meno piace il partito")

. 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 laureato o meno religioso. 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 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 pid_fdi dist_fdi leader_fdi interesse
tab campione

* quanti casi persi per variabile?
misstable summarize ptv_fdi donna chiesa3 econ_peggio pid_fdi 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 3.269 casi su 4.696 (70%); misstable mostra che la perdita maggiore viene dall'autocollocazione (chi non si colloca).

7.2 Leggere un modello per intero

Codice
* --- 7.2 Un modello letto per intero --------------------------------
regress ptv_fdi $controlli econ_peggio pid_fdi dist_fdi $w if campione, vsquish
Stata — Results
Output completo del modello 3. L'opzione <code>vsquish</code> elimina le righe vuote; nel do-file la tabella è identica.
Output completo del modello 3. L'opzione vsquish elimina le righe vuote; nel do-file la tabella è identica.

Come si legge

  1. Number of obs: 3.269 casi. R-squared: il modello spiega il 63% della varianza del giudizio su 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, ecc.).
  3. pid_fdi = 3,58: chi si sente vicino a FdI gli dà 3,6 punti in più di chi non lo è, a parità di distanza e di caratteristiche sociali.
  4. dist_fdi = −0,85: ogni punto di distanza ideologica in più costa 0,85 punti di giudizio. L'effetto si riduce rispetto alla bivariata (−1,07), perché parte di quell'effetto passava per l'identificazione di partito.
  5. 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 econ_peggio pid_fdi $w if campione
eststo m3: regress ptv_fdi $controlli econ_peggio pid_fdi dist_fdi $w if campione
eststo m4: regress ptv_fdi $controlli econ_peggio pid_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." "+ PID, econ." "+ 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 PID ed economia), 0,63 (con la distanza) e 0,87 (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,9/+2,0 punti per chi va a messa) che si riduce a +0,4/0,5 nel modello 3: in larga parte passa per l'identificazione e la collocazione ideologica. Lo stesso per la laurea (−0,91 → −0,14, non più significativa).
  • Con il giudizio sul leader (modello 4) quasi tutti gli altri coefficienti si riducono drasticamente: è il segnale che quella variabile è «troppo vicina» alla dipendente (sezione 5.2). Nel lavoro di gruppo è il tipo di risultato da discutere, non solo da riportare.

7.4 Coefficienti standardizzati

Codice
* --- 7.4 Coefficienti standardizzati (confrontare le variabili focali)
regress ptv_fdi $controlli econ_peggio pid_fdi dist_fdi leader_fdi ///
    [aw=wsociodem_trim] if campione, beta

Distanza (0-10), identificazione (0/1) e giudizio sul leader (0-10) 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: leader 0,78, distanza −0,13, PID 0,08. 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.5 Diagnostica: multicollinearità

Codice
* --- 7.5 Diagnostica: multicollinearita' ------------------------------
* (estat vif richiede un modello senza pesi pw)
quietly regress ptv_fdi $controlli econ_peggio pid_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 (13,3) e autocollocazione (14,5) sono quasi la stessa informazione (correlazione −0,96) 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 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 pid_fdi dist_fdi leader_fdi interesse

. tab campione

   campione |      Freq.     Percent        Cum.
------------+-----------------------------------
          0 |      1,427       30.39       30.39
          1 |      3,269       69.61      100.00
------------+-----------------------------------
      Total |      4,696      100.00

. 
. * quanti casi persi per variabile?
. misstable summarize ptv_fdi donna chiesa3 econ_peggio pid_fdi dist_fdi ///
>     leader_fdi interesse
                                                               Obs<.
                                                +------------------------------
               |                                | Unique
      Variable |     Obs=.     Obs>.     Obs<.  | values        Min         Max
  -------------+--------------------------------+------------------------------
       ptv_fdi |       314               4,382  |     11          0          10
         donna |       174               4,522  |      2          0           1
       chiesa3 |       302               4,394  |      3          1           3
   econ_peggio |       202               4,494  |      5          1           5
       pid_fdi |        83               4,613  |      2          0           1
      dist_fdi |       965               3,731  |     11   .3835643    8.383564
    leader_fdi |       269               4,427  |     11          0          10
     interesse |        58               4,638  |      2          0           1
  -----------------------------------------------------------------------------

. 
. * --- 7.2 Un modello letto per intero --------------------------------
. regress ptv_fdi $controlli econ_peggio pid_fdi dist_fdi $w if campione, vsquish
(sum of wgt is 2,750.42890641093)

Linear regression                               Number of obs     =      3,269
                                                F(20, 3248)       =     273.21
                                                Prob > F          =     0.0000
                                                R-squared         =     0.6314
                                                Root MSE          =     2.3195

-------------------------------------------------------------------------------------------------
                                |               Robust
                        ptv_fdi | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |   .0369513   .1219959     0.30   0.762    -.2022454     .276148
                           eta3 |
                         35-54  |   .0618876    .174604     0.35   0.723    -.2804575    .4042328
                           55+  |   .1386999   .1919567     0.72   0.470    -.2376685    .5150684
                           edu3 |
                       Diploma  |    .131852   .1540101     0.86   0.392    -.1701147    .4338188
                  Laurea o più  |  -.1370766   .1780974    -0.77   0.442    -.4862712    .2121179
                        reddito |
                    20-40 mila  |  -.2259909   .1732584    -1.30   0.192    -.5656978     .113716
                 Oltre 40 mila  |  -.0716238   .1805445    -0.40   0.692    -.4256165    .2823689
                    Non indica  |  -.1643038   .1927115    -0.85   0.394    -.5421523    .2135447
                        chiesa3 |
Qualche volta l'anno o al mese  |   .4718569   .1344244     3.51   0.000     .2082917    .7354221
        Almeno 2 volte al mese  |   .4282182   .1678971     2.55   0.011     .0990233    .7574132
                          occup |
                 Disoccupato/a  |  -.1043138   .3099924    -0.34   0.737    -.7121143    .5034866
                  Studente/ssa  |  -.4917451   .2303293    -2.13   0.033    -.9433505   -.0401397
                  Pensionato/a  |  -.2202483   .1689327    -1.30   0.192    -.5514738    .1109772
           Casalinga/o e altro  |   .0434507   .2471877     0.18   0.860    -.4412089    .5281103
                          area4 |
                      Nord-est  |   .1273238   .1690688     0.75   0.451    -.2041686    .4588161
                        Centro  |  -.0358715    .153711    -0.23   0.815    -.3372518    .2655088
                   Sud e isole  |   .2104521   .1526428     1.38   0.168    -.0888338    .5097381
                    econ_peggio |  -.0887351   .0569386    -1.56   0.119    -.2003743    .0229041
                        pid_fdi |   3.579004   .1763219    20.30   0.000     3.233291    3.924718
                       dist_fdi |  -.8530285   .0261255   -32.65   0.000    -.9042527   -.8018043
                          _cons |   6.330103   .3720315    17.01   0.000     5.600663    7.059543
-------------------------------------------------------------------------------------------------

. 
. * --- 7.3 Modelli a blocchi e tabella ----------------------------------
. eststo clear

. eststo m1: regress ptv_fdi $controlli $w if campione
(sum of wgt is 2,750.42890641093)

Linear regression                               Number of obs     =      3,269
                                                F(17, 3251)       =      11.87
                                                Prob > F          =     0.0000
                                                R-squared         =     0.0881
                                                Root MSE          =     3.6464

-------------------------------------------------------------------------------------------------
                                |               Robust
                        ptv_fdi | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |  -.2137035   .1839407    -1.16   0.245    -.5743549    .1469479
                                |
                           eta3 |
                         35-54  |   .1889398   .2507876     0.75   0.451     -.302778    .6806577
                           55+  |   .0201837   .2968981     0.07   0.946    -.5619427      .60231
                                |
                           edu3 |
                       Diploma  |  -.3888449   .2342406    -1.66   0.097     -.848119    .0704293
                  Laurea o più  |  -.9057217   .2755818    -3.29   0.001    -1.446053   -.3653901
                                |
                        reddito |
                    20-40 mila  |  -.1418956   .2635039    -0.54   0.590    -.6585462    .3747549
                 Oltre 40 mila  |   .5001492   .2802229     1.78   0.074    -.0492821     1.04958
                    Non indica  |  -.2957258   .3199725    -0.92   0.355    -.9230939    .3316424
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |   1.882724   .1987813     9.47   0.000     1.492974    2.272473
        Almeno 2 volte al mese  |   2.023179   .2509002     8.06   0.000     1.531241    2.515118
                                |
                          occup |
                 Disoccupato/a  |  -.1432669   .4503197    -0.32   0.750    -1.026206    .7396722
                  Studente/ssa  |  -1.045028   .3443603    -3.03   0.002    -1.720213   -.3698425
                  Pensionato/a  |  -.3329852   .2888134    -1.15   0.249    -.8992599    .2332894
           Casalinga/o e altro  |   .6749266   .3712871     1.82   0.069    -.0530537    1.402907
                                |
                          area4 |
                      Nord-est  |   .2482238    .263427     0.94   0.346    -.2682759    .7647235
                        Centro  |  -.0229861   .2625683    -0.09   0.930    -.5378022      .49183
                   Sud e isole  |   -.153488   .2384967    -0.64   0.520     -.621107     .314131
                                |
                          _cons |   2.787638   .3898297     7.15   0.000     2.023301    3.551975
-------------------------------------------------------------------------------------------------

. eststo m2: regress ptv_fdi $controlli econ_peggio pid_fdi $w if campione
(sum of wgt is 2,750.42890641093)

Linear regression                               Number of obs     =      3,269
                                                F(19, 3249)       =     111.33
                                                Prob > F          =     0.0000
                                                R-squared         =     0.3838
                                                Root MSE          =     2.9983

-------------------------------------------------------------------------------------------------
                                |               Robust
                        ptv_fdi | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |  -.0265366   .1574743    -0.17   0.866    -.3352955    .2822223
                                |
                           eta3 |
                         35-54  |   .0429222   .2251553     0.19   0.849    -.3985386    .4843829
                           55+  |  -.2222559   .2630584    -0.84   0.398    -.7380329    .2935212
                                |
                           edu3 |
                       Diploma  |  -.3697036   .1974922    -1.87   0.061    -.7569254    .0175183
                  Laurea o più  |  -.8671238   .2332614    -3.72   0.000    -1.324478   -.4097694
                                |
                        reddito |
                    20-40 mila  |  -.1146527   .2171444    -0.53   0.598    -.5404065    .3111011
                 Oltre 40 mila  |   .2928952   .2316973     1.26   0.206    -.1613924    .7471829
                    Non indica  |  -.2943397   .2465132    -1.19   0.233    -.7776767    .1889974
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |   1.490164    .163502     9.11   0.000     1.169586    1.810741
        Almeno 2 volte al mese  |   1.403489   .2079107     6.75   0.000     .9958395    1.811138
                                |
                          occup |
                 Disoccupato/a  |  -.3232036   .3825157    -0.84   0.398      -1.0732    .4267929
                  Studente/ssa  |  -.8890628   .3009643    -2.95   0.003    -1.479162   -.2989639
                  Pensionato/a  |  -.5029891     .23203    -2.17   0.030    -.9579291   -.0480491
           Casalinga/o e altro  |   .3820754   .3355592     1.14   0.255    -.2758537    1.040004
                                |
                          area4 |
                      Nord-est  |   .3595214   .2314497     1.55   0.120    -.0942808    .8133236
                        Centro  |  -.1223243   .1941126    -0.63   0.529    -.5029197    .2582712
                   Sud e isole  |   .0551928   .1900973     0.29   0.772      -.31753    .4279155
                                |
                    econ_peggio |  -.1584367    .074787    -2.12   0.034    -.3050712   -.0118022
                        pid_fdi |   5.983611   .1578417    37.91   0.000     5.674132    6.293091
                          _cons |   2.887212   .4435072     6.51   0.000      2.01763    3.756794
-------------------------------------------------------------------------------------------------

. eststo m3: regress ptv_fdi $controlli econ_peggio pid_fdi dist_fdi $w if campione
(sum of wgt is 2,750.42890641093)

Linear regression                               Number of obs     =      3,269
                                                F(20, 3248)       =     273.21
                                                Prob > F          =     0.0000
                                                R-squared         =     0.6314
                                                Root MSE          =     2.3195

-------------------------------------------------------------------------------------------------
                                |               Robust
                        ptv_fdi | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |   .0369513   .1219959     0.30   0.762    -.2022454     .276148
                                |
                           eta3 |
                         35-54  |   .0618876    .174604     0.35   0.723    -.2804575    .4042328
                           55+  |   .1386999   .1919567     0.72   0.470    -.2376685    .5150684
                                |
                           edu3 |
                       Diploma  |    .131852   .1540101     0.86   0.392    -.1701147    .4338188
                  Laurea o più  |  -.1370766   .1780974    -0.77   0.442    -.4862712    .2121179
                                |
                        reddito |
                    20-40 mila  |  -.2259909   .1732584    -1.30   0.192    -.5656978     .113716
                 Oltre 40 mila  |  -.0716238   .1805445    -0.40   0.692    -.4256165    .2823689
                    Non indica  |  -.1643038   .1927115    -0.85   0.394    -.5421523    .2135447
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |   .4718569   .1344244     3.51   0.000     .2082917    .7354221
        Almeno 2 volte al mese  |   .4282182   .1678971     2.55   0.011     .0990233    .7574132
                                |
                          occup |
                 Disoccupato/a  |  -.1043138   .3099924    -0.34   0.737    -.7121143    .5034866
                  Studente/ssa  |  -.4917451   .2303293    -2.13   0.033    -.9433505   -.0401397
                  Pensionato/a  |  -.2202483   .1689327    -1.30   0.192    -.5514738    .1109772
           Casalinga/o e altro  |   .0434507   .2471877     0.18   0.860    -.4412089    .5281103
                                |
                          area4 |
                      Nord-est  |   .1273238   .1690688     0.75   0.451    -.2041686    .4588161
                        Centro  |  -.0358715    .153711    -0.23   0.815    -.3372518    .2655088
                   Sud e isole  |   .2104521   .1526428     1.38   0.168    -.0888338    .5097381
                                |
                    econ_peggio |  -.0887351   .0569386    -1.56   0.119    -.2003743    .0229041
                        pid_fdi |   3.579004   .1763219    20.30   0.000     3.233291    3.924718
                       dist_fdi |  -.8530285   .0261255   -32.65   0.000    -.9042527   -.8018043
                          _cons |   6.330103   .3720315    17.01   0.000     5.600663    7.059543
-------------------------------------------------------------------------------------------------

. eststo m4: regress ptv_fdi $controlli econ_peggio pid_fdi dist_fdi ///
>     leader_fdi $w if campione
(sum of wgt is 2,750.42890641093)

Linear regression                               Number of obs     =      3,269
                                                F(21, 3247)       =    1250.16
                                                Prob > F          =     0.0000
                                                R-squared         =     0.8700
                                                Root MSE          =     1.3779

-------------------------------------------------------------------------------------------------
                                |               Robust
                        ptv_fdi | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |   .0199078   .0723551     0.28   0.783    -.1219585    .1617742
                                |
                           eta3 |
                         35-54  |   .1331443   .1271837     1.05   0.295     -.116224    .3825127
                           55+  |    .083382   .1388635     0.60   0.548    -.1888869    .3556509
                                |
                           edu3 |
                       Diploma  |  -.0184281   .0909575    -0.20   0.839     -.196768    .1599118
                  Laurea o più  |  -.1859781   .1047305    -1.78   0.076    -.3913227    .0193664
                                |
                        reddito |
                    20-40 mila  |  -.0215693   .1007772    -0.21   0.831    -.2191627     .176024
                 Oltre 40 mila  |   .0402819   .0992086     0.41   0.685    -.1542358    .2347997
                    Non indica  |   .0379484   .1050896     0.36   0.718    -.1681003    .2439971
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |   .1584727   .0818189     1.94   0.053    -.0019491    .3188945
        Almeno 2 volte al mese  |   .1017835   .0884888     1.15   0.250    -.0717161    .2752831
                                |
                          occup |
                 Disoccupato/a  |   .0041574   .1698425     0.02   0.980     -.328852    .3371669
                  Studente/ssa  |   .1701699   .1936349     0.88   0.380    -.2094891    .5498289
                  Pensionato/a  |  -.0676557   .0942634    -0.72   0.473    -.2524774     .117166
           Casalinga/o e altro  |  -.1588795   .1370665    -1.16   0.246    -.4276251    .1098661
                                |
                          area4 |
                      Nord-est  |  -.0318305   .0994726    -0.32   0.749    -.2268658    .1632048
                        Centro  |  -.0207708   .0847323    -0.25   0.806     -.186905    .1453634
                   Sud e isole  |   .2343434   .0884314     2.65   0.008     .0609564    .4077305
                                |
                    econ_peggio |  -.0554804   .0310245    -1.79   0.074      -.11631    .0053492
                        pid_fdi |   .8614099   .1112869     7.74   0.000     .6432103    1.079609
                       dist_fdi |  -.1946198   .0222189    -8.76   0.000    -.2381842   -.1510554
                     leader_fdi |   .7828818   .0165364    47.34   0.000     .7504589    .8153046
                          _cons |   1.198145    .271217     4.42   0.000     .6663716    1.729919
-------------------------------------------------------------------------------------------------

. 
. 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." "+ PID, econ." "+ distanza" "+ leader")

----------------------------------------------------------------------------------------------------
                                           (1)              (2)              (3)              (4)   
                                    Socio-dem.     + PID, econ.       + distanza         + leader   
----------------------------------------------------------------------------------------------------
Donna                                    -0.21            -0.03             0.04             0.02   
                                        (0.18)           (0.16)           (0.12)           (0.07)   
35-54                                     0.19             0.04             0.06             0.13   
                                        (0.25)           (0.23)           (0.17)           (0.13)   
55+                                       0.02            -0.22             0.14             0.08   
                                        (0.30)           (0.26)           (0.19)           (0.14)   
Diploma                                  -0.39            -0.37             0.13            -0.02   
                                        (0.23)           (0.20)           (0.15)           (0.09)   
Laurea o più                            -0.91**          -0.87***         -0.14            -0.19   
                                        (0.28)           (0.23)           (0.18)           (0.10)   
20-40 mila                               -0.14            -0.11            -0.23            -0.02   
                                        (0.26)           (0.22)           (0.17)           (0.10)   
Oltre 40 mila                             0.50             0.29            -0.07             0.04   
                                        (0.28)           (0.23)           (0.18)           (0.10)   
Non indica                               -0.30            -0.29            -0.16             0.04   
                                        (0.32)           (0.25)           (0.19)           (0.11)   
Qualche volta l'anno o al mese            1.88***          1.49***          0.47***          0.16   
                                        (0.20)           (0.16)           (0.13)           (0.08)   
Almeno 2 volte al mese                    2.02***          1.40***          0.43*            0.10   
                                        (0.25)           (0.21)           (0.17)           (0.09)   
Disoccupato/a                            -0.14            -0.32            -0.10             0.00   
                                        (0.45)           (0.38)           (0.31)           (0.17)   
Studente/ssa                             -1.05**          -0.89**          -0.49*            0.17   
                                        (0.34)           (0.30)           (0.23)           (0.19)   
Pensionato/a                             -0.33            -0.50*           -0.22            -0.07   
                                        (0.29)           (0.23)           (0.17)           (0.09)   
Casalinga/o e altro                       0.67             0.38             0.04            -0.16   
                                        (0.37)           (0.34)           (0.25)           (0.14)   
Nord-est                                  0.25             0.36             0.13            -0.03   
                                        (0.26)           (0.23)           (0.17)           (0.10)   
Centro                                   -0.02            -0.12            -0.04            -0.02   
                                        (0.26)           (0.19)           (0.15)           (0.08)   
Sud e isole                              -0.15             0.06             0.21             0.23** 
                                        (0.24)           (0.19)           (0.15)           (0.09)   
Economia italiana peggiorata (1-                          -0.16*           -0.09            -0.06   
                                                         (0.07)           (0.06)           (0.03)   
Si sente vicino a FdI                                      5.98***          3.58***          0.86***
                                                         (0.16)           (0.18)           (0.11)   
Distanza ideologica da FdI (0-10                                           -0.85***         -0.19***
                                                                          (0.03)           (0.02)   
Giudizio su Meloni (0-10)                                                                    0.78***
                                                                                           (0.02)   
Constant                                  2.79***          2.89***          6.33***          1.20***
                                        (0.39)           (0.44)           (0.37)           (0.27)   
----------------------------------------------------------------------------------------------------
Observations                              3269             3269             3269             3269   
R-squared                                0.088            0.384            0.631            0.870   
Adjusted R-squared                       0.083            0.380            0.629            0.869   
----------------------------------------------------------------------------------------------------
Standard errors in parentheses
* p<0.05, ** p<0.01, *** p<0.001

. 
. * --- 7.4 Coefficienti standardizzati (confrontare le variabili focali)
. regress ptv_fdi $controlli econ_peggio pid_fdi dist_fdi leader_fdi ///
>     [aw=wsociodem_trim] if campione, beta
(sum of wgt is 2,750.42890641093)

      Source |       SS           df       MS      Number of obs   =     3,269
-------------+----------------------------------   F(21, 3247)     =   1034.37
       Model |  41238.8855        21  1963.75645   Prob > F        =    0.0000
    Residual |   6164.4476     3,247  1.89850557   R-squared       =    0.8700
-------------+----------------------------------   Adj R-squared   =    0.8691
       Total |  47403.3331     3,268  14.5053039   Root MSE        =    1.3779

-------------------------------------------------------------------------------------------------
                        ptv_fdi | Coefficient  Std. err.      t    P>|t|                     Beta
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |   .0199078   .0514446     0.39   0.699                 .0026097
                                |
                           eta3 |
                         35-54  |   .1331443     .07771     1.71   0.087                 .0162755
                           55+  |    .083382   .0872373     0.96   0.339                 .0109357
                                |
                           edu3 |
                       Diploma  |  -.0184281   .0592427    -0.31   0.756                -.0023995
                  Laurea o più  |  -.1859781   .0759438    -2.45   0.014                -.0192474
                                |
                        reddito |
                    20-40 mila  |  -.0215693   .0653896    -0.33   0.742                -.0027716
                 Oltre 40 mila  |   .0402819   .0767637     0.52   0.600                  .004469
                    Non indica  |   .0379484   .0868173     0.44   0.662                  .003282
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |   .1584727   .0566875     2.80   0.005                  .020553
        Almeno 2 volte al mese  |   .1017835    .070278     1.45   0.148                 .0106833
                                |
                          occup |
                 Disoccupato/a  |   .0041574   .1014166     0.04   0.967                 .0002801
                  Studente/ssa  |   .1701699   .1136058     1.50   0.134                 .0113424
                  Pensionato/a  |  -.0676557    .075468    -0.90   0.370                -.0078368
           Casalinga/o e altro  |  -.1588795   .0958358    -1.66   0.097                 -.012132
                                |
                          area4 |
                      Nord-est  |  -.0318305   .0708944    -0.45   0.653                -.0033599
                        Centro  |  -.0207708   .0722329    -0.29   0.774                -.0021708
                   Sud e isole  |   .2343434   .0648958     3.61   0.000                 .0288159
                                |
                    econ_peggio |  -.0554804   .0228443    -2.43   0.015                -.0159101
                        pid_fdi |   .8614099   .0839473    10.26   0.000                 .0800121
                       dist_fdi |  -.1946198   .0138021   -14.10   0.000                -.1312696
                     leader_fdi |   .7828818   .0101429    77.19   0.000                 .7825732
                          _cons |   1.198145   .1592343     7.52   0.000                        .
-------------------------------------------------------------------------------------------------

. 
. * --- 7.5 Diagnostica: multicollinearita' ------------------------------
. * (estat vif richiede un modello senza pesi pw)
. quietly regress ptv_fdi $controlli econ_peggio pid_fdi dist_fdi ///
>     leader_fdi lr_self if campione

. estat vif

    Variable |       VIF       1/VIF  
-------------+----------------------
     1.donna |      1.13    0.888373
        eta3 |
          2  |      2.74    0.365009
          3  |      3.52    0.284124
        edu3 |
          2  |      2.37    0.421454
          3  |      2.46    0.407099
     reddito |
          2  |      2.02    0.495693
          3  |      2.07    0.483855
          4  |      1.51    0.663330
     chiesa3 |
          2  |      1.36    0.734842
          3  |      1.36    0.737760
       occup |
          2  |      1.12    0.889095
          3  |      1.43    0.700993
          4  |      1.70    0.588870
          5  |      1.24    0.807202
       area4 |
          2  |      1.38    0.724742
          3  |      1.40    0.714158
          4  |      1.56    0.642931
 econ_peggio |      1.08    0.927256
     pid_fdi |      1.55    0.646240
    dist_fdi |     13.30    0.075211
  leader_fdi |      2.75    0.363115
     lr_self |     14.46    0.069140
-------------+----------------------
    Mean VIF |      2.89

. 
.

8Visualizzare i risultati

8.1 Il grafico dei coefficienti

Codice
* --- 8.1 Grafico dei coefficienti (coefplot) --------------------------
coefplot m4, drop(_cons) xline(0) msymbol(D) ylabel(, labsize(small)) ///
    xtitle("Effetto sul giudizio su FdI (punti 0-10)", size(small)) ///
    title("Modello 4: giudizio su 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 politici}") ///
    xsize(8) ysize(9)
graph export "grafici/fig3_coefplot_m4.png", replace width(1600)
Coefficienti del modello 4 con intervalli di confidenza al 95%. Un coefficiente è significativo se il suo intervallo non tocca la linea dello zero.
Coefficienti del modello 4 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) ------------------------------------
* usiamo il modello 3 (senza il giudizio sul leader, che "assorbe"
* quasi tutto l'effetto delle altre variabili)
estimates restore m3
margins, at(dist_fdi = (0(1)8))
marginsplot, recast(line) recastci(rarea) ciopts(color(%25))          ///
    ytitle("Giudizio predetto su FdI (0-10)")                         ///
    xtitle("Distanza ideologica da FdI")                               ///
    title("Valori predetti dal modello 3")
graph export "grafici/fig4_margins_distanza.png", replace width(1600)
Giudizio predetto su FdI al variare della distanza ideologica (modello 3), con le altre variabili ai valori osservati.
Giudizio predetto su 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 il giudizio predetto è 6,8; a distanza 4 è 3,4; 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 econ_peggio pid_fdi              ///
    c.dist_fdi##i.interesse $w if campione
margins interesse, dydx(dist_fdi)
margins interesse, at(dist_fdi = (0(2)8))
marginsplot, ytitle("Giudizio predetto su 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.
Giudizio predetto su FdI per distanza e livello di interesse.
Giudizio predetto su FdI per distanza e livello di interesse.

Le due pendenze sono quasi uguali (−0,92 e −0,84) e il termine di interazione non è significativo (p = 0,14): 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 m4, drop(_cons) xline(0) msymbol(D) ylabel(, labsize(small)) ///
>     xtitle("Effetto sul giudizio su FdI (punti 0-10)")               ///
>     title("Modello 4: giudizio su 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 politici}") ///
>     xsize(7) ysize(9)

. graph export "grafici/fig3_coefplot_m4.png", replace width(1600)
file C:/Users/nome/Documents/OPEL/grafici/fig3_coefplot_m4.png saved as PNG format

. 
. * --- 8.2 Valori predetti (margins) ------------------------------------
. * usiamo il modello 3 (senza il giudizio sul leader, che "assorbe"
. * quasi tutto l'effetto delle altre variabili)
. estimates restore m3
(results m3 are active now)

. margins, at(dist_fdi = (0(1)8))

Predictive margins                                       Number of obs = 3,269
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.808332    .138322    49.22   0.000     6.537125    7.079539
          2  |   5.955303   .1143342    52.09   0.000     5.731129    6.179478
          3  |   5.102275   .0915245    55.75   0.000     4.922823    5.281727
          4  |   4.249246   .0710369    59.82   0.000     4.109965    4.388528
          5  |   3.396218   .0555054    61.19   0.000     3.287389    3.505047
          6  |   2.543189   .0498049    51.06   0.000     2.445537    2.640842
          7  |   1.690161   .0569676    29.67   0.000     1.578465    1.801857
          8  |   .8371325   .0733155    11.42   0.000     .6933832    .9808818
          9  |   -.015896   .0941812    -0.17   0.866    -.2005566    .1687647
------------------------------------------------------------------------------

. marginsplot, recast(line) recastci(rarea) ciopts(color(%25))          ///
>     ytitle("Giudizio predetto su 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 econ_peggio pid_fdi              ///
>     c.dist_fdi##i.interesse $w if campione
(sum of wgt is 2,750.42890641093)

Linear regression                               Number of obs     =      3,269
                                                F(22, 3246)       =     250.30
                                                Prob > F          =     0.0000
                                                R-squared         =     0.6319
                                                Root MSE          =     2.3186

-------------------------------------------------------------------------------------------------
                                |               Robust
                        ptv_fdi | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |   .0454323   .1240627     0.37   0.714    -.1978168    .2886813
                                |
                           eta3 |
                         35-54  |   .0612108   .1743981     0.35   0.726    -.2807308    .4031524
                           55+  |   .1357274    .191662     0.71   0.479    -.2400632    .5115181
                                |
                           edu3 |
                       Diploma  |     .12112   .1554273     0.78   0.436    -.1836256    .4258655
                  Laurea o più  |   -.151451   .1799082    -0.84   0.400    -.5041962    .2012941
                                |
                        reddito |
                    20-40 mila  |  -.2435095   .1733594    -1.40   0.160    -.5834145    .0963955
                 Oltre 40 mila  |  -.0890986   .1806812    -0.49   0.622    -.4433594    .2651622
                    Non indica  |  -.1751639   .1928411    -0.91   0.364    -.5532665    .2029387
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |    .474653   .1344977     3.53   0.000      .210944     .738362
        Almeno 2 volte al mese  |    .433281   .1680778     2.58   0.010     .1037316    .7628304
                                |
                          occup |
                 Disoccupato/a  |  -.0920832   .3103601    -0.30   0.767    -.7006046    .5164383
                  Studente/ssa  |  -.4751921   .2293802    -2.07   0.038    -.9249368   -.0254474
                  Pensionato/a  |  -.2314897   .1686025    -1.37   0.170    -.5620678    .0990884
           Casalinga/o e altro  |    .041585   .2475245     0.17   0.867    -.4437351     .526905
                                |
                          area4 |
                      Nord-est  |   .1239287   .1688655     0.73   0.463    -.2071651    .4550225
                        Centro  |  -.0364672   .1534128    -0.24   0.812    -.3372628    .2643285
                   Sud e isole  |   .2098933   .1526556     1.37   0.169    -.0894178    .5092045
                                |
                    econ_peggio |   -.086823     .05723    -1.52   0.129    -.1990336    .0253876
                        pid_fdi |   3.587367   .1773344    20.23   0.000     3.239668    3.935065
                       dist_fdi |  -.9153178   .0504547   -18.14   0.000    -1.014244   -.8163915
                                |
                      interesse |
            Molto o abbastanza  |  -.1917159   .2905132    -0.66   0.509    -.7613237    .3778919
                                |
           interesse#c.dist_fdi |
            Molto o abbastanza  |   .0779402   .0525591     1.48   0.138    -.0251121    .1809926
                                |
                          _cons |   6.487862   .4296831    15.10   0.000     5.645384     7.33034
-------------------------------------------------------------------------------------------------

. margins interesse, dydx(dist_fdi)

Average marginal effects                                 Number of obs = 3,269
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  |  -.9153178   .0504547   -18.14   0.000    -1.014244   -.8163915
Molto o abbastanza  |  -.8373776   .0283505   -29.54   0.000    -.8929642    -.781791
-------------------------------------------------------------------------------------

. margins interesse, at(dist_fdi = (0(2)8))

Predictive margins                                       Number of obs = 3,269
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.957056   .2527925    27.52   0.000     6.461407    7.452706
1#Molto o abbastanza  |   6.765341   .1609161    42.04   0.000     6.449833    7.080848
 2#Poco o per niente  |   5.126421   .1703789    30.09   0.000      4.79236    5.460482
2#Molto o abbastanza  |   5.090585   .1098119    46.36   0.000     4.875278    5.305893
 3#Poco o per niente  |   3.295785   .1204962    27.35   0.000     3.059529    3.532042
3#Molto o abbastanza  |    3.41583   .0682151    50.07   0.000     3.282081    3.549579
 4#Poco o per niente  |    1.46515   .1427415    10.26   0.000     1.185277    1.745022
4#Molto o abbastanza  |   1.741075    .060646    28.71   0.000     1.622167    1.859983
 5#Poco o per niente  |  -.3654859   .2158619    -1.69   0.091    -.7887253    .0577536
5#Molto o abbastanza  |   .0663201   .0955644     0.69   0.488    -.1210525    .2536926
---------------------------------------------------------------------------------------

. marginsplot, ytitle("Giudizio predetto su 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. Il trucco è creare variabili generiche (ptv, pid, dist, leader) 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, pid, dist, leader) 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 pid dist leader
    gen ptv    = ptv_`p'
    gen pid    = pid_`p'
    gen dist   = dist_`p'
    gen leader = leader_`p'
    label variable pid    "Identificazione con il partito"
    label variable dist   "Distanza ideologica dal partito"
    label variable leader "Giudizio sul leader"
    eststo p_`p': regress ptv $controlli econ_peggio pid dist leader $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(econ_peggio pid dist leader) order(pid dist leader econ_peggio) ///
    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 (sono mostrate solo le variabili focali; 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 (sono mostrate solo le variabili focali; i controlli sono nel modello ma non in tabella, grazie all'opzione keep()).
  • La distanza ideologica ha un effetto simile per PD, FI e FdI (circa −0,2 al netto del leader) ma è nulla per il M5S (−0,03, non significativa): coerente con un partito che rifiuta il posizionamento sinistra-destra e si colloca al centro della scala.
  • Il giudizio sull'economia pesa soprattutto sul PD (−0,28), 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, pid, dist, leader) 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 pid dist leader
  3.     gen ptv    = ptv_`p'
  4.     gen pid    = pid_`p'
  5.     gen dist   = dist_`p'
  6.     gen leader = leader_`p'
  7.     label variable pid    "Identificazione con il partito"
  8.     label variable dist   "Distanza ideologica dal partito"
  9.     label variable leader "Giudizio sul leader"
 10.     eststo p_`p': regress ptv $controlli econ_peggio pid dist leader $w
 11. }
(300 missing values generated)
(83 missing values generated)
(965 missing values generated)
(323 missing values generated)
(sum of wgt is 2,744.71389895678)

Linear regression                               Number of obs     =      3,258
                                                F(21, 3236)       =     424.68
                                                Prob > F          =     0.0000
                                                R-squared         =     0.7442
                                                Root MSE          =     1.6006

-------------------------------------------------------------------------------------------------
                                |               Robust
                            ptv | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |   .0238893   .0805303     0.30   0.767    -.1340063    .1817849
                                |
                           eta3 |
                         35-54  |  -.1798814   .1174969    -1.53   0.126    -.4102573    .0504945
                           55+  |  -.2228387   .1347387    -1.65   0.098    -.4870206    .0413432
                                |
                           edu3 |
                       Diploma  |   .0743177   .0930191     0.80   0.424    -.1080647       .2567
                  Laurea o più  |   .1015474   .1134479     0.90   0.371    -.1208896    .3239844
                                |
                        reddito |
                    20-40 mila  |  -.2116272   .1214212    -1.74   0.081    -.4496974     .026443
                 Oltre 40 mila  |  -.2140545   .1228189    -1.74   0.081    -.4548651    .0267562
                    Non indica  |  -.1865535   .1492916    -1.25   0.212     -.479269    .1061621
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |   .0964492    .082882     1.16   0.245    -.0660574    .2589558
        Almeno 2 volte al mese  |   .0676348   .1148226     0.59   0.556    -.1574976    .2927672
                                |
                          occup |
                 Disoccupato/a  |  -.4080894   .2244246    -1.82   0.069    -.8481181    .0319392
                  Studente/ssa  |  -.0788319   .1577463    -0.50   0.617    -.3881247    .2304608
                  Pensionato/a  |   -.085694   .1244002    -0.69   0.491    -.3296052    .1582172
           Casalinga/o e altro  |  -.1435348   .1582603    -0.91   0.364    -.4538354    .1667657
                                |
                          area4 |
                      Nord-est  |  -.1619105   .1122284    -1.44   0.149    -.3819564    .0581353
                        Centro  |   -.310581   .1101816    -2.82   0.005    -.5266137   -.0945484
                   Sud e isole  |  -.0078541   .1029775    -0.08   0.939    -.2097619    .1940538
                                |
                    econ_peggio |  -.2755508   .0500388    -5.51   0.000    -.3736618   -.1774398
                            pid |   1.173092   .1220625     9.61   0.000     .9337642     1.41242
                           dist |   -.207895   .0199733   -10.41   0.000    -.2470566   -.1687334
                         leader |   .7208026   .0205402    35.09   0.000     .6805295    .7610758
                          _cons |   3.079233   .3217166     9.57   0.000     2.448444    3.710022
-------------------------------------------------------------------------------------------------
(295 missing values generated)
(83 missing values generated)
(965 missing values generated)
(257 missing values generated)
(sum of wgt is 2,769.86484375596)

Linear regression                               Number of obs     =      3,284
                                                F(21, 3262)       =     587.32
                                                Prob > F          =     0.0000
                                                R-squared         =     0.8214
                                                Root MSE          =     1.3567

-------------------------------------------------------------------------------------------------
                                |               Robust
                            ptv | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |   .0348764   .0667581     0.52   0.601    -.0960157    .1657684
                                |
                           eta3 |
                         35-54  |   .0608442   .1056255     0.58   0.565    -.1462549    .2679432
                           55+  |   .1293466   .1177465     1.10   0.272    -.1015179    .3602111
                                |
                           edu3 |
                       Diploma  |  -.0453479    .083322    -0.54   0.586    -.2087166    .1180208
                  Laurea o più  |  -.0210054   .0978935    -0.21   0.830    -.2129442    .1709335
                                |
                        reddito |
                    20-40 mila  |   .0061354   .0962019     0.06   0.949     -.182487    .1947577
                 Oltre 40 mila  |   .1636804   .1045859     1.57   0.118    -.0413803     .368741
                    Non indica  |   .0426198   .1272907     0.33   0.738    -.2069579    .2921975
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |    .157684   .0722989     2.18   0.029     .0159282    .2994398
        Almeno 2 volte al mese  |   .0764247   .0984035     0.78   0.437    -.1165143    .2693636
                                |
                          occup |
                 Disoccupato/a  |   .0242567   .1451287     0.17   0.867    -.2602959    .3088093
                  Studente/ssa  |  -.0505754   .1586979    -0.32   0.750    -.3617331    .2605823
                  Pensionato/a  |  -.0037232   .1053499    -0.04   0.972    -.2102818    .2028354
           Casalinga/o e altro  |  -.0763234   .1477775    -0.52   0.606    -.3660695    .2134228
                                |
                          area4 |
                      Nord-est  |  -.0080881   .1013201    -0.08   0.936    -.2067455    .1905694
                        Centro  |   .0133047   .0902646     0.15   0.883    -.1636763    .1902856
                   Sud e isole  |   .0351255   .0846155     0.42   0.678    -.1307793    .2010303
                                |
                    econ_peggio |  -.0663145   .0309685    -2.14   0.032    -.1270342   -.0055947
                            pid |   .9456491   .1758318     5.38   0.000     .6008972    1.290401
                           dist |    -.18919   .0208104    -9.09   0.000    -.2299929   -.1483872
                         leader |   .8014481   .0161261    49.70   0.000     .7698299    .8330664
                          _cons |   1.295489   .2456546     5.27   0.000     .8138366    1.777142
-------------------------------------------------------------------------------------------------
(314 missing values generated)
(83 missing values generated)
(965 missing values generated)
(269 missing values generated)
(sum of wgt is 2,757.79499575496)

Linear regression                               Number of obs     =      3,274
                                                F(21, 3252)       =    1251.57
                                                Prob > F          =     0.0000
                                                R-squared         =     0.8700
                                                Root MSE          =     1.3769

-------------------------------------------------------------------------------------------------
                                |               Robust
                            ptv | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |   .0212624   .0722884     0.29   0.769     -.120473    .1629979
                                |
                           eta3 |
                         35-54  |   .1270616   .1256836     1.01   0.312    -.1193654    .3734887
                           55+  |   .0730722   .1368158     0.53   0.593    -.1951817    .3413261
                                |
                           edu3 |
                       Diploma  |  -.0191681   .0900877    -0.21   0.832    -.1958025    .1574663
                  Laurea o più  |  -.1877539   .1038241    -1.81   0.071    -.3913211    .0158133
                                |
                        reddito |
                    20-40 mila  |  -.0243603   .1005833    -0.24   0.809    -.2215732    .1728527
                 Oltre 40 mila  |   .0373517   .0990445     0.38   0.706    -.1568443    .2315477
                    Non indica  |   .0305251   .1046923     0.29   0.771    -.1747445    .2357946
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |   .1600811   .0817145     1.96   0.050    -.0001361    .3202982
        Almeno 2 volte al mese  |   .1030966     .08852     1.16   0.244     -.070464    .2766572
                                |
                          occup |
                 Disoccupato/a  |   .0018268   .1697345     0.01   0.991    -.3309705    .3346242
                  Studente/ssa  |   .1649254    .192932     0.85   0.393    -.2133552     .543206
                  Pensionato/a  |  -.0631555   .0942687    -0.67   0.503    -.2479874    .1216765
           Casalinga/o e altro  |  -.1444813   .1365985    -1.06   0.290    -.4123092    .1233465
                                |
                          area4 |
                      Nord-est  |   -.031558   .0992353    -0.32   0.750     -.226128    .1630121
                        Centro  |  -.0201387   .0845541    -0.24   0.812    -.1859235     .145646
                   Sud e isole  |   .2391061   .0881967     2.71   0.007     .0661793    .4120328
                                |
                    econ_peggio |  -.0543321   .0309806    -1.75   0.080    -.1150756    .0064114
                            pid |   .8569054   .1108432     7.73   0.000     .6395758    1.074235
                           dist |  -.1951324   .0222301    -8.78   0.000    -.2387188    -.151546
                         leader |    .783007   .0165029    47.45   0.000     .7506499    .8153641
                          _cons |   1.202497   .2690853     4.47   0.000     .6749033    1.730091
-------------------------------------------------------------------------------------------------
(286 missing values generated)
(83 missing values generated)
(965 missing values generated)
(259 missing values generated)
(sum of wgt is 2,766.50649169087)

Linear regression                               Number of obs     =      3,277
                                                F(21, 3255)       =     423.69
                                                Prob > F          =     0.0000
                                                R-squared         =     0.7333
                                                Root MSE          =     1.6876

-------------------------------------------------------------------------------------------------
                                |               Robust
                            ptv | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |  -.1700377   .0841683    -2.02   0.043    -.3350659   -.0050094
                                |
                           eta3 |
                         35-54  |  -.0106361    .137402    -0.08   0.938    -.2800393     .258767
                           55+  |   .0136341   .1572641     0.09   0.931    -.2947125    .3219806
                                |
                           edu3 |
                       Diploma  |  -.0245317    .100481    -0.24   0.807     -.221544    .1724806
                  Laurea o più  |   .0008157   .1257181     0.01   0.995    -.2456788    .2473103
                                |
                        reddito |
                    20-40 mila  |  -.1289993   .1210995    -1.07   0.287    -.3664382    .1084396
                 Oltre 40 mila  |  -.0684323   .1266164    -0.54   0.589    -.3166882    .1798236
                    Non indica  |  -.1322275   .1595024    -0.83   0.407    -.4449627    .1805077
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |   .0759827   .0906432     0.84   0.402    -.1017409    .2537063
        Almeno 2 volte al mese  |   .1109884   .1081701     1.03   0.305    -.1011001    .3230769
                                |
                          occup |
                 Disoccupato/a  |  -.3172204   .2152701    -1.47   0.141     -.739299    .1048582
                  Studente/ssa  |  -.2160874   .1918385    -1.13   0.260    -.5922239    .1600491
                  Pensionato/a  |   -.007284   .1239987    -0.06   0.953    -.2504075    .2358395
           Casalinga/o e altro  |  -.1088524   .1819943    -0.60   0.550    -.4656875    .2479826
                                |
                          area4 |
                      Nord-est  |  -.0065201   .1159693    -0.06   0.955    -.2339002    .2208601
                        Centro  |   -.130609   .1164088    -1.12   0.262    -.3588509    .0976329
                   Sud e isole  |   .1179303   .1079628     1.09   0.275    -.0937515    .3296121
                                |
                    econ_peggio |  -.1228623   .0397818    -3.09   0.002    -.2008622   -.0448624
                            pid |   1.682613   .1381937    12.18   0.000     1.411658    1.953568
                           dist |   -.029341   .0229376    -1.28   0.201    -.0743147    .0156326
                         leader |   .7368659   .0148898    49.49   0.000     .7076717    .7660602
                          _cons |   .9633031   .2366953     4.07   0.000     .4992162     1.42739
-------------------------------------------------------------------------------------------------

. 
. 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(econ_peggio pid dist leader) order(pid dist leader econ_peggio) ///
>     mtitles("PD" "FI" "FdI" "M5S")                                    ///
>     mgroups("Mainstream" "Challenger", pattern(1 0 1 0))

----------------------------------------------------------------------------------------------------
                                    Mainstream                        Challenger                    
                                           (1)              (2)              (3)              (4)   
                                            PD               FI              FdI              M5S   
----------------------------------------------------------------------------------------------------
Identificazione con il partito            1.17***          0.95***          0.86***          1.68***
                                        (0.12)           (0.18)           (0.11)           (0.14)   
Distanza ideologica dal partito          -0.21***         -0.19***         -0.20***         -0.03   
                                        (0.02)           (0.02)           (0.02)           (0.02)   
Giudizio sul leader                       0.72***          0.80***          0.78***          0.74***
                                        (0.02)           (0.02)           (0.02)           (0.01)   
Economia italiana peggiorata (1-         -0.28***         -0.07*           -0.05            -0.12** 
                                        (0.05)           (0.03)           (0.03)           (0.04)   
----------------------------------------------------------------------------------------------------
Observations                              3258             3284             3274             3277   
R-squared                                0.744            0.821            0.870            0.733   
----------------------------------------------------------------------------------------------------
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 econ_peggio pid_fdi dist_fdi ///
        leader_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(econ_peggio pid_fdi dist_fdi leader_fdi)                       ///
    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 econ_peggio pid_fdi leader_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,25 nel Nord-ovest a −0,15 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 = 0,14, p = 0,94. Le differenze tra zone non sono statisticamente significative. 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 econ_peggio pid_fdi dist_fdi ///
>         leader_fdi $w if area4 == `a'
  3. }
(sum of wgt is 761.0955176055431)

Linear regression                               Number of obs     =        908
                                                F(18, 889)        =     577.94
                                                Prob > F          =     0.0000
                                                R-squared         =     0.8838
                                                Root MSE          =     1.2992

-------------------------------------------------------------------------------------------------
                                |               Robust
                        ptv_fdi | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |  -.0461887   .1297328    -0.36   0.722    -.3008069    .2084295
                                |
                           eta3 |
                         35-54  |    .369543   .2133966     1.73   0.084    -.0492768    .7883629
                           55+  |    .393532   .2309269     1.70   0.089    -.0596934    .8467574
                                |
                           edu3 |
                       Diploma  |   .0964594   .1587863     0.61   0.544    -.2151804    .4080992
                  Laurea o più  |   .1033805   .1726947     0.60   0.550    -.2355563    .4423172
                                |
                        reddito |
                    20-40 mila  |   .1687865   .1844296     0.92   0.360    -.1931816    .5307546
                 Oltre 40 mila  |   .0046289   .1834913     0.03   0.980    -.3554978    .3647555
                    Non indica  |   .0939862   .1915348     0.49   0.624    -.2819269    .4698994
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |    .068783   .1543468     0.45   0.656    -.2341436    .3717095
        Almeno 2 volte al mese  |   .2143575   .1598096     1.34   0.180    -.0992906    .5280056
                                |
                          occup |
                 Disoccupato/a  |  -.0608671   .3749002    -0.16   0.871    -.7966596    .6749255
                  Studente/ssa  |   1.324087   .6329192     2.09   0.037     .0818968    2.566277
                  Pensionato/a  |   .0485392   .1683983     0.29   0.773    -.2819654    .3790438
           Casalinga/o e altro  |   .2239241   .2709622     0.83   0.409    -.3078761    .7557243
                                |
                    econ_peggio |   .0066262   .0576944     0.11   0.909     -.106607    .1198593
                        pid_fdi |   1.187184   .1975834     6.01   0.000        .7994    1.574968
                       dist_fdi |   -.254027   .0459066    -5.53   0.000    -.3441251    -.163929
                     leader_fdi |   .7176626   .0323554    22.18   0.000     .6541607    .7811645
                          _cons |   .9153687    .475717     1.92   0.055    -.0182905    1.849028
-------------------------------------------------------------------------------------------------
(sum of wgt is 557.3199869096279)

Linear regression                               Number of obs     =        632
                                                F(18, 613)        =     267.69
                                                Prob > F          =     0.0000
                                                R-squared         =     0.8538
                                                Root MSE          =     1.4608

-------------------------------------------------------------------------------------------------
                                |               Robust
                        ptv_fdi | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |   .1446291   .1515278     0.95   0.340    -.1529474    .4422056
                                |
                           eta3 |
                         35-54  |   .4168123   .2986307     1.40   0.163     -.169651    1.003276
                           55+  |   .6819004   .3323415     2.05   0.041     .0292345    1.334566
                                |
                           edu3 |
                       Diploma  |  -.1338837   .1938006    -0.69   0.490    -.5144774      .24671
                  Laurea o più  |   -.411256   .2207377    -1.86   0.063      -.84475    .0222379
                                |
                        reddito |
                    20-40 mila  |   .1961092   .2482033     0.79   0.430    -.2913227     .683541
                 Oltre 40 mila  |   .3467947    .250002     1.39   0.166    -.1441697     .837759
                    Non indica  |   .1712617   .2429053     0.71   0.481    -.3057658    .6482891
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |   .2874824   .1702766     1.69   0.092    -.0469139    .6218787
        Almeno 2 volte al mese  |   .1234578   .2248384     0.55   0.583    -.3180892    .5650048
                                |
                          occup |
                 Disoccupato/a  |  -.2061365   .2436716    -0.85   0.398    -.6846689    .2723959
                  Studente/ssa  |  -.3307444   .4335943    -0.76   0.446    -1.182255     .520766
                  Pensionato/a  |   -.222632   .1950927    -1.14   0.254    -.6057631     .160499
           Casalinga/o e altro  |  -.6560411   .3151949    -2.08   0.038    -1.275034   -.0370483
                                |
                    econ_peggio |   .0202569     .07245     0.28   0.780    -.1220235    .1625372
                        pid_fdi |   .6586262   .2536245     2.60   0.010      .160548    1.156705
                       dist_fdi |  -.2200128   .0574015    -3.83   0.000    -.3327403   -.1072853
                     leader_fdi |   .7555595    .039482    19.14   0.000     .6780231    .8330959
                          _cons |   .6345141   .6275616     1.01   0.312    -.5979175    1.866946
-------------------------------------------------------------------------------------------------
(sum of wgt is 542.7639986872673)

Linear regression                               Number of obs     =        665
                                                F(18, 646)        =     557.33
                                                Prob > F          =     0.0000
                                                R-squared         =     0.9059
                                                Root MSE          =     1.1798

-------------------------------------------------------------------------------------------------
                                |               Robust
                        ptv_fdi | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |   .0796198   .1143065     0.70   0.486    -.1448374    .3040769
                                |
                           eta3 |
                         35-54  |   .1067936   .1852853     0.58   0.565    -.2570406    .4706278
                           55+  |  -.0804788   .1974084    -0.41   0.684    -.4681185    .3071609
                                |
                           edu3 |
                       Diploma  |     .26321   .1547139     1.70   0.089    -.0405927    .5670128
                  Laurea o più  |  -.1458185   .1804387    -0.81   0.419    -.5001357    .2084988
                                |
                        reddito |
                    20-40 mila  |  -.1989323     .16321    -1.22   0.223    -.5194184    .1215538
                 Oltre 40 mila  |  -.0591647   .1679367    -0.35   0.725    -.3889325    .2706031
                    Non indica  |  -.1363619   .1693066    -0.81   0.421    -.4688196    .1960958
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |   .1304182   .1246013     1.05   0.296    -.1142543    .3750906
        Almeno 2 volte al mese  |   .0070248    .153639     0.05   0.964    -.2946674    .3087169
                                |
                          occup |
                 Disoccupato/a  |   .3683729   .1751181     2.10   0.036     .0245034    .7122424
                  Studente/ssa  |   .0071407   .2610878     0.03   0.978    -.5055425     .519824
                  Pensionato/a  |   .0684175   .1763716     0.39   0.698    -.2779133    .4147483
           Casalinga/o e altro  |  -.1623262   .2737551    -0.59   0.553    -.6998835    .3752311
                                |
                    econ_peggio |  -.0019651   .0562007    -0.03   0.972    -.1123233    .1083931
                        pid_fdi |   .9517921   .1814619     5.25   0.000     .5954657    1.308118
                       dist_fdi |  -.1759656    .031676    -5.56   0.000    -.2381659   -.1137654
                     leader_fdi |   .7937639   .0263759    30.09   0.000     .7419711    .8455568
                          _cons |   .8462553   .3824784     2.21   0.027     .0952043    1.597306
-------------------------------------------------------------------------------------------------
(sum of wgt is 896.6154925525188)

Linear regression                               Number of obs     =      1,069
                                                F(18, 1050)       =     504.56
                                                Prob > F          =     0.0000
                                                R-squared         =     0.8655
                                                Root MSE          =     1.4309

-------------------------------------------------------------------------------------------------
                                |               Robust
                        ptv_fdi | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |  -.0670124   .1277876    -0.52   0.600    -.3177606    .1837358
                                |
                           eta3 |
                         35-54  |  -.1907769   .2200903    -0.87   0.386    -.6226439      .24109
                           55+  |   -.516064   .2417039    -2.14   0.033    -.9903416   -.0417864
                                |
                           edu3 |
                       Diploma  |  -.0802412   .1671232    -0.48   0.631    -.4081747    .2476923
                  Laurea o più  |    -.11262    .192311    -0.59   0.558    -.4899775    .2647376
                                |
                        reddito |
                    20-40 mila  |  -.0842448    .163997    -0.51   0.608     -.406044    .2375545
                 Oltre 40 mila  |   .0586974   .1728977     0.34   0.734    -.2805669    .3979617
                    Non indica  |   .0657362   .1799114     0.37   0.715    -.2872907    .4187631
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |   .1985498   .1560833     1.27   0.204    -.1077208    .5048205
        Almeno 2 volte al mese  |     .14858   .1560765     0.95   0.341    -.1576775    .4548374
                                |
                          occup |
                 Disoccupato/a  |   .0957202    .313287     0.31   0.760    -.5190196    .7104601
                  Studente/ssa  |  -.1015554   .2374795    -0.43   0.669    -.5675438    .3644329
                  Pensionato/a  |  -.0275843   .2002629    -0.14   0.890    -.4205453    .3653768
           Casalinga/o e altro  |  -.0040809   .2287562    -0.02   0.986    -.4529522    .4447904
                                |
                    econ_peggio |  -.1023656   .0537423    -1.90   0.057    -.2078201    .0030889
                        pid_fdi |   .6937478   .2192123     3.16   0.002     .2636038    1.123892
                       dist_fdi |  -.1476499    .033609    -4.39   0.000    -.2135982   -.0817015
                     leader_fdi |   .8347311   .0256379    32.56   0.000     .7844238    .8850383
                          _cons |   1.642008   .4030263     4.07   0.000     .8511795    2.432837
-------------------------------------------------------------------------------------------------

. 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(econ_peggio pid_fdi dist_fdi leader_fdi)                       ///
>     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.01             0.02            -0.00            -0.10   
                                        (0.06)           (0.07)           (0.06)           (0.05)   
Si sente vicino a FdI                     1.19***          0.66**           0.95***          0.69** 
                                        (0.20)           (0.25)           (0.18)           (0.22)   
Distanza ideologica da FdI (0-10         -0.25***         -0.22***         -0.18***         -0.15***
                                        (0.05)           (0.06)           (0.03)           (0.03)   
Giudizio su Meloni (0-10)                 0.72***          0.76***          0.79***          0.83***
                                        (0.03)           (0.04)           (0.03)           (0.03)   
----------------------------------------------------------------------------------------------------
Observations                               908              632              665             1069   
R-squared                                0.884            0.854            0.906            0.866   
----------------------------------------------------------------------------------------------------
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 econ_peggio pid_fdi leader_fdi ///
>     c.dist_fdi##i.area4 $w
(sum of wgt is 2,757.79499575496)

Linear regression                               Number of obs     =      3,274
                                                F(24, 3249)       =    1109.05
                                                Prob > F          =     0.0000
                                                R-squared         =     0.8701
                                                Root MSE          =     1.3775

-------------------------------------------------------------------------------------------------
                                |               Robust
                        ptv_fdi | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
--------------------------------+----------------------------------------------------------------
                          donna |
                         Donna  |   .0228973   .0724554     0.32   0.752    -.1191656    .1649601
                                |
                           eta3 |
                         35-54  |   .1264473   .1257735     1.01   0.315    -.1201561    .3730507
                           55+  |   .0736506   .1370508     0.54   0.591    -.1950641    .3423654
                                |
                           edu3 |
                       Diploma  |  -.0184563   .0898135    -0.21   0.837    -.1945532    .1576406
                  Laurea o più  |   -.187686   .1035593    -1.81   0.070    -.3907341     .015362
                                |
                        reddito |
                    20-40 mila  |  -.0244938   .0997393    -0.25   0.806    -.2200522    .1710645
                 Oltre 40 mila  |   .0389384   .0987081     0.39   0.693     -.154598    .2324747
                    Non indica  |   .0311894   .1045112     0.30   0.765    -.1737252     .236104
                                |
                        chiesa3 |
Qualche volta l'anno o al mese  |   .1590396   .0816241     1.95   0.051    -.0010003    .3190795
        Almeno 2 volte al mese  |   .1045736   .0887368     1.18   0.239    -.0694123    .2785594
                                |
                          occup |
                 Disoccupato/a  |   .0001301   .1700752     0.00   0.999    -.3333353    .3335956
                  Studente/ssa  |   .1657025   .1922165     0.86   0.389    -.2111753    .5425802
                  Pensionato/a  |  -.0635091   .0947165    -0.67   0.503    -.2492191     .122201
           Casalinga/o e altro  |  -.1467676    .136717    -1.07   0.283    -.4148278    .1212926
                                |
                          area4 |
                      Nord-est  |  -.0616135    .204132    -0.30   0.763     -.461854     .338627
                        Centro  |  -.0792758   .1595231    -0.50   0.619     -.392052    .2335003
                   Sud e isole  |   .2387069   .1792253     1.33   0.183    -.1126992     .590113
                                |
                    econ_peggio |  -.0541667   .0310662    -1.74   0.081    -.1150779    .0067446
                        pid_fdi |    .857559   .1115481     7.69   0.000     .6388473    1.076271
                     leader_fdi |    .783008   .0165815    47.22   0.000     .7504967    .8155193
                       dist_fdi |   -.199841   .0326227    -6.13   0.000    -.2638041   -.1358779
                                |
               area4#c.dist_fdi |
                      Nord-est  |   .0080533   .0373855     0.22   0.829    -.0652482    .0813547
                        Centro  |   .0151281   .0296298     0.51   0.610    -.0429668    .0732231
                   Sud e isole  |   .0003319   .0316084     0.01   0.992    -.0616424    .0623062
                                |
                          _cons |   1.218647   .2944871     4.14   0.000     .6412477    1.796046
-------------------------------------------------------------------------------------------------

. 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,  3249) =    0.14
            Prob > F =    0.9371

. 
.

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.

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 donna eta3 edu3 reddito chiesa3 area4 ///
     occup econ_peggio ptv_* pid_* dist_* leader_*
reshape long ptv_ pid_ dist_ leader_, i(seriale) j(partito) string
rename (ptv_ pid_ dist_ leader_) (ptv pid dist leader)
label variable pid    "Identificazione con il partito"
label variable dist   "Distanza ideologica dal partito"
label variable leader "Giudizio sul leader"
encode partito, gen(partito_n)
describe, short
list seriale partito ptv pid dist leader in 1/8, 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 pid dist leader i.partito_n $w ///
    if mainstream, vce(cluster seriale)
eststo s_chal: regress ptv pid dist leader 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(pid dist leader) ///
    mtitles("Mainstream (PD, FI)" "Challenger (FdI, M5S)")
restore
Stata — Results
<code>reshape long</code>: da 4.696 righe (una per intervistato) a 37.568 (otto per intervistato). Sotto, le otto righe del primo intervistato.
reshape long: da 4.696 righe (una per intervistato) a 37.568 (otto per intervistato). Sotto, le otto 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.
  • i.partito_n (effetti fissi di partito) tiene conto del fatto che alcuni partiti sono in media più apprezzati 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 il giudizio su un partito e ridurlo su 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 donna eta3 edu3 reddito chiesa3 area4 ///
>      occup econ_peggio ptv_* pid_* dist_* leader_*

. reshape long ptv_ pid_ dist_ leader_, i(seriale) j(partito) string
(j = avs aziv fdi fi lega m5s pd piueu)

Data                               Wide   ->   Long
-----------------------------------------------------------------------------
Number of observations            4,696   ->   37,568      
Number of variables                  42   ->   15          
j variable (8 values)                     ->   partito
xij variables:
         ptv_avs ptv_aziv ... ptv_piueu   ->   ptv_
         pid_avs pid_aziv ... pid_piueu   ->   pid_
      dist_avs dist_aziv ... dist_piueu   ->   dist_
leader_avs leader_aziv ... leader_piueu   ->   leader_
-----------------------------------------------------------------------------

. rename (ptv_ pid_ dist_ leader_) (ptv pid dist leader)

. label variable pid    "Identificazione con il partito"

. label variable dist   "Distanza ideologica dal partito"

. label variable leader "Giudizio sul leader"

. encode partito, gen(partito_n)

. describe, short

Contains data
 Observations:        37,568                  
    Variables:            16                  
Sorted by: seriale  partito
     Note: Dataset has changed since last saved.

. list seriale partito ptv pid dist leader in 1/8, sepby(seriale)

     +---------------------------------------------------+
     | seriale   partito   ptv   pid       dist   leader |
     |---------------------------------------------------|
  1. |       9       avs     0     0   5.121472        0 |
  2. |       9      aziv     0     0   2.489395        0 |
  3. |       9       fdi     3     0   1.383564        3 |
  4. |       9        fi    10     1   .3680781       10 |
  5. |       9      lega     3     0   .9545729        0 |
  6. |       9       m5s     0     0   3.411699        0 |
  7. |       9        pd     0     0   4.070511        0 |
  8. |       9     piueu     0     0   3.573743        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 pid dist leader i.partito_n $w ///
>     if mainstream, vce(cluster seriale)
(sum of wgt is 6,073.74014437199)

Linear regression                               Number of obs     =      7,128
                                                F(4, 3590)        =    4039.53
                                                Prob > F          =     0.0000
                                                R-squared         =     0.7649
                                                Root MSE          =     1.5499

                            (Std. err. adjusted for 3,591 clusters in seriale)
------------------------------------------------------------------------------
             |               Robust
         ptv | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
         pid |   1.059743   .0909283    11.65   0.000     .8814663    1.238019
        dist |  -.2005753   .0132979   -15.08   0.000    -.2266475    -.174503
      leader |   .7815245   .0114494    68.26   0.000     .7590766    .8039725
             |
   partito_n |
         pd  |   .1450985   .0501515     2.89   0.004     .0467703    .2434267
       _cons |   1.348524   .0739579    18.23   0.000      1.20352    1.493527
------------------------------------------------------------------------------

. eststo s_chal: regress ptv pid dist leader i.partito_n $w ///
>     if challenger, vce(cluster seriale)
(sum of wgt is 6,099.43240457773)

Linear regression                               Number of obs     =      7,143
                                                F(4, 3590)        =    5816.42
                                                Prob > F          =     0.0000
                                                R-squared         =     0.7858
                                                Root MSE          =     1.6349

                            (Std. err. adjusted for 3,591 clusters in seriale)
------------------------------------------------------------------------------
             |               Robust
         ptv | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
         pid |   1.220956   .0954584    12.79   0.000     1.033798    1.408114
        dist |  -.1509382   .0151487    -9.96   0.000    -.1806391   -.1212373
      leader |   .7606734   .0125544    60.59   0.000     .7360588    .7852879
             |
   partito_n |
        m5s  |  -.3933444    .052474    -7.50   0.000    -.4962262   -.2904625
       _cons |   1.056809   .0973512    10.86   0.000     .8659399    1.247678
------------------------------------------------------------------------------

. 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(pid dist leader) ///
>     mtitles("Mainstream (PD, FI)" "Challenger (FdI, M5S)")

------------------------------------------------------------------------------------
                                                    (1)                       (2)   
                                    Mainstream (PD, FI)     Challenger (FdI, M5S)   
------------------------------------------------------------------------------------
Identificazione con il partito                     1.06***                   1.22***
                                                 (0.09)                    (0.10)   

Distanza ideologica dal partito                   -0.20***                  -0.15***
                                                 (0.01)                    (0.02)   

Giudizio sul leader                                0.78***                   0.76***
                                                 (0.01)                    (0.01)   
------------------------------------------------------------------------------------
Observations                                       7128                      7143   
R-squared                                         0.765                     0.786   
------------------------------------------------------------------------------------
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." "+ PID, economia" "+ distanza" "+ leader") ///
    title("Determinanti del giudizio su 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(econ_peggio pid dist leader) 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 20 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 ogni ricodifica incrociando originale e nuova variabile?
  • La scala della dipendente va nella direzione giusta (valori alti = più favorevole)?
  • 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