Está en la página 1de 13

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/327667651

Manual de Stata. Breve guía de estudio. Tema 8. Modelos de regresión no


lineal

Preprint · September 2018


DOI: 10.13140/RG.2.2.32867.20008

CITATIONS READS

0 7,084

2 authors:

Andrés Santana Jose Rama


Universidad Autónoma de Madrid Universidad Autónoma de Madrid
93 PUBLICATIONS   51 CITATIONS    74 PUBLICATIONS   20 CITATIONS   

SEE PROFILE SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Latin American politics: Chile in the spotlight View project

Latin American Politics: Evo Morales' Bolivia on the Spotlight View project

All content following this page was uploaded by Andrés Santana on 15 September 2018.

The user has requested enhancement of the downloaded file.


http://bit.ly/SantanaTwitter | http://bit.ly/SantanaFacebook | 1

Manual de Stata
Breve guía de estudio. Tema 8. Modelos de regresión no lineal
(Andrés Santana: andres.santana@uam.es y José Rama: jose.rama@uam.es)
Para saber más: Santana, Andrés, y José Rama, Manual de Análisis de Datos con Stata, Madrid,
Tecnos, 2017, bit.ly/SantanaRamaStata
Si quieres repasar tus nociones de diseño de investigación para sacarle más provecho al análisis de
datos, quizá te interese este trabajo: Santana, Andrés, 2013, Fundamentos para la investigación
social, Madrid, Alianza Editorial, ISBN = 9788420675848, http://bit.ly/SantanaFundamentos

La principal limitación de los MRL es que solo debes utilizarlos cuando tu variable dependiente es
una V. Si quieres predecir el comportamiento de una W en función de una o más variables
independientes (Ws o Vs), tendrás que emplear modelos de regresión no lineales (MRNL).
En este capítulo, aprenderás a obtener, graficar e interpretar MRNL para Ys dicotómicas y, en
concreto, el modelo “de regresión logística” (con el comando ‘logit’ de Stata). La regresión
logística se usa de forma habitual en las ciencias sociales, en las que muchas variables de interés
son Ws. Esta técnica permite modelar la probabilidad de un evento en función de varios factores,
por ejemplo, la probabilidad de que un individuo vote al Partido Popular, según la ideología, la
edad o el nivel educativo. Aunque los MNRL se basan en el MRL, la interpretación de sus
resultados numéricos resulta menos intuitiva, razón por la cual el énfasis en los gráficos es aún más
notorio en este capítulo. Una vez más, utilizarás la encuesta cis3126.

1. Prepara tus variables


Recodifica el nivel de estudios (ESTUDIOS), y crea dos variables. En la primera, crea una
dicotómica en la que agrupes en una única categoría a los de estudios superiores frente a cualquier
otro nivel. En la segunda, crea una variable de tres categorías: primarios, secundarios y superiores:
generate educ2 = ESTUDIOS if ESTUDIOS < 9
recode educ2 (1/5 = 0) (6 = 1) (7/8 = 0)
label define educa 0 "otros" 1 "superiores"
label values educ2 "educa"
label variable educ2 "Universitario"
* Variable de tres categorías:
generate educ3 = ESTUDIOS if ESTUDIOS < 9
recode educ3 (1/3 = 1) (4 5 8 = 2) (6 = 3) (7 = .)
label define educniv 1 "Primarios" 2 "Secundarios/FP" 3 "Universitarios"
label values educ3 "educniv"
label variable educ3 "Estudios3c"
Pese a que la variable ‘sexo’ es, de por sí, dicotómica (1 = hombre, 2 = mujer), querremos cambiar
los valores a sus etiquetas. Más adelante, verás por qué damos este sencillo paso, por el momento,
http://bit.ly/SantanaTwitter | http://bit.ly/SantanaFacebook | 2

