Malaportionment en la elección de diputados de 2012

Las elecciones de Diputados de 2012 se celebraron usando la distritación de 2006, que a su vez, fue elaborada con los datos del Censo del año 2000. Es decir, los límites distritales de 2012 están basados en el Censo del 2000 en lugar de los resultados del Censo de 2010. La razón es meramente técnica (no existe conspiración detrás):

Que el último Censo General de Población y Vivienda fue realizado en el año 2010, sin embargo, el Instituto Nacional de Estadística y Geografía (INEGI) informó a la Dirección Ejecutiva del Registro Federal de Electores que la información de los datos de vivienda por manzana, necesaria para una nueva disertación (sic), se tendrían durante el tercer trimestre de 2011, por lo que, contando en esa fecha con esta información, resulta técnica y materialmente imposible realizar los trabajos en esta materia previo al inicio, en la primera semana de octubre, del Proceso Electoral Federal 2011-2012. – CG268/2011

Sin embargo, ahora que contamos con la información censal del 2010 a nivel de escalas geoelectorales, resulta interesante preguntarnos la magnitud del malaporcionamiento de 2012. La respuesta es que 87 de los 300 distritos electorales se encontraban fuera del rango de desviación que estaría permitido con base en los datos censales de 2010.

Empecemos por preguntarnos por qué es necesaria la redistritación. Este documento del IFE lo resume de la siguiente manera:

El principio fundamental de la democracia representativa es la equidad en el voto. Este precepto obliga a buscar el equilibrio poblacional entre los distritos pues la sobrepoblación o la subpoblación relativa de los distritos implica sub-representación o sobre-representación política que afectan la igualdad de los ciudadanos en cuanto al valor de su voto. De ahí la importancia de revisar periódicamente el equilibrio poblacional en los distritos electorales uninominales federales.

En los sistemas electorales basados en distritos de mayoría relativa, el principio de “una persona, un voto” normalmente se traduce en la búsqueda de distritos comprendan un número similar de ciudadanos. (Aunque este principio puede alcanzarse con otras alternativas menos ortodoxas, como ponderar los votos de los representantes de acuerdo al número de ciudadanos en sus distritos, o la provocativa idea de Brunell de asignar aleatoriamente un distrito a las personas al momento de nacer). La idea subyacente es que el voto de un ciudadano para elegir a su representante “vale” más en un distrito pequeño que en uno grande. Por ejemplo, en un distrito con 5 ciudadanos, un voto vale 1/5 mientras que en un distrito con 10 ciudadanos un voto vale sólo 1/10. Las desviaciones con respecto al ideal de que todos los distritos comprendan el mismo número de ciudadanos se denomina malapportionment.

Los procesos de redistritación en México utilizan los resultados del Censo de Población y Vivienda como medida del tamaño de los distritos. Dada complejidad de crear distritos de exactamente el mismo tamaño, existe un “rango de tolerancia”. Por ejemplo, el Censo de 2010 arrojó que el tamaño de la población es 112,336,538. Cada distrito debería tener aproximadamente 112,336,538 / 300=374,455 personas. El rango de tolerancia es el 15%  (374,455*.15 = 56,168); es decir, los distritos pueden tener una población de entre 318,287 (374,455 – 56,168) y 430,623 (374,455 + 56,168) habitantes.

¿Dónde se ubican actualmente los distritos utilizados en las elecciones federales de 2012 con respecto al rango de tolerancia con el que fueron elaborados? Los puntos en la gráfica de abajo representan la población total de los 300 distritos según datos del Censo de 2010. También muestra el rango de tolerancia que debieron cumplir cuando se trazaron, es decir, el rango calculado a partir de los datos del Censo del 2000 que va de 276,203 a 373,686 (franja gris). Como se observa, existen varios distritos fuera de ese rango: 140 distritos rebasan el límite permitido en el año 2000, mientras que 11 distritos se ubican debajo él. En total, más de la mitad de los distritos (151/300) se encuentran fuera de rango.

La gráfica también muestra el rango de tolerancia que se fijará con de los datos del Censo de 2010 que va de 318,286 a 430,623 (franja roja). El número de distritos fuera de este nuevo rango es relativamente menor: 38 distritos rebasan el rango y 49 distritos se encuentran debajo de él.

pob2010_dto

En términos de resultados electorales, resultaría interesante conocer a qué partido(s) benefició –si es que beneficio a alguno(s)– este fenómeno. Por ejemplo, si un partido ganó de manera sistemática en aquellos distritos debajo del rango permitido, a dicho partido le “costó” menos votos obtener la curul. Por el contrario, si un partido ganó de manera sistemática en aquellos distritos encima del rango permitido, a dicho partido le “costó” más votos obtener la curul. Esta asimetría se denomina “sesgo por malaportionment” en la literatura sobre distritación. (Existen otras fuentes de sesgo, como la participación, la distribución geografica del voto e incluso votos por partidos pequeños).

