Els models espacials–uns models revolucionaris
El passat dia 2 d’octubre del 2021 va morir el politòleg Anthony Downs. Tot sovint les disciplines necessiten persones que pensin més enllà dels paradigmes predominants. Gent que vagi a la contra i que proposi noves maneres d’entendre el món o, en el cas que aquí ens ocupa, el comportament electoral. Downs ens ha llegat una quantitat ingent d’obres en nombrosos camps (ho podeu veure en l’obituari que va publicar el New York Times), però probablement allà on va tenir una influència més elevada va ser en el del comportament electoral, malgrat que no va ser el seu àmbit més prolífic. Ben bé es pot dir que, a partir de la publicació d’An Economic Theory of Democracy, la forma d’estudiar el perquè votem el que votem ja no va ser la mateixa (Downs 1957a, 1957b).
A la dècada dels cinquanta i seixanta l’estudi del comportament electoral es trobava en plena efervescència. Els recents inaugurats models de Columbia i Michigan vivien una intensa pugna intel·lectual per guanyar la batalla de les idees. Tot i que sovint només ho admetien amb la boca petita, les dues maneres d’entendre el comportament electoral compartien força elements, sobretot un d’essencial: el vot era un element més d’uns models amb comprensió holística–omnicomprensiva. Fos l’efecte de l’estructura social, d’una banda, o de la identificació partidista, de l’altra, totes dues propostes teòriques no només ens intentaven explicar el color de la papereta que posàvem dins l’urna, sinó també la forma com pensàvem, com ens socialitzàvem o de quina manera vèiem el món. Tot i revolucionaris, eren també models estàtics, que concebien el votant com a poc flexible. Un votant que, un cop ancorat en determinades característiques, canviava poc o gens de vot.
En aquest context, i partint de la motxilla que Hotelling (Hotelling 1929) i Black (Black 1948) li havien llegat, molt probablement en els passadissos d’Stanford en els quals coincidien, Downs va suggerir una proposta diferent i, en certa manera, revolucionària: el model espacial (o, com de fet es coneix sovint, el model downsià). Un model que, a diferència dels que existien fins el moment, pretenia explicar el vot (o l’abstenció) des d’una lògica parsimoniosa molt diferent a la que existia fins el moment.
El model espacial del vot contempla molts principis i supòsits i no és objectiu d’aquest tutorial repassar-los tots. Ara bé, en la seva definició bàsica es pot resumir de la forma següent: individus i persones s’ubiquen sovint en en una dimensió política que té dos pols oposats. Els individus analitzen les alternatives polítiques existents (partits o candidats) i, un cop efectuat un càlcul d’utilitat, opten per aquella opció que maximitza la seva utilitat. Si la utilitat extreta no justifica el cost de votar, l’individu s’absté (la famosa U=pB-C). Així, s’opta per un partit, i no per un altre, en funció d’un càlcul d’utilitats diferencial. Aquests principis bàsics porten a Downs a afirmar quelcom que després ha fet fortuna, fins i tot fora l’acadèmia: tenint en compte que en algunes ocasions (habitualment, de fet) els individus es distribueixen vora el centre de la dimensió, i assumint que els partits volen guanyar les eleccions, les formacions polítiques tendiran a convergir cap a l’espai medià.
Moltes de les explicacions, molts dels principis i supòsits de Downs han estat criticats, revisats, analitzats o totalment esmenats (un servidor va dedicar la Tesi Doctoral a fer-ho, de fet). Així, un dels punts forts del model espacial o downsià és que permetia operacionalitzar, sigui via enquestes o via anàlisi de posicions ideològiques dels partits, els conceptes més importants dels quals partia. Per aquest i d’altres motius, Downs va (ajudar a) inaugurar un àmbit de recerca quantitativa que, si bé en els últims anys ha perdut certa popularitat, va atraure a molts politòlegs i ho va fer per la seva simplicitat, capacitat explicativa i, en alguns casos, predictiva. De fet, dels models clàssics en comportament electoral, hom probablement podria dir que és precisament el model espacial el que, malgrat tot, i si fem cas a la producció que encara genera, ha resistit millor el pas del temps.
Aquest tutorial divideix l’anàlisi empírica en tres parts. En primer lloc, es netegen i es preparen les dades. En segon lloc, es fa l’anàlisi empírica seguint la lògica downsiana o espacial. Finalment, es complementa l’anàlisi estadística amb una anàlisi espacial addicional, basada en una de les alternatives més populars a la lògica downsiana (el model direcccional).
Preparació de les dades
El primer pas és obrir la base de dades. En concret, s’utilitzarà el Baròmetre del Centre d’Estudis d’Opinió 850. Podeu veure informació sobre l’enquesta aquí. Per tal de poder realitzar el model espacial, convé tenir les variables següents: a) autoubicació de l’individu en una determinada dimensió; b) on ubica l’individu en la mateixa dimensió les diferents alternatives polítiques (partits o candidats). Aquests ítems son precisament els que té aquest sondatge del CEO.
La realitat política de Catalunya, a més, no només ens permet testar l’efecte de la distància en l’eix esquerra-dreta en la probabilitat de votar un partit, sinó que també ens permet analitzar l’efecte de la dimensió nacional. Com bé és sabut, i tot i que les dues dimensions no siguin del tot ortogonals i, per tant, la bidimensionalitat es pugui posar en qüestió, s’acostuma a afirmar que la política catalana s’estructura a partir de les dimensions esquerra-dreta i la dimensió nacional. Tot seguit veurem fins a quin punt això és així.
Comencem. El primer que cal fer és obrir la base de dades.
library("haven")
<- read_sav("Microdades anonimitzades cine -850.sav") df
Posarem tot seguit el focus en la variable d’autobicació en l’eix esquerra-dreta i en la ubicació percebuda dels partits en la mateixa dimensió. Com es pot veure, convé convertir en valors perduts el 98 i el 99. Tot i que aquí no els tinguem en compte, és important destacar que vora el 7.5% de la població catalana no s’ubica en l’eix esquerra-dreta (els motius pels quals això pot ser així, els deixem per un altre tutorial…). Un cop convertits en perduts, fem un histograma per observar-ne la distribució.
table(df$P25)
##
## 0 1 2 3 4 5 6 7 8 9 10 98 99
## 94 61 140 271 185 475 70 47 30 7 16 77 27
$lr <- df$P25
df$lr[df$P25==98] <- NA
df$lr[df$P25==99] <- NA
dftable(df$lr)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 94 61 140 271 185 475 70 47 30 7 16
hist(df$lr)
Seguim el mateix procediment per l’escala nacional (operacionalitzada pel CEO aquí com a espanyolisme-catalanisme). En aquest cas, un pèl més del 3% no s’ubica en aquesta dimensió.
table(df$P27)
##
## 0 1 2 3 4 5 6 7 8 9 10 98 99
## 77 29 36 51 54 504 105 127 145 96 232 20 24
$catalanisme <- df$P27
df$catalanisme[df$P27==98] <- NA
df$catalanisme[df$P27==99] <- NA
dftable(df$catalanisme)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 77 29 36 51 54 504 105 127 145 96 232
hist(df$catalanisme)
Ara convé fer el mateix per la ubicació percebuda dels partits, en cadascuna de les dimensions. Un dels punts importants que convé recordar aquí és el d’atribuir un patró comú en el nom de les noves variables (en el nostre cas ideol_ i nacio_). Això ens ajudarà més tard quan acabem de polir la base de dades per a l’anàlisi.
#PP
$ideol_pp <- df$P26A
df$ideol_pp[df$P26A==98] <- NA
df$ideol_pp[df$P26A==99] <- NA
dftable(df$ideol_pp)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 40 11 15 14 16 56 39 98 234 264 585
$nacio_pp <- df$P28A
df$nacio_pp[df$P28A==98] <- NA
df$nacio_pp[df$P28A==99] <- NA
dftable(df$nacio_pp)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 758 178 166 88 43 54 26 19 13 9 37
#ERC
$ideol_erc <- df$P26C
df$ideol_erc[df$P26C==98] <- NA
df$ideol_erc[df$P26C==99] <- NA
dftable(df$ideol_erc)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 189 135 256 250 218 169 49 25 16 7 14
$nacio_erc <- df$P28C
df$nacio_erc[df$P28C==98] <- NA
df$nacio_erc[df$P28C==99] <- NA
dftable(df$nacio_erc)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 13 7 5 11 13 47 54 160 263 303 498
#PSC
$ideol_psc <- df$P26D
df$ideol_psc[df$P26D==98] <- NA
df$ideol_psc[df$P26D==99] <- NA
dftable(df$ideol_psc)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 44 16 70 153 248 356 183 125 96 23 24
$nacio_psc <- df$P28D
df$nacio_psc[df$P28D==98] <- NA
df$nacio_psc[df$P28D==99] <- NA
dftable(df$nacio_psc)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 76 50 121 180 183 406 173 98 38 17 23
#Cs
$ideol_cs <- df$P26F
df$ideol_cs[df$P26F==98] <- NA
df$ideol_cs[df$P26F==99] <- NA
dftable(df$ideol_cs)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 32 8 22 25 49 146 118 184 303 206 232
$nacio_cs <- df$P28F
df$nacio_cs[df$P28F==98] <- NA
df$nacio_cs[df$P28F==99] <- NA
dftable(df$nacio_cs)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 400 188 221 143 96 150 51 33 27 22 26
#CUP
$ideol_cup <- df$P26G
df$ideol_cup[df$P26G==98] <- NA
df$ideol_cup[df$P26G==99] <- NA
dftable(df$ideol_cup)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 396 269 211 116 62 75 20 14 18 12 18
$nacio_cup <- df$P28G
df$nacio_cup[df$P28G==98] <- NA
df$nacio_cup[df$P28G==99] <- NA
dftable(df$nacio_cup)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 20 10 11 17 13 65 45 91 175 235 572
##CSQP
$ideol_csqp <- df$P26K
df$ideol_csqp[df$P26K==98] <- NA
df$ideol_csqp[df$P26K==99] <- NA
dftable(df$ideol_csqp)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 84 63 155 213 200 201 65 47 38 10 15
$nacio_csqp <- df$P28K
df$nacio_csqp[df$P28K==98] <- NA
df$nacio_csqp[df$P28K==99] <- NA
dftable(df$nacio_csqp)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 9 11 24 48 73 226 182 217 161 127 154
##Junts pel Sí
$ideol_jxsi <- df$P26J
df$ideol_jxsi[df$P26J==98] <- NA
df$ideol_jxsi[df$P26J==99] <- NA
dftable(df$ideol_jxsi)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 68 48 94 125 146 293 121 111 76 21 26
$nacio_jxsi <- df$P28J
df$nacio_jxsi[df$P28J==98] <- NA
df$nacio_jxsi[df$P28J==99] <- NA
dftable(df$nacio_jxsi)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 11 9 10 12 29 99 94 188 287 207 293
##PDeCAT
$ideol_pdecat <- df$P26L
df$ideol_pdecat[df$P26L==98] <- NA
df$ideol_pdecat[df$P26L==99] <- NA
dftable(df$ideol_pdecat)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 38 13 29 47 73 187 159 130 127 45 28
$nacio_pdecat <- df$P28L
df$nacio_pdecat[df$P28L==98] <- NA
df$nacio_pdecat[df$P28L==99] <- NA
dftable(df$nacio_pdecat)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 11 10 10 24 24 116 119 160 208 114 151
La propera variable que caldrà preparar és la del vot. En aquest cas, s’utilitza la variable intenció de vot al Parlament de Catalunya.
table(df$P37R)
##
## 1 4 6 10 15 16 80 93 96 98
## 57 140 98 70 418 214 71 15 145 272
$vot <- NA
df$vot[df$P37R==1] <- "pp"
df$vot[df$P37R==3] <- "erc"
df$vot[df$P37R==4] <- "psc"
df$vot[df$P37R==6] <- "cs"
df$vot[df$P37R==10] <- "cup"
df$vot[df$P37R==15] <- "jxsi"
df$vot[df$P37R==16] <- "csqp"
df$vot[df$P37R==20] <- "pdecat" df
Ara és el torn de les variables de control. Per tal de fer-ho simple, en farem només tres: edat, sexe i ingressos.
#SEXE
$sexe <- NA
df$sexe[df$sexe_enq==2] <- 0
df$sexe[df$sexe_enq==1] <- 1
df
#La variable EDAT no cal netejar-la
#Ingressos, en quatre categories
$ingressos <- NA
df$ingressos[ df$C900<5] <- 1
df$ingressos[df$C900> 4 & df$C900<10] <- 2
df$ingressos[df$C900> 9] <- 3
df$ingressos[df$C900==98 | df$C900==99] <- 4
df$ingressos <- as.factor(df$ingressos) df
El proper pas no és estrictament necessari, però tenint en compte la quantitat de variables que hi ha a la base de dades, farem una selecció només d’aquelles que s’utilitzaran.
library("dplyr")
<- df %>%
df select(ORDRE_CINE, vot, lr, catalanisme, ideol_pp, ideol_erc, ideol_psc, ideol_cup, ideol_csqp, ideol_cs,
ideol_jxsi,nacio_pp, nacio_erc, nacio_psc, nacio_cup, nacio_csqp, nacio_jxsi, ideol_pdecat, nacio_pdecat, nacio_cs, sexe, EDAT,ingressos)
Actualment les dades es troben en format ample. És a dir, cada fila correspon a un individu. Per tal de fer l’anàlisi, cal posar les dades en format llarg, és a dir, que hi hagi tantes files com opcions de vot existeixen. Posarem les dades en un nou objecte per no sobreescriure les antigues. Una de les coses que, com veureu en el codi següent, també hem de fer, és treure aquells individus que no pretenen votar cap de les opcions contemplades abans, que no ho saben o que es volen abstenir. Les dues últimes és necessari, atès que no s’atribueix una posició ideològica o nacional a l’abstenció o la indecisió (la qual cosa seria a priori estrany).
També hem de fer el mateix per aquells individus que no atorguen una posició ideològica o nacional als partits. En models més sofisticats és possible evitar aquests passos, els quals poden estar esbiaixant la mostra. Molt probablement la gent que “eliminem” és diferent a la que mantenim, la qual cosa pot afectar l’anàlisi i la interpretació dels resultats.
library("tidyr")
<- df %>% drop_na(vot)
df
<- df %>% pivot_longer( cols = c(starts_with("ideol"),
dfl starts_with("nacio")),
names_to = c(".value", "partit"),
names_pattern = "(.+)_(.+)")
<- dfl %>%
dfl filter_at(.vars = vars(one_of("partit")),
~ !is.na(.))
Preparem la variable dependent. Atorguem un 1 si van votar un partit concret, un zero si no ho van fer.
$choice <- 0
dfl$choice[dfl$vot==dfl$partit] <- 1 dfl
Ara cal crear la variable de distància ideològica. Hi ha diverses maneres de fer-ho. La més comuna és calcular la distància quadràtica basada en la diferència entre l’autoubicació d’un individu i la ubicació percebuda dels partits (la segona més popular és la simple distància o distància city-block). El terme quadràtic s’introdueix per tal de tenir en compte els rendiments decreixents generats per la distància. És a dir, un cop un partit és percebut com a allunyat ideològicament, la utilitat que es perd si s’allunya més hauria de tenir un impacte menor. Finalment, convé destacar que s’afegeix un signe negatiu per tal de facilitar-ne la interpretació. El càlcul s’aplica tant a la dimensió ideològica com a l’escala nacional.
$distance_ideol <- -(dfl$lr-dfl$ideol)^2
dfl$distance_nacio <- -(dfl$catalanisme-dfl$nacio)^2 dfl
Finalment, netegem una mica les variables de control per tal de poder incloure-les al model (alternative-specific constants, ASC).
library("dplyr")
<- dfl %>%
dfl mutate(sexe_csqp = ifelse(partit=="csqp",sexe,0),
sexe_cup = ifelse(partit=="cup",sexe,0),
sexe_erc = ifelse(partit=="erc",sexe,0),
sexe_jxsi = ifelse(partit=="jxsi",sexe,0),
sexe_pdecat = ifelse(partit=="pdecat",sexe,0),
sexe_pp = ifelse(partit=="pp",sexe,0),
sexe_psc = ifelse(partit=="psc",sexe,0),
sexe_cs = ifelse(partit=="cs",sexe,0),
edat_csqp = ifelse(partit=="csqp",EDAT,0),
edat_cup = ifelse(partit=="cup",EDAT,0),
edat_erc = ifelse(partit=="erc",EDAT,0),
edat_jxsi = ifelse(partit=="jxsi",EDAT,0),
edat_pdecat = ifelse(partit=="pdecat",EDAT,0),
edat_pp = ifelse(partit=="pp",EDAT,0),
edat_psc = ifelse(partit=="psc",EDAT,0),
edat_cs = ifelse(partit=="cs",EDAT,0),
ingressos_csqp = ifelse(partit=="csqp",ingressos,0),
ingressos_cup = ifelse(partit=="cup",ingressos,0),
ingressos_erc = ifelse(partit=="erc",ingressos,0),
ingressos_jxsi = ifelse(partit=="jxsi",ingressos,0),
ingressos_pdecat = ifelse(partit=="pdecat",ingressos,0),
ingressos_pp = ifelse(partit=="pp",ingressos,0),
ingressos_psc = ifelse(partit=="psc",ingressos,0),
ingressos_cs = ifelse(partit=="cs",ingressos,0))
El model downsià
Ja tenim les dades preparades per dur a terme la regressió. En concret, s’aplicarà un model anomenat regressió logística condicional. Aquest és un model habitual que permet tenir en compte l’estructura de les dades i, encara més important, el fet que les persones poden triar entre diferents alternatives (partits) i, per tant, les distàncies basades en l’escala nacional o ideològica poden variar entre aquestes alternatives.
library("mclogit")
## Loading required package: Matrix
##
## Attaching package: 'Matrix'
## The following objects are masked from 'package:tidyr':
##
## expand, pack, unpack
<- mclogit(formula = cbind( choice, ORDRE_CINE) ~ distance_ideol + distance_nacio +
m1 + sexe_cup + sexe_erc + sexe_jxsi + sexe_pdecat + sexe_pp +
sexe_csqp + + sexe_cs + edat_csqp + edat_cup + edat_erc + edat_jxsi + edat_pdecat +
sexe_psc + edat_psc + edat_cs + ingressos_csqp + ingressos_cup + ingressos_erc +
edat_pp + ingressos_pdecat + ingressos_pp + ingressos_psc + ingressos_cs, data = dfl) ingressos_jxsi
##
## Iteration 1 - deviance = 2137.218 - criterion = 0.09876699
## Iteration 2 - deviance = 1899.401 - criterion = 0.1252
## Iteration 3 - deviance = 1847.513 - criterion = 0.02808379
## Iteration 4 - deviance = 1837.052 - criterion = 0.005694305
## Iteration 5 - deviance = 1833.706 - criterion = 0.001824435
## Iteration 6 - deviance = 1832.364 - criterion = 0.0007322833
## Iteration 7 - deviance = 1831.819 - criterion = 0.0002977511
## Iteration 8 - deviance = 1831.596 - criterion = 0.000121804
## Iteration 9 - deviance = 1831.504 - criterion = 4.988213e-05
## Iteration 10 - deviance = 1831.467 - criterion = 2.030978e-05
## Iteration 11 - deviance = 1831.452 - criterion = 8.164893e-06
## Iteration 12 - deviance = 1831.446 - criterion = 3.228877e-06
## Iteration 13 - deviance = 1831.444 - criterion = 1.257052e-06
## Iteration 14 - deviance = 1831.443 - criterion = 4.834688e-07
## Iteration 15 - deviance = 1831.443 - criterion = 1.84349e-07
## Iteration 16 - deviance = 1831.442 - criterion = 6.986809e-08
## Iteration 17 - deviance = 1831.442 - criterion = 2.636298e-08
## Iteration 18 - deviance = 1831.442 - criterion = 9.91371e-09
## converged
Per tal d’interpretar millor els resultats, és convenient dibuixar-los. En concret, podem graficar les probabilitats predites i comparar-les. Tal i com podem veure, les dues dimensions semblen tenir el mateix pes a l’hora de votar un partit (la qual cosa, dit de passada, va en contra de certa idea popularitzada que a les eleccions catalanes només hi importa la dimensió nacional).
library("ggeffects")
library("ggplot2")
<- ggpredict(m1, terms = "distance_ideol")
mydf <- ggpredict(m1, terms = "distance_nacio")
mydf2 $type <- "ideol"
mydf$type <- "nacional"
mydf2<- rbind(mydf,mydf2)
mydf
ggplot(mydf, aes(x = x, y = predicted)) +
geom_line() +
geom_ribbon(aes(ymin=conf.low, ymax=conf.high), alpha=0.2) +
facet_wrap(~type, labeller = as_labeller(c(ideol="Escala esquerra/dreta",nacional="Escala nacional"))) +
xlab("Dimensió") +
ylab("Probabilitat predita de votar un partit")
El model direccional
Tal i com esmentava anteriorment, el model downsià ha estat valorat i criticat a parts iguals. Mentre alguns com Stokes (1963) van rebutjar de ple el model espacial, altres van criticar la idea que els votants decidissin en funció de la proximitat a una alternativa política. Una de les crítiques amb més ressò va ser la de Rabinowitz and Macdonald (1989), els quals van crear l’anomenada teoria direccional del vot. A tall de resum, Rabinowitz i Macdonald consideraven que allò important era que el votant i el partit se situessin a la mateixa banda de l’espectre polític i que, de fet, com més allunyat el partit es trobava d’aquella direcció, millor. La clau, segons el model direccional, és que als votants els importa moure l’estatus quo cap a una direcció ideològica concreta. Una alternativa espacial que va acabar inaugurant grans diatribes intel·lectuals i tests empírics per tal de testar si tots plegats votem en funció de la proximitat (à la downsiana) o de la direcció (à la Rabinowitz i Macdonald).
En termes estadístics, la utilitat del model direccional es defineix com el producte de les ubicacions dels partits i del votant en relació a l’estatus quo. És precisament el que fa el codi que es veu a sota. Podreu veure que l’SQ està definit com la ubicació mitjana dels electors en cadascuna de les dimensions.
$lrcen <- dfl$lr - 4
dfl$partycen <- dfl$ideol - 4
dfl
$naciocen <- dfl$catalanisme - 6
dfl$partycennacio <- dfl$nacio - 6
dfl
$dir_ideol <- dfl$lrcen*dfl$partycen
dfl$dir_nacio <- dfl$naciocen*dfl$partycennacio dfl
Un cop tenim les variables calculades, les posem en el mateix model de regressió logística condicional que abans. Un model que ens permetrà saber si els catalans som votants de proximitat o direccionals (com a mínim en aquest model simple i naïf aplicat al 2015).
<- mclogit(formula = cbind( choice, ORDRE_CINE) ~ distance_ideol + distance_nacio + dir_ideol +dir_nacio +
m2 + sexe_cup + sexe_erc + sexe_jxsi + sexe_pdecat + sexe_pp +
sexe_csqp + + sexe_cs + edat_csqp + edat_cup + edat_erc + edat_jxsi + edat_pdecat +
sexe_psc + edat_psc + edat_cs + ingressos_csqp + ingressos_cup + ingressos_erc +
edat_pp + ingressos_pdecat + ingressos_pp + ingressos_psc + ingressos_cs, data = dfl) ingressos_jxsi
##
## Iteration 1 - deviance = 2135.615 - criterion = 0.09809059
## Iteration 2 - deviance = 1893.973 - criterion = 0.1275781
## Iteration 3 - deviance = 1841.101 - criterion = 0.02871643
## Iteration 4 - deviance = 1830.531 - criterion = 0.005773709
## Iteration 5 - deviance = 1827.156 - criterion = 0.001847024
## Iteration 6 - deviance = 1825.803 - criterion = 0.0007412691
## Iteration 7 - deviance = 1825.252 - criterion = 0.0003014357
## Iteration 8 - deviance = 1825.027 - criterion = 0.0001233344
## Iteration 9 - deviance = 1824.935 - criterion = 5.051314e-05
## Iteration 10 - deviance = 1824.898 - criterion = 2.056249e-05
## Iteration 11 - deviance = 1824.882 - criterion = 8.262477e-06
## Iteration 12 - deviance = 1824.876 - criterion = 3.265666e-06
## Iteration 13 - deviance = 1824.874 - criterion = 1.270814e-06
## Iteration 14 - deviance = 1824.873 - criterion = 4.886159e-07
## Iteration 15 - deviance = 1824.873 - criterion = 1.862789e-07
## Iteration 16 - deviance = 1824.873 - criterion = 7.059567e-08
## Iteration 17 - deviance = 1824.873 - criterion = 2.663935e-08
## Iteration 18 - deviance = 1824.873 - criterion = 1.001944e-08
## Iteration 19 - deviance = 1824.873 - criterion = 3.7584e-09
## converged
Un cop fet el model, grafiquem els coeficients que ens interessen per tal de visualitar-ho més adequadament. Què hi veiem? Sembla que els catalans i les catalanes votem més aviat en funció de la proximitat. Ara bé, els coeficients se solapen força, la qual cosa vol dir… que el debat encara roman obert!
library("coefplot")
coefplot(m2, coefficients=c("distance_ideol", "distance_nacio", "dir_ideol", "dir_nacio"), title="", ylab="",
newNames=c("dir_nacio"="Direccional/nacional","dir_ideol"="Direccional/Esquerra-dreta","distance_nacio"="Proximitat/nacional",
"distance_ideol"="Proximitat/Esquerra-dreta"), xlab="Coeficient")