quédate con el consejo de que será bueno recodificar tus variables de dos categorías con valores de
1 (existencia o presencia del atributo) y 0 (no existencia o ausencia del atributo):
generate sexo2 = sexo
recode sexo2 (1 = 0) (2 = 1)
label define genero2 1 "mujer" 0 "hombre"
label values sexo2 "genero2"
label variable sexo2 "Mujer"
Estas órdenes le indican a Stata que te interesa que el género “mujer” sea el atributo que esté
presente en tu variable. Crea, ahora, una versión dicotómica del tamaño del municipio:
*Tamaño del municipio en dos categorías (rural ≤ 10.000 habitantes, urbano > 10.000)
generate urbano = TAMUNI
recode urbano (1/2 = 0) (3/7 = 1)
label define habitat 0 "rural" 1 "urbano"
label values urbano "habitat"
label variable urbano "Urbano"
Completa el bloque de variables sociodemográficas transformando la edad (originalmente, una V)
en una variable ordinal de seis valores:
* Edad en 6 categorías:
generate edad6 = edad
recode edad6 (18/24 = 1) (25/34 = 2) (35/44 = 3) (45/54 = 4) (55/64 = 5) (65/100 = 6)
label define edadcat 1 "18/24" 2 "25/34" 3 "35/44" 4 "45/54" 5 "55/64" 6 ">64"
label values edad6 "edadcat"
label variable edad6 "Edad6c"
Crea una batería de variables dicotómicas a partir del recuerdo de voto (usa la variable ‘voto2015’
que creaste en el capítulo V). Las nuevas variables serán ‘pp’, ‘psoe’, ‘podemos’ y ‘ciudadanos’,
cada una de las cuales valdrá 1 cuando ‘voto2015’ corresponda con el recuerdo de voto a dicho
partido político, y tomará el valor 0 cuando represente a encuestados que, o bien optaron por votar
a otro partido, o decidieron hacer voto de protesta o abstenerse:
*Crear dummies de los cuatro partidos:
generate pp = voto2015
generate psoe = voto2015
generate podemos = voto2015
generate ciudadanos = voto2015
recode pp (1 = 1) (2/8 = 0)
recode psoe (1 = 0) (2 = 1) (3/8 = 0)
recode podemos (1/2 = 0) (3 = 1) (4/8 = 0)
recode ciudadanos (1/3 = 0) (4 = 1) (5/8 = 0)
Acostúmbrate a hacer control de calidad de tus recodificaciones. Para ello, obtén una tabla de
contingencia entre la variable original, ‘voto2015’, y tus nuevas variables:
http://bit.ly/SantanaTwitter | http://bit.ly/SantanaFacebook | 3

* Ejemplo:
tabulate voto2015 psoe
Esta TC te permite comprobar que has creado correctamente la “dummy” para el PSOE:
| psoe
voto2015 | 0 1 | Total
-----------+----------------------+----------
pp | 1,242 0 | 1,242
psoe | 0 1,123 | 1,123
podemos | 1,051 0 | 1,051
cs | 649 0 | 649
iu | 207 0 | 207
otros | 477 0 | 477
protesta | 116 0 | 116
absten | 761 0 | 761
-----------+----------------------+----------
Total | 4,503 1,123 | 5,626

La evaluación de la situación económica ha sido objeto de frecuente atención en los estudios de


comportamiento electoral. El estudio 3126 del CIS incluye cinco preguntas para medirla. Todas
ellas están medidas originalmente con escalas “invertidas” de cinco categorías, en las que la mejor
situación, evolución o perspectiva vale 1 y la peor, 5. En algunos modelos de este capítulo,
incluirás como Xs dos de ellas. Para simplificar la interpretación de los resultados, trabajarás con
versiones dicotómicas, que distinguirán entre quienes perciben una situación o evolución negativa
(mala o muy mala = 0), y quienes no (regular, buena o muy buena = 1):
* Evaluación económica sociotrópica retrospectiva:
generate ecoretro = P9 if P9 < 8
recode ecoretro (1/3 = 1) (4/5 = 0)
label define economire 1 "igual/mejor" 0 "peor"
label values ecoretro "economire"
label variable ecoretro "Eco igual/mejor"
* Evaluación económica sociotrópica actual:
generate ecoact = P8 if P8 < 8
recode ecoact (1/3 = 1) (4/5 = 0)
label define economiac 1 "buena/regular" 0 "mala"
label values ecoact "economiac"
label variable ecoact "Eco regular/bien"
Asimismo, resultará útil que recodifiques dos variables de corte más estrictamente “político”: la
satisfacción con el funcionamiento de la democracia y la confianza en el parlamento nacional.
Ambas son escalas que toman valores comprendidos entre 0 (ninguna satisfacción o confianza) y
10 (máxima satisfacción o confianza):
* Satisfacción democracia:
generate democr= P5 if P5<98
label variable democr "Satis demo (0-10)"
http://bit.ly/SantanaTwitter | http://bit.ly/SantanaFacebook | 4

* Confianza Parlamento Nacional:


generate confiparl= P601 if P601<98
label variable confiparl "Confi parl (0-10)"