ARTICULOS RECOMENDADOS

Brunell, T. (2008). Redistricting and representation: Why competitive elections are bad for America. Routledge.

Johnston, R. J. (1986). Constituency redistribution in Britain: recent issues.Electoral Laws and Their Political Consequences.

Leighley, J. E. (Ed.). (2010). The Oxford handbook of American elections and political behavior. OUP Oxford.

Lijphart, A. (1982). Comparative Perspectives on Fair Representation.Representation and Redistricting Issues, Lexington Books, Lexington, Toronto, 143-159.

El código para replicar el análisis en R es el siguiente (se aprecian sugerencias):

#----------
# Get data
#----------
# Conteo 2005
conteo <- read.table("poblacion_distrito_2005.txt", header=TRUE,sep=",")
conteo <- conteo[,c("Estado", "Distrito", "Pob_tot")]
names(conteo) <- c("Estado", "Distrito", "Pob05")

# Censo 2010
censo <- read.table("poblacion_distrito_2010.txt", header=TRUE,sep=",")
censo <- censo[,c("ENTIDAD","DISTRITO","POBTOT")]
names(censo) <- c("Estado", "Distrito", "Pob10")

# Data
data <- merge(censo, conteo, by=c("Estado", "Distrito"))
data[,c("Pob05", "Pob10")] <- data[,c("Pob05", "Pob10")]/100000

#Media Censo 2010
media10 <- sum(data$Pob10)/300
desv10  <- media10*.15
# Media Censo 2000 (IFE)
media00 <- 324944.706667 / 100000
desv00  <- media00*.15

# ¿Cuántos distritos por arriba/debajo de limite 2000 y 2010?
nrow(data[data$Pob10 > media00+desv00,])
nrow(data[data$Pob10 < media00-desv00,])

nrow(data[data$Pob10 > media10+desv10,])
nrow(data[data$Pob10 < media10-desv10,])

#----------
# Graficas
#----------
abbrev <- c('Ags','BC','BCS','Cam','Coah', 'Col', 'Chis',
			'Chih','DF','Dgo','Gto','Gro','Hgo','Jal',
			'Méx','Mich','Mor','Nay','NL','Oax','Pue',
			'Qro','QR','SLP','Sin','Son','Tab','Tamps',
			'Tlax','Ver','Yuc','Zac')
data$Name <- factor(data$Estado, labels=abbrev)
data <- data[order(data$Estado, -data$Pob10),]

# Desviacion con respecto a media 2000 y 2010
#png("dotplot.png", width=8, height=55, units="in", res=300)
png("pob2010_dto.png", width=400, height= 4000, units="px")
par(bty='n')
dotchart(	data$Pob10,
			labels=data$Distrito,
			groups=data$Name,
			gcolor="dimgray",
			pch=16,
			main="Población Total (Censo 2010) \npor distrito electoral (2006-2012)",
			xlab="Población Total/100 mil (Censo 2010)")
#axis(3)
usr <- par("usr")
rect(media00-desv00,usr[3],media00+desv00,usr[4],
	col=rgb(190, 190, 190, alpha=80, maxColorValue=255),
	border=NA)
rect(media10-desv10,usr[3],media10+desv10,usr[4],
	col=rgb(178, 34, 34, alpha=50, maxColorValue=255),
	border=NA)
legend(	"topright",
		title="Rangos de tolerancia",
		legend=c("Censo 2000", "Censo 2010"),
		pch=c(15,15),
		col=c(	rgb(190, 190, 190, alpha=100, maxColorValue=255),
				rgb(178, 34, 34, alpha=100, maxColorValue=255)),
		)
#abline(v=media10, lty="dashed")
#abline(v=media00, lty="dashed")
dev.off()

# Población 2005 vs 2010
setwd("~/REDISTRICTING/MALAPPORTIONMENT_2012")
png("2005vs2010.png", width=400, height=400, units="px", res=90)
# Censo 2010
lim <- range(data$Pob05, data$Pob10)
plot(data$Pob05, data$Pob10,
	col=rgb(0,100,0,50,maxColorValue=255),
	pch=16,
	xlim=lim,
	ylim=lim,
	main="Población Total por \ndistrito electoral (2006-2012)",
	xlab="Conteo 2005 (100 mil hbs.)",
	ylab="Censo 2010 (100 mil hbs.)")
abline(0,1, lty="dashed")
text(data[abs(data$Pob05-data$Pob10)>.9,c("Pob05","Pob10")],
	labels=data$Name[abs(data$Pob05-data$Pob10)>.9],
	pos=2, offset=.2,
	cex=.8)
dev.off()

Leave a Reply