2. MRL vs MRNL
En Europa occidental, hay diferencias notables en la participación electoral (votar o no votar). Una
de las preguntas clásicas en los estudios de comportamiento político y electoral es ¿quiénes
participan menos? Es decir, ¿qué características sociales definen a los abstencionistas? Para dar
respuesta a esta cuestión, habías creado la variable ‘participd’, cuyos valores son 1 si el encuestado
se abstiene y 0, si vota. La edad, el sexo y el estado civil pueden influir en la probabilidad de que
una persona participe en las elecciones u opte por quedarse en su casa cómodamente. Nuestra
premisa es que los más jóvenes, los no casados, las mujeres y los menos educados tienen una
mayor propensión a ser abstencionistas.
Saca un modelo de regresión lineal:
regress participd edad sexo2 ecivild urbano educ2
Omitimos el resultado por economía de espacio. El valor estimado de ‘participd’ para un hombre
casado que viva en el ámbito rural, sin estudios universitarios y de 90 años sería de -0,009. Está
claro que este valor no es ninguno de los dos únicos valores que puede tomar ‘participd’ (0 = votar
o 1 = abstenerse). Más allá de este hecho obvio, -0,009 tampoco puede interpretarse como la
probabilidad de abstenerse frente a votar (de que ‘participd’ valga 1), ya que las probabilidades no
pueden ser nunca negativas. Ello deja sin ninguna alternativa de interpretación sensata para estos
resultados. La razón por la que esto sucede es porque los modelos de regresión lineal estiman un
único efecto para cada X, esto es, asumen que el efecto de una X dada sobre Y es siempre el
mismo, independientemente del valor de X (y de los valores de cualquier otra variable). Esto es, en
un MRL, no hay manera de restringir los valores de (la predicción de) Y a una serie de valores
permitidos que tengan sentido.
Por el contrario, la regresión logística construye una función para calcular la probabilidad de que Y
tome el valor 1, la abstención. Su estimación de los efectos de cualquier X sobre Y ya no es lineal,
sino que varía en función de los valores de X (y del resto de variables). Ello significa que los
efectos de X1 sobre Y pueden ser “pequeños” cuando el valor esperado de Y es muy cercano a
cero o a uno (dados los valores de X2, X3, etcétera, así como el valor de partida de X), y
“mayores” cuando se sitúan en niveles intermedios:
logit participd edad sexo2 ecivild urbano educ2
Para estimar los efectos de un conjunto de variables independientes (Xs) sobre una dependiente
(Y) dicotómica, usarás la instrucción ‘logit’, seguida de Y, primero, y las Xs, después. Salvo que le
indiques algo diferente, esta orden estima los efectos de X sobre Y asumiendo que todas las X
están en sus valores medios. De manera esquemática, los resultados mostrados por Stata se pueden
dividir en tres partes:
Parte superior: iteraciones
Parte central: estadísticos del modelo
Parte inferior: estimaciones de los efectos:

Los modelos ‘logit’ se calculan a través de un proceso iterativo, denominado “método de máxima
verosimilitud”. Lo primero que aparece en el resultado de un ‘logit’ es una serie de iteraciones
(‘Iteration 0’, ‘Iteration 1’, etcétera). A esta parte, no le prestaremos mucha atención.
http://bit.ly/SantanaTwitter | http://bit.ly/SantanaFacebook | 5

La parte central de los resultados muestra los estadísticos del modelo. Céntrate en la columna
derecha. Su primera línea constata que el modelo emplea 6.200 observaciones. Su tercera línea (no
es necesario que sepas interpretar la segunda por el momento) ofrece una prueba de
significatividad estadística, “Prob>chi2”, que informa de que el modelo es significativo (Prob>chi2
= 0.0000), al ser inferior a 0,05. Su cuarta línea muestra un estadístico (Pseudo R2) que
proporciona información sobre la bondad de ajuste del modelo a los datos, pero, a diferencia del R2
de la regresión lineal, su interpretación no es directa, con lo que no nos detendremos en él.
Logistic regression Number of obs = 6200
LR chi2(5) = 106.08
Prob > chi2 = 0.0000
Log likelihood = -2243.7197 Pseudo R2 = 0.0231

En la parte inferior del output, se ofrecen las estimaciones de los efectos de las Xs sobre Y. Los
coeficientes del modelo logit no son directamente interpretables; por ejemplo, el aumento en una
unidad de ‘edad’ no hace que ‘participd’ disminuya 0,0096179 unidades. Aquí, has de fijarte solo
en dos elementos de cada X: (1) el signo del coeficiente, ‘coef’; y (2) su “pvalue”. Este último está
recogido por “P>|z|”, y lo has de interpretar igual que hiciste con “P>|t|” en la regresión lineal.
Simplemente has de quedarte con que el efecto de ‘edad’ es negativo y su “pvalue” (0.000 = 0%)
es muy inferior al 5%. A medida que la edad aumenta, la propensión a abstenerse disminuye
significativamente:
------------------------------------------------------------------------------
participd | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
edad | -.0096179 .0023041 -4.17 0.000 -.0141339 -.005102
sexo2 | .1887018 .079122 2.38 0.017 .0336255 .3437781
ecivild | -.4640196 .082628 -5.62 0.000 -.6259674 -.3020718
urbano | .0628535 .0909152 0.69 0.489 -.1153371 .2410441
educ2 | -.6655865 .1145265 -5.81 0.000 -.8900544 -.4411187
_cons | -1.310388 .1393568 -9.40 0.000 -1.583522 -1.037253
------------------------------------------------------------------------------

El resto de variables se interpreta análogamente. Las mujeres, los no casados y los que carecen de
estudios universitarios son más propensos a abstenerse (“pvalues” de 0.017 para ‘sexo2’ y 0.000
para las otras dos). En cambio, aunque el signo del coeficiente de ‘urbano’ es consistente con la
idea de que quienes viven en el ámbito rural tienen una mayor inclinación a abstenerse, este efecto
no es estadísticamente significativo (“pvalue” = 48,9%).
Las X especificadas como independientes son o bien Vs (caso de ‘edad’, expresada en años), o
bien dicotómicas. Si quisieras introducir variables nominales u ordinales de más de dos categorías,
deberías recodificarlas, y proceder como se mostró en el capítulo anterior. Por ejemplo, si quisieras
incluir una hipotética variable que recogiera la “altura” en tres categorías, deberías crear
dicotómicas (“dummies”): ‘bajo’, ‘mediano’, ‘alto’ (e incluir todas menos una, ya que interpretas
los resultados comparándolos con los de la categoría que no introduces explícitamente).

3. Presentación de modelos alternativos


Ya tenemos alguna pista acerca de qué factores sociales influyen en que un ciudadano en edad de
votar participe electoralmente o decida no hacerlo. Sin embargo, nuestra curiosidad de
investigadores va mucho más allá. Los resultados de las elecciones generales españolas del 20 de
diciembre de 2015 fueron algo único: dos nuevos partidos (Ciudadanos y Podemos) entraron en el
Congreso de los Diputados con 40 y 69 escaños respectivamente. Pero, ¿quiénes apoyaron a estas
http://bit.ly/SantanaTwitter | http://bit.ly/SantanaFacebook | 6

formaciones políticas? En este apartado, averiguaremos las probabilidades de voto a Ciudadanos


en función de algunas Xs. Nuestro primer modelo solo incluirá variables sociodemográficas: la
edad (V), el sexo (ser mujer o no), el nivel educativo (ser universitario o no), y el tamaño del
municipio (vivir en zona urbana o no):
logit ciudadanos edad sexo2 educ2 urbano, nolog
La opción ‘nolog’ sirve para que Stata no muestre las iteraciones (en la tabla con los resultados del
modelo hemos omitido también sus estadísticos). Las variables ‘edad’, ‘educ2’ y ‘urbano’ resultan
significativas (P>|z| = 0.000, 0.000 y 0.001, respectivamente) para explicar el voto a Ciudadanos.
Sin embargo, el sexo no ayuda a explicar el voto a la formación naranja (no es significativo,
porque su “p-value” es muy superior al 0,05 exigido). El signo de los coeficientes permite afirmar
que los más jóvenes, los universitarios y los urbanitas son más propensos a votar a Ciudadanos:
(parte superior del ‘output’ omitida) Number of obs = 5616
------------------------------------------------------------------------------
ciudadanos | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
edad | -.0205306 .0025937 -7.92 0.000 -.0256142 -.0154471
sexo2 | -.1051661 .0849008 -1.24 0.215 -.2715685 .0612363
educ2 | .5355628 .093616 5.72 0.000 .3520787 .7190468
urbano | .3471276 .1075748 3.23 0.001 .1362849 .5579702
_cons | -1.42886 .1595692 -8.95 0.000 -1.74161 -1.11611
------------------------------------------------------------------------------

Más allá de lo socio-demográfico, todo apunta a que variables de tipo político y económico han
jugado un papel relevante en la decisión de voto. Hasta ahora, has evaluado los resultados de cada
modelo de manera “interactiva”: cada vez que contrastabas un nuevo modelo, procedías a su
interpretación. Una alternativa más eficiente y sofisticada es mostrarlos e interpretarlos
simultáneamente. Para hacerlo, es necesario que, antes de estimar más modelos, aprendas a guardar
los resultados de tu primer modelo con la orden ‘estimates store’:
estimates store Modelo1
Los resultados guardados con ‘estimates store’ permanecen disponibles mientras no cierres Stata.
Si estimas modelos adicionales, podrás examinar cómo cambian los resultados entre los nuevos
modelos y el que acabas de guardar. En tu segundo modelo, podrías tratar de explicar el voto a
Ciudadanos en función de variables económicas y políticas, en lugar de las sociodemográficas del
modelo anterior. Por ejemplo, podrías considerar el impacto de dos variables económicas
(‘ecoretro’ y ‘ecoact’) y dos políticas (‘democr’ y ‘confiparl’):
quietly logit ciudadanos ecoretro ecoact democr confiparl
estimates store Modelo2
Al igual que hiciste con el “modelo sociodemográfico”, el recurso a ‘estimates store’ te permite
guardar en memoria los resultados del modelo “político-económico”. Recuerda que el prefijo
‘quietly’ le indica a Stata que trabaje “silenciosamente”, sin mostrar los resultados. También sería
interesante evaluar un modelo en el que las variables políticas y económicas no sustituyan, sino se
añadan a las sociodemográficas; al fin y al cabo, sabes, por el modelo 1, que muchas de éstas eran
significativas. Estima silenciosamente el “modelo completo”, y guárdalo:
quietly logit ciudadanos edad sexo2 educ2 urbano ecoretro ecoact democr confiparl
estimates store Modelo3
Éste es un buen momento para sacar una tabla que resuma los resultados obtenidos en los tres
modelos. Para hacerlo, emplea la instrucción ‘estimates table’:
http://bit.ly/SantanaTwitter | http://bit.ly/SantanaFacebook | 7

estimates table Modelo 1 Modelo 2 Modelo3, stats(N) star


La opción ‘stats(N)’ sirve para mostrar el número de casos de cada modelo, y la opción ‘star’, para
marcar con asteriscos las variables estadísticamente significativas. La tabla resultante agiliza
enormemente la presentación de los modelos y facilita la comparación entre ellos:
--------------------------------------------------------------
Variable | Modelo1 Modelo2 Modelo3
-------------+------------------------------------------------
edad | -.02053061*** -.02160834***
sexo2 | -.1051661 -.06593177
educ2 | .53556276*** .46173682***
urbano | .34712757** .36441191**
ecoact | .29496403** .32005695***
ecoretro | .57752143*** .56582686***
democr | .02705178 .04013259
confiparl | .01362893 .00872619
_cons | -1.4288599*** -2.7560342*** -2.177914***
-------------+------------------------------------------------
N | 5616 5172 5163
--------------------------------------------------------------
legend: * p<0.05; ** p<0.01; *** p<0.001

4. Predicción de los valores de Y según los valores de las X en los MRNL


En un modelo logístico con Y dicotómica, la mejor estimación de Y se puede interpretar como la
probabilidad de que Y = 1 (la “probabilidad de éxito”, la “probabilidad de que se produzca el
resultado”). Además, en un modelo logístico (de hecho, en cualquier MRNL), como los efectos de
las variables no son lineales, es muy difícil calcular “a mano” cuál es la mejor estimación de Y
para distintos valores de las X.
Stata incluye (creo que desde la versión 12) dos sencillas funciones que, empleadas después de
‘logit’, ayudan a entender los efectos de las Xs sobre Y: ‘margins’ estima la probabilidad de que Y
sea igual a 1 en función de los valores de una o de varias X; y ‘marginsplot’ grafica los resultados
de ‘margins’.1 Una de las consultas más habituales es la de saber cuál es la probabilidad de Y = 1
cuando todas las variables están en sus medias; para obtenerla, usa la instrucción ‘margins’
acompañada de la opción ‘atmeans’:
quietly logit ciudadanos edad sexo2 educ2 urbano
margins, atmeans
Dado que ya habías visto el resultado de este modelo, tiene sentido que lo hayas “prefijado” con
‘quietly’ para evitar que los resultados vuelvan a aparecer en la ventana de resultados. Las
primeras tres líneas son de poco interés (más allá de recordarte que el modelo emplea 5.616 casos).
En las cuatro líneas siguientes, Stata clarifica los valores de las variables para los que ha realizado
su estimación (que corresponden a sus medias, tal y como le has pedido). En la parte inferior,
figura la estimación: la probabilidad de votar a Ciudadanos cuando todas las variables están en sus
medias es 10,6% y, más allá de esta estimación puntual, puedes asegurar, con una confianza del
95%, que esta probabilidad se encuentra entre 9,8% y 11,4%.
Adjusted predictions Number of obs = 5616

1
Si tu versión de Stata no soporta ‘margins’ ni ‘marginsplot’, puedes sacar análisis parecidos con el “ado” file “spost”.
http://bit.ly/SantanaTwitter | http://bit.ly/SantanaFacebook | 8

Model VCE : OIM


Expression : Pr(ciudadanos), predict()
at : edad = 49.52119 (mean)
sexo2 = .5097934 (mean)
educ2 = .2063746 (mean)
urbano = .7400285 (mean)
------------------------------------------------------------------------------
| Delta-method
| Margin Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
_cons | .1060478 .0042968 24.68 0.000 .0976261 .1144695
------------------------------------------------------------------------------

Aunque la de las medias sea una consulta popular, cabría cuestionarse si es la más idónea en un
modelo como éste, en el que tres (¡de cuatro!) X son Ws y, por lo tanto, no tiene mucho sentido
hablar de tales “medias”. Quizá, resultaría más correcto, y más interesante, saber en qué rango se
mueve la estimación de la probabilidad de voto a Ciudadanos, según los valores de las X. La cota
máxima tendrá lugar con los votantes más jóvenes (ya que la variable ‘edad’ tiene un efecto
negativo sobre Y), hombres, universitarios y urbanos:
margins, at(edad = 18 sexo2 = 0 educ2 = 1 urbano = 1)
Recuerda que el mínimo de edad en el cuestionario cis3126 es 18. Un hombre universitario de 18
años que viva en la ciudad tiene una probabilidad (estimada) de votar a Ciudadanos de 28,6% (con
un 95% de confianza, puedes asegurar que dicha probabilidad está entre 24,2% y 33,0%):
(omitidas las tres líneas superiores, y comprimidas las líneas del ‘At’ en una sola)
At: edad = 18 (min), sexo2 = 0, educ2 = 1, urbano = 1
------------------------------------------------------------------------------
| Margin Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
_cons | .2858307 .0225042 12.70 0.000 .2417232 .3299381
------------------------------------------------------------------------------

Y, ahora, solicitas conocer la probabilidad ínfima:


margins, at((max)edad sexo2 = 1 educ2 = 0 urbano = 0)
La probabilidad cae a 2,9%. Fíjate en que, además de la probabilidad de que Y sea igual a 1, Stata
siempre aporta su error estándar, el estadístico z, su “pvalue” y los intervalos de confianza:
(omitidas las tres líneas superiores, y comprimidas las líneas del ‘At’ en una sola)
at: edad = 96 (max), sexo2 = 1, educ2 = 0, urbano = 0
------------------------------------------------------------------------------
| Margin Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
_cons | .0291713 .0047236 6.18 0.000 .0199132 .0384294
------------------------------------------------------------------------------

Si no especificaras ninguna opción, ‘margins’ hallaría simplemente la predicción de Y para el


conjunto de la muestra, y su resultado sería parecido al que obtendrías con las herramientas de
análisis descriptivo univariante, por ejemplo, con la instrucción ‘ci’. Debes tener en cuenta, no
obstante, que los resultados de ‘margins’ diferirán algo de los de ‘ci’, principalmente, porque la
muestra empleada por ‘margins’ es la muestra de la última instrucción ‘logit’, es decir, los 5.616
casos que tienen información no sólo de la variable ‘ciudadanos’ sino también de ‘edad6’, ‘sexo2’,
‘educ2’ y ‘urbano’.
http://bit.ly/SantanaTwitter | http://bit.ly/SantanaFacebook | 9

En las órdenes anteriores, has aprendido a pedirle a ‘margins’ que calcule la Probabilidad de Y = 1
para distintas combinaciones concretas de valores de un conjunto de X. Ahora, aprenderás a
pedirle que calcule una batería de estimaciones para valores distintos de una X en concreto. Por
ejemplo, si una X puede adoptar 4 valores distintos, pedirás información para responder a la
pregunta siguiente: ¿cómo cambia la probabilidad de que Y sea 1 al cambiar el valor de X?
Veamos un ejemplo. Si consideras los resultados anteriores, quizá te llame la atención que los más
jóvenes se muestren más propensos a votar a Ciudadanos. ¿Hasta qué punto es esto cierto? Para
estudiarlo mejor, podrías usar la medida ordinal de edad, y ver cómo se altera la predicción de la
probabilidad de votar a Ciudadanos cuando se pasa de unos grupos de edad a otros:
quietly logit ciudadanos edad6 sexo2 educ2 urbano
margins, at(edad6 = (1(1)6))
Como hiciste más arriba, la opción ‘at()’ te sirve para indicar los valores para los que se deben
calcular los marginales. Al especificar ‘at(edad6 = valor/es)’, le indicas a Stata que los debe
calcular para un valor o algunos valores de ‘edad6’. La diferencia es que esta vez no explicitas un
único valor de ‘edad6’, sino varios. Para hacerlo, escribes “1(1)6”; el primer “1” revela que el
primer valor de ‘edad6’ para el que Stata debe calcular la Probabilidad de Y = 1 es 1 (los jóvenes
de 18 a 24 años); el “6” puntualiza que el último valor de ‘edad6’ para el que se debe calcular la
probabilidad es 6 (los mayores de 64 años); y el segundo “1” aclara que se debe aumentar de
categoría en categoría. Es decir, los cálculos deben partir del valor 1 de ‘edad6’, aumentando de 1
en 1 hasta llegar al valor 6 de ‘edad6’.
(omitidas las tres líneas superiores, y comprimidas las líneas ‘_at’ en una sola)
1._at: edad6 = 1, 2._at: edad6 = 2, 3._at: edad6 = 3, 4._at: edad6 = 4, 5._at: edad6 = 5, 6._at:
edad6 = 6
------------------------------------------------------------------------------
| Margin Std. Err. z P>|z| [95% Conf. Interval] Observaciones
-------------+----------------------------------------------------------------
_at |
1 | .1815507 .0115392 15.73 0.000 .1589343 .2041672 Se solapa con c2
2 | .1532657 .0073916 20.74 0.000 .1387785 .167753 Se solapa con c1
3 | .1286589 .0048776 26.38 0.000 .1190989 .1382188
4 | .107472 .0042786 25.12 0.000 .0990861 .1158578
5 | .0893931 .0048463 18.45 0.000 .0798944 .0988917 Se solapa con c6
6 | .0740854 .0055587 13.33 0.000 .0631905 .0849804 Se solapa con c5
------------------------------------------------------------------------------

Gracias a esta orden, aprecias que los de la segunda categoría (de 25 a 34 años) tienen una
probabilidad media de votar a Ciudadanos de 15,3%, mientras que los de la tercera (35 a 44 años)
la tienen de 12,9%. Estas probabilidades no se solapan (el extremo inferior de quienes tienen 25/34
años es 0,1388 y el extremo superior de quienes tienen 35/44 es 0,1382). La columna de
‘Observaciones’ con indicaciones de los intervalos que se solapan la he añadido manualmente.

5. Representación gráfica de los MRNL


La orden ‘marginsplot’ representa gráficamente los resultados del último ‘margins’. Si la solicitas
ahora, construirá un gráfico con la probabilidad de votar a Ciudadanos (en el eje vertical) para cada
grupo de edad (eje horizontal). Las probabilidades mostradas son multivariadas o parciales, en el
sentido de que “controlan” por el resto de variables del modelo:
marginsplot
http://bit.ly/SantanaTwitter | http://bit.ly/SantanaFacebook | 10

Decir que controlan por dichas variables equivale a decir que las mantienen constantes (en sus
medias, porque no has solicitado que las mantengan constantes en ningún otro valor en particular).
Para cada valor de X (cada grupo de edad), se muestra un punto con la mejor estimación puntual de
la probabilidad de Y = 1 (votar a Ciudadanos). Estos puntos corresponden a los valores de la
columna ‘margins’ de la última tabla y están conectados por una línea:
Predictive Margins with 95% CIs
.2
.15
Pr(Ciudadanos)

.1
.05

18/24 25/34 35/44 45/54 55/64 >64


Edad6c

Para cada X, se muestran también unas barras verticales que representan el intervalo de confianza
de la predicción puntual de la probabilidad de que Y = 1 (sus extremos son los valores de las dos
columnas de la derecha del último ‘margins’). Si las barras de dos grupos de edad se solapan
(18/24 y 25/34 años), éstos no tienen probabilidades estadístiticamente distintas de votar a
Ciudadanos. Sí existen diferencias entre ambos grupos y los de 55/64 años.
La edad se muestra de forma significativa como una variable que influye en la probabilidad de
voto a Ciudadanos, sin embargo, nuestro modelo destacaba también el nivel educativo como otro
condicionante del voto a dicha formación política. La orden ‘margins’ permite estimar las
probabilidades de voto a Ciudadanos en función de ambas variables:
margins, at(edad6=(1(1)6)) over(educ2)
La opción ‘over()’ hace que los resultados se computen para cada valor de ‘educ2’. Como estabas
solicitando resultados para cada grupo de edad, se muestran dos resultados para cada grupo, uno
para quienes no tienen estudios universitarios (‘educ2’ = 0) y otro para quienes sí los tienen
(‘educ2’ = 1). Ello hace que la orden sea especialmente apropiada para comprobar si, en cada
grupo de edad, existen o no diferencias significativas entre quienes terminaron estudios superiores
y quienes no lo hicieron:
(omitidas todas las líneas superiores) Number of obs = 5616
---------------------------------------------------------------------------------------------------
| Margin Std. Err. z P>|z| [95% Conf. Interval] Comenarios
--------------+------------------------------------------------------------------------------------
1#otros | .1616979 .011469 14.10 0.000 .1392191 .1841767
1#superiores | .2578958 .0188406 13.69 0.000 .220969 .2948226 no se solapa con “otros”
2#otros | .1357607 .0076139 17.83 0.000 .1208377 .1506837
2#superiores | .2205824 .0145193 15.19 0.000 .1921251 .2490398 no se solapa con “otros”
3#otros | .1134115 .0052515 21.60 0.000 .1031188 .1237041
3#superiores | .1872936 .0118286 15.83 0.000 .1641099 .2104774 no se solapa con “otros”
4#otros | .0943325 .0044494 21.20 0.000 .0856119 .1030531
4#superiores | .1580005 .0106549 14.83 0.000 .1371174 .1788837 no se solapa con “otros”
5#otros | .0781747 .0046523 16.80 0.000 .0690563 .0872931
5#superiores | .1325341 .0104495 12.68 0.000 .1120533 .1530148 no se solapa con “otros”
6#otros | .0645831 .0050893 12.69 0.000 .0546084 .0745579
http://bit.ly/SantanaTwitter | http://bit.ly/SantanaFacebook | 11

6#superiores | .110627 .010588 10.45 0.000 .0898748 .1313791 no se solapa con “otros”
------------------------------------------------------------------------

Como se puede apreciar (los comentarios a la derecha de la tabla los he añadido a mano), en
ninguno de los grupos de edad se solapa el intervalo de confianza de quienes tienen estudios
superiores y quienes no los tienen. Por ejemplo, entre los más jóvenes (‘edad6’ = 1, de 18 a 24
años), la probabilidad de votar a Ciudadanos es 0,16 si no tienen estudios superiores y 0,26 si los
tienen; con un 95% de confianza, puedes asegurar que la probabilidad de los primeros es mayor
que 0,14 y menor que 0,18, y que la de los segundos se encuentra entre 0,22 y 0,29. Esto significa
que poseer estudios superiores tiene efectos significativos (en este caso, positivos) sobre la
probabilidad de votar a Ciudadanos independientemente de la edad, ya que la diferencia existe para
todos los intervalos de edad.
marginsplot
Si graficas los resultados con ‘marginsplot’, facilitarás enormemente la interpretación: en lugar de
cotejar múltiples grupos en una tabla como la anterior, te bastará con fijarte en si las barras del
gráfico superior (estudios superiores) se solapan o no con las del inferior (sin tales estudios). Es
inmediato comprobar que no es así: por consiguiente, poseer estudios superiores aumenta
significativmente la probabilidad de votar a Ciudadanos para cualquier edad.
Predictive Margins with 95% CIs
.3
.25
Pr(Ciudadanos)

.2
.15
.1
.05

18/24 25/34 35/44 45/54 55/64 >65


Edad6c

otros superiores

El enfoque gráfico tiene dos ventajas adicionales. La primera es que muchos lectores recuerdan
durante más tiempo los resultados si los ven ilustrados que si los leen en tablas. La segunda es que
también permite apreciar rápidamente si hay diferencias significativas entre grupos de edad para un
mismo nivel de estudios. Por ejemplo, si te mantienes en la línea de arriba (estudios superiores)
puedes ver inmediatamente que la barra de efectos del primer grupo (18/24) y la del segundo
(25/34) comparten algunos valores, lo que significa que estas dos categorías no tienen efectos
significativamente diferentes sobre la probabilidad de voto a Ciudadanos. En cambio, no hay duda
de que hay diferencias entre el grupo de 18/24 años y el de 45/64 (el extremo inferior de la barra de
efectos del primero está por encima del extremo superior de la del segundo).

6. Representación simultánea de varios modelos logísticos con ‘coefplot’


La instrucción ‘marginsplot’ es extremadamente útil y versátil, pero solo puede trabajar con los
resultados del comando ‘margins’ y, por lo tanto, solo puede mostrar los resultados de un único
modelo. ¿Existe alguna manera de representar los resultados de varios modelos con un gráfico? La
respuesta es afirmativa, pero debes volver a recurrir a un “ado”: “coefplot”. Descárgatelo, y
estrénalo sacando un gráfico de tus dos primeros modelos:
ssc install coefplot
http://bit.ly/SantanaTwitter | http://bit.ly/SantanaFacebook | 12

Para separar cada uno de los modelos que quieres mostrar, usa barras dobles: “||”. La opción
‘xline(0)’ traza una línea vertical que identifica el punto 0 del eje X (para cada modelo). La opción
‘drop(_cons)’ sirve para evitar representar el coeficiente de la constante:
coefplot Modelo1 || Modelo2, xline(0) drop(_cons)
El resultado es una representación gráfica de los coeficientes del Modelo 1 (izquierda) y el 2
(derecha). La elección de mostrar líneas verticales en el valor cero obedece al deseo de que estas
líneas marquen la ausencia de efecto de las Xs sobre Y. El punto de cada X refleja la mejor
estimación del efecto de esa variable sobre Y. Las líneas horizontales que acompañan a cada punto
representan los intervalos de confianza de tales efectos:
Modelo1 Modelo2

Edad (años)

Mujer

Universitario

Urbano

Eco regular/bien

Eco igual/mejor

Satis demo (0-10)

Confi parl (0-10)

-.5 0 .5 1 -.5 0 .5 1

Para interpretar este gráfico, debes fijarte en la relación entre los puntos que representan el efecto
de cada X y la línea vertical que marca un hipotético efecto nulo. Si el punto está a la izquierda de
la línea vertical (del 0), el efecto de la variable es positivo. Si se sitúa a la derecha, su efecto es
negativo. Por ejemplo, en el primer modelo: se aprecia que el punto de ‘mujer’ está a la izquierda
de la línea vertical y el de ‘universitario’ está a la derecha, lo cual indica que la mejor estimación
es que ser mujer tiene un efecto negativo sobre la probabilidad de votar a Ciudadanos, y ser
universitario lo tiene positivo.
Resulta aún más interesante fijarse en la relación entre las líneas horizontales de cada X y la línea
vertical que marca el 0. Si la línea horizontal de una variable pasa por el 0, esto es, si corta la línea
vertical, el intervalo de confianza de la estimación de su efecto no es ni íntegramente positivo ni
íntegramente positivo, y no se puede descartar que el efecto sea nulo. Es decir, su efecto no es
estadísticamente significativo. La edad es estadísticamente significativa y negativo (los más
jóvenes tienen una mayor propensión a votar a Ciudadanos), mientras que tener un título
universitario y vivir en un hábitat urbano tienen efectos positivos y estadísticamente significativos;
ser mujer no tiene efectos significativos sobre el voto a Ciudadanos.

Por si no la habéis visto aún, aquí está una publicación conjunta de los autores de la guía, con
análisis similares a los que se acaban de presentar:
Santana, Andrés and Jose Rama, 2018, “Electoral Support for Left Wing Populist Parties”,
European Politics & Society, https://doi.org/10.1080/23745118.2018.1482848.

View publication stats

También podría gustarte