No hacer mal uso de las estadísticas para atacar Qali Warma

El programa de alimentación a niños en edad escolar ha sido atacado estas últimas semanas. Uno de los ataques principales viene de un estudio académico de un profesor de Economía de la Universidad de Pacífico. Se pueden bajar el reporte de aquí: http://srvnetappseg.up.edu.pe/siswebciup/Files/DD1307%20-%20Vasquez.pdf

Estuve mirando rápidamente el reporte en cuestión y vi que una de las críticas se basa en una mala interpretación de al menos uno de los análisis estadísticos.

En la página 93 dice:

El Gráfico 50 muestra los resultados obtenidos para el caso de los escolares. En este caso se comparó el gasto presupuestado por escolar contra el porcentaje de niños entre 6 y 11 años que viven en hogares con déficit calórico, información basada en los resultados del IPM. Este muestra resultados preocupantes, a diferencia del caso para preescolares: se observa una relación negativa entre ambas variables. Esto quiere decir que el presupuesto por escolar no está distribuido equitativamente, pues es mayor en los departamentos con menor déficit calórico.

Este es el gráfico 50:

grafico_50

Rehaciendo el análisis

Al ojo se ve que no hay relación entre las variables. Copié los datos que están en la tabla 31 (de la página 123) y ajusté una regresión lineal en el programa estadístico R.

Mira los puntos todos aglomerados al centro. No dejes que la línea de tendencia te engañe. El coeficiente de determinación R2 es casi cero (0.04) y el p-value no es significativo ( p > 0.05).

Tarán! los resultados dicen que NO hay correlación entre las variables y que las conclusiones del autor de líneas arriba están erradas. NO es cierto que los datos indiquen que se gaste menos dinero en áreas con mayor deficiencia calórica.

plot_50_reloaded

Si hubiera una correlación entre dos variables, osea una relación entre gasto y nivel de deficiencia calórica, deberíamos de tener un gráfico así. Mira los puntos distribuidos a lo largo de la línea de tendencia, no están aglomerados!:

Ejemplo de correlación significativa

Ejemplo de correlación significativa

Hay obvia correlación, a mayor valor de x, menor valor de y. Además los valores de R2 y p-value son: R2 = 0.82, p = 0.0002. El coeficiente R2 es cercano a 1, y el p-value es mucho menor que 0.05. Osea altamente significativo.

Pero los valores que salen de analizar los datos del estudio académico son los siguientes:

R2 = 0.04 (es casi cero, si fuera cercano a 1 sabes que hay correlación. Pero en este caso no tiene nada!)

p = 0.157 (es mayor que 0.05, osea datos no significativos).

Ya ves chocherita, no hay tendencia, no hay correlación, no hay causación. Señores, no tiene nada!

Pero hay más

El autor del estudio académico da como ejemplo (pag. 93) que en Puno (con alto déficit calórico) se gasta menos por niño que en Lima. Pero este es un dato anecdótico. Ya pe causa! Estudios académicos no se basan en datos anecdóticos. Además si tú criticas que la política de Qali Warma está mal, debes demostrar que en su conjunto se está gastando menos dinero donde más se necesita. Pero lamentablemente los datos y estadísticas duras refutan tus conclusiones. En este punto en particular la política será desordenada, o sin ningún patrón o tendencia, pero no es lo que afirmas pe varón.

Ya otras personas han criticado este dichoso trabajo, @rmapalacios, la ministra Mónica Rubio, y Diario16.

Actualización 22-Oct. Otro error

El señor Pepe Botella, en un comentario a este post, me avisa que él ha encontrado otro ejemplo de uso y abuso de las estadísticas en el mentado reporte académico que la prensa usa para atacar a Qali Warma.

Quiero pensar que este ha sido un error de mal uso de estadísticas, aunque el asunto se vuelve un poco rochoso.

En la página 36 empieza un floro donde el autor manifiesta que Qali Warma gasta menos dinero en los más pobres («pobres multidimensionales»).

…la poca atención que reciben los pobres multidimensionales en términos de cobertura de servicios básicos genera una fuente de ineficacia en cuanto a la distribución del gasto público

La distribución departamental del gasto social está mal enfocada pues existen departamentos con un alto nivel de pobreza multidimensional que reciben un gasto social por debajo del promedio nacional

Osea la hipótesis es hay menor gasto en departamentos con mayor porcentaje de pobreza. Esto se debería demostrar con otra regresión lineal de ajuste significativo a la línea de tendencia. Y eso es lo que prentende hacer el autor al mostrar un gráfico muy colorido:

Regresión lineal con cuadrantes blancos y rosados. Qué hacen los cuadrantes allí?

Regresión lineal con cuadrantes blancos y rosados. Qué hacen los cuadrantes allí?

Los datos están en la Tabla 4 del informe (página 37). Bajé los datos, hice el plot y calculé el coeficiente de determinación y el valor del p-value para ver si hay o no hay correlación entre las variables gasto y nivel de pobreza.

Gráfico sin los cuadrantes que estorban.

Gráfico sin los cuadrantes que estorban.

Y creo que ya te diste cuenta que NO hay relación entre las dos variables! Mira pé:

R2 = 0.02 (si hubiera correlación este debería ser cercano a 1)
p = 0.43 (si hubiera correlación este debería ser menor que 0.05)

El mismo error!

Pero aquí viene lo penoso. Qué michi hacen esos cuadrantes en tu gráfico? Primera vez en mi vida que los veo en un análisis de regresión. Los cuadrantes se usan en análisis canónico! ca-no-nico!

Si quieres demostrar algo categóricamente debes aplicar las estadísticas relevantes y que sean las más simples. Si quieres comparar 2 variables, haces regresión lineal (o ajustas una distribución exponencial, logarítmica, etc). Si quieres explicar el comportamiento de tus datos según múltiples variables haces un análisis de correspondencia canónico o similar.

No quiero pensar que estas tratanto de estirar los datos. Los desconfiados van a pensar que quieres estirar las estadísticas, forzándolas para que falsamente den soporte al resultado que quieres obtener. Debes tener cuidado chochera.

Sobre todo, causa desconfianza cuando, de todos los puntos de tu gráfico, escoges algunos, los que te conviene usar para criticar Qali Warma. Esos son datos anecdóticos. Otro broder podría escoger solo los puntos que dan una conclusión contraria y discutir ampliamente que Qali Warma hace un excelente gasto del dinero.

Para evitar esas subjetividades se hacen regresiones lineales, cálculos de coeficientes y tests de significancia (p-value). Cosa que tu informe aparenta hacer, pero no lo hace. Presentas tablas y gráficos pero haces cherry picking para la discusión! Además, ta que no he visto ninguna mención al R2 o al p-value en tu informe.

Sección geek

Aquí está los dos análisis estadísticos, el de ejemplo y el que rehice con los datos del informe del señor de la Universidad del Pacífico.


require(stats)
library(ggplot2)
x <- read.csv("tabla31.csv", header=FALSE)
plot(x$V3, x$V2, xlim=c(0,200), ylim=c(0,
70),
ylab="Déficit calórico",
xlab="Presupuesto de Gasto por niño (PIM)",
main="Hay correlación entre gasto y déficit calórico?\nPrimicia: NO hay!")
reg_lineal <- lm(x$V3 ~ x$V2)
abline(lsfit(x$V3, x$V2))
summary(reg_lineal)
# grafico de ejemplo
sale5 <- c(13, 12, 12, 11, 12, 10, 7, 9, 8, 6)
plot(sale5, main="Ejemplo de correlación lineal significativa", las=1)
abline(lsfit(1:10,sale5))
summary(lm(1:10 ~ sale5))
# Tabla 4
x <- read.csv("tabla4.csv", header=FALSE)
names(x) <- c("departamento", "porcentaje_pobres","gasto")
plot(x$porcentaje_pobres, x$gasto, xlim=c(0,80), ylim=c(0,2100),
main="\"A mayor pobreza hay menor gasto\":\nLos datos no te respaldan!",
xlab="Tasa de pobreza multidimensional",
ylab="Gasto social per capita",
las=1)
reg_lineal <- lm(x$porcentaje_pobres ~ x$gasto)
abline(lsfit(x$porcentaje_pobres, x$gasto))
summary(reg_lineal)

view raw

reanalisis.R

hosted with ❤ by GitHub

Aquí los datos originales usados en el reporte académico, tomado de su tabla 31.


Amazonas,32.86,104
Áncash,32.65,134
Apurímac,50.49,139
Arequipa,38.41,118
Ayacucho,45.88,129
Cajamarca,53.93,120
Cusco,32.08,118
Huancavelica,35.60,125
Huánuco,42.40,125
Ica,20.06,152
Junín,39.74,154
La Libertad,37.90,110
Lambayeque,23.69,109
Lima,27.25,172
Loreto,37.05,143
Madre de Dios,15.36,148
Moquegua,25.64,141
Pasco,62.38,129
Piura,32.31,117
Puno,45.76,88
San Martín,22.30,128
Tacna,30.02,119
Tumbes,23.58,127
Ucayali,10.74,144

view raw

tabla31

hosted with ❤ by GitHub

Aquí los datos originales de la tabla 4



Moquegua 24.8 1949
Tumbes 28.4 1839
Ayacucho 56.6 1779
Pasco 55.8 1769
Huancavelica 68.5 1750
Apurímac 60.9 1725
Madre de Dios 27.1 1584
Cusco 38.2 1574
Amazonas 61.7 1404
Tacna 26.5 1399
Huánuco 60.6 1361
Ancash 43.4 1338
Ucayali 42.6 1234
Puno 55.3 1140
Loreto 63.2 1118
Lima 16.6 1093
Cajamarca 67.8 1082
Ica 16.6 979
San Martín 51.1 966
Callao 17.7 943
La Libertad 41.6 906
Arequipa 25.7 902
Junín 40.1 889
Piura 46.4 755
Lambayeque 41.5 727

view raw

tabla4.csv

hosted with ❤ by GitHub

Los que cobraron más: APDAYC 2012

El útero de marita está emitiendo informes diarios acerca de los manejos del dinero que realiza APDAYC en nombre de los compositores y escritores de música del Perú.

Marco Sifuentes escribió en Facebook que requiere ayuda para poder asimilar mejor todos los destapes que está posteando en su blog utero.pe (junto con Jonathan Castro).

Con ánimos de ayudar a la causa (#intervenganAPDAYC) me puse a ver la cantidad de dinero que cobraron algunos directivos del APDAYC durante el 2012, por concepto de derechos de autor. En el post uterino «se la llevan facil» aparecen algunos números, pero no se aprecia si esta ganancia es mucho (o poco) en comparación con lo ganado por los asociados de APDAYC que no son miembros del Consejo Directivo.

Intenté hacer un gráfico de lo ganado por los compositores más prolíficos en comparación con el dinero que cobraron los directivos de APDAYC.

Obtuve la lista de directivos de aqui. Y las ganancias de los 250 asociados que tuvieron más regalías durante el 2012 de aqui.

Tuve que bajarme el PDF, convertirlo a texto, y dibujar el gráfico. Como soy bien nerd, para convertir el texto usé comandos de Linux y para dibujar el gráfico usé el lenguaje de programación Python (con su librería gráfica matplotlib).

Aqui está el gráfico, y más abajo el código que tuve que tipear para hacer este «análisis» tan diligente 😉 (hacer click para agrandar la imagen).

Los que más cobraron, APDAYC 2012

Los que más cobraron, APDAYC 2012

Manya, son haaaaaartos los compositores que cobran regalías. Pero son unos pocos quien se llevan harta plata, y son muchos los que cobran poquito (se lleva 3 mil soles al año el que está en puesto 250).

Debemos alegrarnos por los miembros del Consejo Directivo de APDAYC que son afortunados en estar entre los que más regalías se llevaron durante el 2012 (por ejemplo José Escajadillo, Armando Massé y Julio Andrade, entre otros).

[Actualización 6 de Octubre 2013]

Un tuitero/bloguero influyente me sugirió averiguar si hay un patrón de las ganancias recibidas por los socios que tienen mayor poder de decisión en APDAYC. Osea ver si los que cortan en jamón en APDAYC ganan más o ganan menos en comparación con los socios que tienen menor voto en los manejos de la Sociedad Colectiva APDAYC.

El útero de marita nos cuenta que no todos los socios de APDAYC tienen el mismo derecho a voto. Por ejemplo cada voto de los socios principales vale por 5, cada voto de los socios vitalicios vale como 4 votos, cada voto de socios activos vale por 3.

Se supone que en una democracia cada persona es igual a un voto, pero en APDAYC eso no es así. Entonces los que tienen mayor poder de decisión del rumbo de APDAYC, los que parten y reparten son principalmente ese grupo de socios principales, vitalicios y activos.

Cuanto reciben de regalías los que cortan el jamón en APDAYC?

Estuve mirando otra vez los datos y me di cuenta que estos socios privilegiados son casi la mitad (138 socios, o el 55%) pero se llevan la mayoría de plata recaudada en APDAYC. El 84% del dinero cobrado por regalías durante el 2012 (7 millones de soles) se lo llevaron este grupo de socios con voto privilegiado. Mientras que la otra mitad de socios le corresponde poco más de 1 millon (16% del total).

Resulta interesante que los que cortan el jamón en APDAYC se lleven el 84% del dinero (a pesar de ser la mitad de socios con derecho a voto).

Bueno dicen que el que parte y reparte se lleva la mayor parte?

Aqui les dejo el gráfico para digerir mejor los datos (al final de este post está todo el código usado para los análisis).

Ganancias de socios principales, vitalicios y activos

La mitad de socios tiene voto privilegiado, cada voto vale de 3 a 5 veces que los votos de la otra mitad. Es curioso que además se lleven la mayor tajada de las regalías recaudadas por APDAYC.

[Actualización 7 Oct 2013]

Pero qué porcentaje de TODAS las regalías recibe este grupo de socios?

En la Memoria de APDAYC del 2012, señalan en la página 12 (o página 22 en
realidad), que se repartieron 29 millones de soles entre todos sus asociados.

Según el útero de marita «APDAYC tiene más de 8 mil afiliados, pero sólo 248 tienen derecho a voto en la Asamblea General».

Supongamos que APDAYC tiene 8 mil socios, entonces entre ellos repartieron 29 millones de soles durante el 2012.

Quiero saber:

  • Qué porcentaje de estos 8mil son los socios con votos privilegiados (principales, vitalicios y activos).
  • Qué porcentaje del dinero total se llevan estos socios con voto privilegiado?

Estos son los datos:

  • Dinero total: 29,197,272 Soles
  • Número total de socios: 8000
  • Total socios con voto privilegiado: 138
  • Dinero recibido por socios principales: 1240,041.19
  • Dinero recibido por socios vitalicios: 59,347.69
  • Dinero recibido por socios activos: 5731,717.18
  • Porcentaje de socios con voto privilegiado: 1.7%
  • Porcentaje del dinero que se recibe este grupo: 24.08%

Y este es el gráfico resultante:

Porcentaje de ganancias de socios con voto privilegiado

Porcentaje de ganancias de socios con voto privilegiado, APDAYC 2012

Pues es de esperarse que el 1.7% de socios se lleve la cuarta parte de las regalías. Si vemos otra vez el gráfico de los socios más rendidores, los que más plata reciben, veremos que son los socios principales y activos (con voto multiplicado por 5 y por 3) quienes reciben más regalías.

Los socios principales y activos son los que más regalías cobraron durante el 2012.

Los socios principales y activos son los que más regalías cobraron durante el 2012.

Sección para geeks

Aqui el código en la consola de Linux:

# Bajarse la memoria en PDF y extraer las páginas 34, 35 y 36
pdftk Memoria_APDAYC_2012.pdf cat 34-36 output mas_productivos_2012.pdf

# convertir PDF a texto
pdftotext -layout mas_productivos_2012.pdf

# hacer limpieza manual para eliminar texto que no se necesita (joyas y premios)
# extraer nombres y ganancias
cat mas_productivos_2012.txt | sed 's/S\/\.//g' | sed 's/\$//g' | sed 's/\s\+/ /g' | sed -r 's/([A-Z]),/\1/g' | sed 's/,//g' | sed -r 's/(([A-Z]+\s)+)/\1,/g' | sed 's/ ,/,/g' | sed -r 's/^[0-9]+\s[0-9]+\s//g' | sed -r 's/\s*$//g' > tmp_mas_productivos.txt

# dibujar el gráfico usando Python y matplotlib
python mas_productivos.py

Y aqui el código actualizado en el lenguage Python:

# -*- coding: utf-8 -*-
import codecs
import locale
import prettyplotlib as ppl
import numpy as np
from prettyplotlib import plt

locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')

f = codecs.open("output/tmp_socios_principales.txt", encoding="utf-8")
data = f.read()
f.close()

# Esta es la lista de "Socios principales"
data = data.split("\n")
principales = []
vitalicios = []
activos = []
for line in data:
    line = line.strip()
    if len(line) > 0:
        line = line.split(",")
        if line[1] == "PRINCIPAL":
            principales.append(line[0])
        if line[1] == "VITALICIO":
            vitalicios.append(line[0])
        if line[1] == "ACTIVO":
            activos.append(line[0])

# cantidad de regalias por "socios principales"
f = codecs.open("output/tmp_mas_productivos.txt", encoding="utf-8")
data = f.read()
f.close()

data = data.split("\n")
princi_money = float()
vitali_money = float()
activo_money = float()
otros_money = float()

for i in data:
    if len(i) > 0:
        i = i.split(",")
        author = i[0]
        money = i[1].split(" ")
        money = money[len(money)-1]
        if author in principales:
            princi_money += float(money)
        elif author in vitalicios:
            vitali_money += float(money)
        elif author in activos:
            activo_money += float(money)
        else:
            otros_money += float(money)

## DO principales + vitalicios
## numero de socios por categoria
numero_socios = [str(len(principales) + len(vitalicios)),
                 str(250-len(principales)-len(vitalicios))]

print "Socios privilegiados con el voto " + str(len(principales) +
        len(vitalicios) + len(activos))

y = [princi_money + vitali_money, activo_money + otros_money]
annotate = [locale.format("%d", y[0], grouping=True) + " S/.",
            locale.format("%d", y[1], grouping=True) + " S/."]

width = 0.35
bar_color = ["r", "#66c2a5"]
plt.rc('font', **{'family': 'DejaVu Sans'})
fig, ax = plt.subplots(1, figsize=(8,6))
ind = np.arange(2)
xdata = ind + 0.05 + width
ax.bar(ind, y)
ax.set_xticks(ind + 0.4)
ax.set_xticklabels(["principales y vitalicios\n(" + numero_socios[0] + " socios)",
                    "otros socios\n(" + numero_socios[1] + " socios)",
                    ],
                    rotation="horizontal", multialignment="center")
ax.autoscale()
ax.set_title(u'Ganancias de socios principales y vitalicios\n comparados con el resto de socios',
        fontdict = {'fontsize':22}
        )

y_labels = ["0", "1,000,000", "2,000,000", "3,000,000", "4,000,000",
                "5,000,000", "6,000,000", "7,000,000", "8,000,000"]
ax.set_yticklabels(y_labels)

plt.ylabel(u'Regalías en S/.', fontdict={'fontsize':18})
plt.xlabel(u'Beneficiarios', fontdict={'fontsize':22})

ppl.bar(ax, np.arange(len(y)), y, grid="y", annotate=annotate, color=bar_color)
fig.tight_layout()
fig.savefig("output/socios_principales.png")
output = "Plot de socios Principales + Vitalicios guardados en archivo "
output += "``output/socios_principales.png``\n"
print output

## DO principales + vitalicios + activos
## numero de socios por categoria
numero_socios = [str(len(principales) + len(vitalicios) + len(activos)),
                 str(250-len(principales) - len(vitalicios) - len(activos))]

# Porcentaje de socios principales+vitalicios+activos versus otros
percent_pva = float((len(principales)+len(vitalicios)+len(activos))*100/250)
percent_socios_otros = 100.0 - percent_pva

# Porcentaje de DINERO de socios principales+vitalicios+activos versus otros
y = [princi_money + vitali_money + activo_money, otros_money]
percent_money_pva = int(float(princi_money + vitali_money + activo_money)*100/(y[0] + y[1]))
percent_money_otros = 100 - percent_money_pva

annotate = [locale.format("%d", y[0], grouping=True) +
                " S/.",
            locale.format("%d", y[1], grouping=True) +
                " S/."]

width = 0.35
bar_color = ["r", "#0099FF"]
plt.rc('font', **{'family': 'DejaVu Sans'})
fig, ax = plt.subplots(1, figsize=(9,6))
ind = np.arange(2)
xdata = ind + 0.05 + width

# write percentaje of money to plot
ax.annotate(str(percent_money_pva) +"%\ndel dinero", ha="center", color="w",
        size=38, xy=(0.2,1.2), xytext=(0.4, 2500000))
ax.annotate(str(percent_money_otros) +"%\ndel dinero", ha="center", color="w",
        size=18, xy=(0.2,1.2), xytext=(1.4, 150000))

ax.bar(ind, y)
ax.set_xticks(ind + 0.4)
ax.set_xticklabels(["principales, vitalicios y activos\n(" +
                            str(int(percent_pva)) + "% del total)",
                    "otros socios\n(" +
                            str(int(percent_socios_otros)) + "% del total)"
                    ],
                    rotation="horizontal", multialignment="center")
ax.autoscale()
ax.set_title(u'Ganancias de socios principales, vitalicios y activos'
        + '\ncomparados con el resto de socios',
        fontdict = {'fontsize':22}
        )

y_labels = ["0", "1,000,000", "2,000,000", "3,000,000", "4,000,000",
                "5,000,000", "6,000,000", "7,000,000", "8,000,000"]
ax.set_yticklabels(y_labels)

plt.ylabel(u'Regalías en S/.', fontdict={'fontsize':18})
plt.xlabel(u'Beneficiarios', fontdict={'fontsize':22})

ppl.bar(ax, np.arange(len(y)), y, annotate=annotate, color=bar_color)
fig.tight_layout()
fig.savefig("output/socios_principales_vitalicios_activos.png")
output = "Plot de socios Principales + Vitalicios + Activos guardados en archivo "
output += "``output/socios_principales_vitalicios_activos.png``\n"
print output

Código de cuáles miembros del consejo directivo se llevan más regalías


# -*- coding: utf-8 -*-
import codecs
import prettyplotlib as ppl
import numpy as np
from prettyplotlib import plt
import re
f = codecs.open("tmp_mas_productivos.txt", encoding="utf-8")
data = f.read()
f.close()
# This is the list of APDAYC directors "Comite Directivo"
apdayc = [
"Escajadillo Farro",
"Masse Fernandez",
"Moreira Mercado",
"Andrade Rios",
"Cabrejos Bermejo",
"Fuentes Barriga",
"Montaño Jaramillo",
"Rodriguez Grandez",
"Laura Saavedra",
"Bustamante Gomez"
]
x = []
y = []
bar_color = []
data = data.split("\n")
for i in data:
if len(i) > 0:
i = i.split(",")
author = i[0].split(" ")
author = author[0].capitalize() + " " + author[1].capitalize()
if author in apdayc:
bar_color.append("r")
else:
bar_color.append("#66c2a5")
money = i[1].split(" ")
total_money = money[len(money)-1]
x.append(author)
y.append(total_money)
y = map(float, y)
plt.rc('font', **{'family': 'DejaVu Sans'})
fig, ax = plt.subplots(1, figsize=(40,6))
width = 0.35
ind = np.arange(len(y))
xdata = ind + 0.05 + width
ax.bar(ind, y)
ax.set_xticks(ind + 0.5)
ax.set_xticklabels(x, rotation="vertical")
ax.autoscale()
ax.set_title(u'Los Asociados de APDAYC que cobraron más dinero en el 2012\nen color rojo figuran los miembros del Consejo Directivo',
fontdict = {'fontsize':24}
)
y_labels = ["0", "200,000", "400,000", "600,000", "800,000", "1,000,000"]
ax.set_yticklabels(y_labels)
plt.ylabel(u'Regalías en S/.', fontdict={'fontsize':18})
plt.xlabel(u'Beneficiario', fontdict={'fontsize':22})
print len(y)
print len(x)
ppl.bar(ax, np.arange(len(y)), y, grid="y", color=bar_color)
fig.tight_layout()
fig.savefig("output/mas_productivos.png")
###
# Que tal si ploteamos los socios principales, vitalicios y activos
f = codecs.open("data/socios_principales.tsv", encoding="utf-8")
data = f.read()
f.close()
bar_color = []
new_x = []
new_y = []
data = data.split("\n")
# keep all data in a dictionary
df = {}
for line in data:
if len(line) > 0:
line = re.sub("^\s+", "", line)
line = re.sub("\s{2,}", "|", line)
line = line.split("|")
tmp = line[3].split(",")
tmp2 = tmp[0].split(" ")
try:
author = tmp2[0].capitalize() + " " + tmp2[1].capitalize()
except:
continue
if line[4] == "PRINCIPAL":
index = x.index(author)
money = y[index]
df[money] = [author, "b"]
x.remove(author)
y.remove(y[index])
elif line[4] == "VITALICIO":
try:
index = x.index(author)
money = y[index]
df[money] = [author, "g"]
x.remove(author)
y.remove(y[index])
except:
continue
elif line[4] == "ACTIVO":
try:
index = x.index(author)
money = y[index]
df[money] = [author, "r"]
x.remove(author)
y.remove(y[index])
except:
continue
else:
try:
index = x.index(author)
money = y[index]
df[money] = [author, "#D8D8D8"]
x.remove(author)
y.remove(y[index])
except:
continue
for author in x:
index = x.index(author)
money = y[index]
df[money] = [author, "#D8D8D8"]
d = sorted(df, reverse=True)
for i in d:
new_y.append(i)
new_x.append(df[i][0])
bar_color.append(df[i][1])
fig, ax = plt.subplots(1, figsize=(40,6))
ax.bar(ind, new_y)
ax.set_xticks(ind + 0.5)
ax.set_xticklabels(new_x, rotation="vertical")
ax.autoscale()
ax.set_title(u'Los Asociados de APDAYC que recibieron más regalías en el 2012',
fontdict = {'fontsize':24}
)
y_labels = ["0", "200,000", "400,000", "600,000", "800,000", "1,000,000"]
ax.set_yticklabels(y_labels)
plt.ylabel(u'Regalías en S/.', fontdict={'fontsize':18})
plt.xlabel(u'Beneficiarios', fontdict={'fontsize':22})
ppl.bar(ax, np.arange(len(new_y)), new_y, grid="y", color=bar_color)
fig.tight_layout()
fig.savefig("output/mas_productivos2.png")

Aquí el código y datos para generar el pie-chart



socios_pva 1.725
resto_de_socios 98.275
socios principales vitalicios y activos 24.0813801372
resto de socios 75.9186198628

Y aquí el código necesario para hacer el plot usando el paquete estadístico R.

library(ggplot2)
datos <- read.csv("output/socios_pva_versus_total.csv", sep=",",
              header=FALSE)
money <- datos[3:4,]
names(money) <- c("Socios","Regalías")

png(filename="output/socios_pva_versus_total.png",
      width=950, height=630, units="px")
ggplot(money, aes(x="", y=Regalías, fill=Socios)) +
  theme(text = element_text(size=22)) +
  geom_bar(width=1, stat="identity") +
  coord_polar("y", start=pi/3) +
  labs(title="Repartición de regalías, APDAYC 2012")
dev.off()

Aurelio Pastor y su pluma veloz #narcoindultos

Aurelio Pastor no fue el ministro que firmó más conmutaciones, pero fue quien las firmó a una mayor velocidad, casi 7 conmutaciones diarias durante su período, el doble y triple que los otros ministros de justicia durante el 2do gobierno aprista.

Hace unos días Aurelio Pastor dijo lo siguiente:

«Han existido otros ministros que han firmado más gracias (presidenciales) que yo»

Esto fue inmediatamente después que aparezca el avance del programa Cuarto Poder para hoy Domingo, donde se mostrará un vídeo en el que aparentemente Aurelio Pastor elegía a dedo los potenciales beneficiados por #narcoindultos y conmutaciones de pena, mientras come una empanada que le invitaron.

Según Wikipedia estos fueron los Ministros de Justicia y sus períodos durante el 2do gobierno aprista:

María Zavala Valladares	   | 28 de julio de 2006 - 19 de diciembre de 2007  | (510 días en el cargo)	
Rosario Fernández Figueroa | 20 de diciembre de 2007 - 10 de julio de 2009  | (569 días en el cargo)
Aurelio Pastor Valdivieso  | 11 de julio de 2009 - 16 de marzo de 2010      | (249 días en el cargo)
Víctor García Toma	       | 18 de marzo de 2010 - 12 de septiembre de 2010 | (179 días en el cargo)
Rosario Fernández Figueroa | 14 de septiembre de 2010 - 28 de julio de 2011 | (318 días en el cargo)

Ya que tengo en mi computadora TODAS las normas jurídicas emitidas por el ministerio durante los años 2006-2011 podemos contar cuantas conmutaciones de penas y #narcoindultos fueron firmadas durante el período de cada ministro (ver un post anterior para que sepas como descargué las TODAS las normas jurídicas.).

Este es el plan:

    1. crear un folder para cada ministro y copiar todas las normas del ministerio emitidas durante su período como ministro.
    2. para cada ministro, buscar el número de indultados/conmutados de pena
    3. hacer un gráfico que resuma los resultados

Seleccionar las normas del MinJus emitidas durante el período de cada ministro

Para la exministra María Zavala

# copiar a folder normas del 28 al 31 de Julio del 2006
ls *txt | awk -F '-' '$1 > 27' | grep '07-06.txt' | xargs -I {} cp -v {} zavala/.

# copiar a folder normas del 1 de Agosto al 31 de Diciembre del 2006
ls *txt | awk -F '-' '$2 > 07' | grep '06.txt' | xargs -I {} cp -v {} zavala/.

# copiar a folder normas del 1 de Enero al 31 de Noviembre del 2007
ls *txt | awk -F '-' '$2 < 12' | grep '07.txt' | xargs -I {} cp -v {} zavala/.

# copiar a folder normas del 1 de Diciembre al 19 de Diciembre del 2007
ls *txt | grep '12-07.txt' | awk -F '-' '$1 < 20' | xargs -I {} cp -v {} zavala/.

Del 28 de Julio del 2006 al 19 de Diciembre del 2007 hay 510 días y nosotros hemos guardado en el folder zavala 510 archivos:

ls zavala/ | wc -l
510

Entonces vamos por buen camino.

Para la exministra Rosario Fernández (1er período)

Fechas: 20 de diciembre de 2007 – 10 de julio de 2009

# copiar a folder normas del 20 al 31 de Diciembre del 2007
ls *txt | grep '12-07.txt' | awk -F '-' '$1 > 19' | xargs -I {} cp -v {} fernandez1/.

# copiar a folder normas del 1 de Enero al 31 de Diciembre del 2008
ls *txt | grep '08.txt' | xargs -I {} cp -v {} fernandez1/.

# copiar a folder normas del 1 de Enero al 30 de Junio del 2009
ls *txt | grep '09.txt' | awk -F '-' '$2 < 07' | xargs -I {} cp -v {} fernandez1/.

# copiar a folder normas del 1 al 10 de Julio del 2009
ls *txt | grep '07-09.txt' | awk -F '-' '$1 < 11' | xargs -I {} cp -v {} fernandez1/.

# tenemos 563 archivos
ls fernandez1/ | wc -l
563

Para el exministro Aurelio Pastor

Fechas: 11 de julio de 2009 – 16 de marzo de 2010

# copiar a folder normas del 11 al 31 de Julio del 2009
ls *txt | grep '07-09.txt' | awk -F '-' '$1 > 10' | xargs -I {} cp -v {} pastor/.

# copiar a folder normas del 1 de Agosto al 31 de Diciembre del 2009
ls *txt | grep '09.txt' | awk -F '-' '$2 > 07' | xargs -I {} cp -v {} pastor/.

# copiar a folder normas del 1 de Enero al 29 de Febrero del 2010
ls *txt | grep '10.txt' | awk -F '-' '$2 < 03' | xargs -I {} cp -v {} pastor/.

# copiar a folder normas del 1 al 16 de Marzo del 2010
ls *txt | grep '03-10.txt' | awk -F '-' '$1 < 17' | xargs -I {} cp -v {} pastor/.

# tenemos 249 archivos
ls pastor/ | wc -l
249

Para el exministro Víctor García Toma

Fechas: 18 de marzo de 2010 – 12 de septiembre de 2010

# copiar a folder normas del 18 al 31 de Marzo 2010
ls *txt | grep '03-10.txt' | awk -F '-' '$1 > 17' | xargs -I {} cp -v {} toma/.

# copiar a folder normas del 1 de Abril al 31 de Agosto del 2010
ls *txt | grep '10.txt' | awk -F '-' '$2 < 09' | awk -F '-' '$2 > 03' | xargs -I {} cp -v {} toma/.

# copiar a folder normas del 1 al 12 de Septiembre del 2010
ls *txt | grep '09-10.txt' | awk -F '-' '$1 < 13' | xargs -I {} cp -v {} toma/.

ls toma/ | wc -l
179

Para la exministra Rosario Fernández (2do período)

Fechas: 14 de septiembre de 2010 – 28 de julio de 2011

# copiar a folder normas del 14 al 30 de Septiembre del 2010
ls *txt | grep '09-10.txt' | awk -F '-' '$1 > 13' | xargs -I {} cp -v {} fernandez2/.

# copiar a folder normas del 1 de Octubre al 31 de Diciembre del 2010
ls *txt | grep '10.txt' | awk -F '-' '$2 > 09' | xargs -I {} cp -v {} fernandez2/.

# copiar a folder normas del 1 de Enero al 30 de Junio del 2011
ls *txt | grep '11.txt' | awk -F '-' '$2 < 07' | xargs -I {} cp -v {} fernandez2/.

# copiar a folder normas del 1 al 28 de Julio del 2011
ls *txt | grep '07-11.txt' | awk -F '-' '$1 < 29' | xargs -I {} cp -v {} fernandez2/.

ls fernandez2/ | wc -l
317

2. Para cada ministro, buscar el número de indultados/conmutados de pena

Podemos comenzar con el ministro Pastor. Podemos usar el comando grep para cuántas veces se usó la palabra conmutarle en cada una de las 249 normas jurídicas emitidas durante su período.

grep -i conmutarle pastor/*

pastor/04-03-10.txt:conmutarle de 04 años a 02 años 03 meses de pena privativa de libertad; la que vencerá el 12 de
pastor/04-03-10.txt:8. HIDALGO RODRIGUEZ, MARCO ANTONIO, conmutarle de 06 años 08 meses a 03
pastor/04-03-10.txt:9. CANALES RUGEL, GUILLERMO AMANCIO, conmutarle de 09 años a 05 años de pena
pastor/04-03-10.txt:10. CORONADO VILCA, MARIO, conmutarle de 08 años a 05 años de pena privativa de
pastor/04-03-10.txt:conmutarle de 06 años 08 meses a 03 años de pena privativa de libertad; la que vencerá el 25 de
pastor/04-03-10.txt:12. CHALCO RAMIREZ, JHON LUIS, conmutarle de 06 años a 03 años de pena privativa
pastor/04-03-10.txt:GUILLERMO, conmutarle de 13 años a 08 años 09 meses de pena privativa de libertad; la que
pastor/04-03-10.txt:14. ALBA BERMUDEZ, RONEI EBAN, conmutarle de 06 años 06 meses a 03 años 04
pastor/04-03-10.txt:15. RODRIGUEZ MANSILLA, CARLOS ALFREDO, conmutarle de 05 años a 03 años 04

Por cada persona que recibió conmutación de pena se usó 1 vez la palabra conmutarle y podemos usar el número de veces que se usó esta palabra como indicador del número de conmutaciones de pena.

# ministra María Zavala
grep -i conmutarle zavala/* | wc -l
0

# ministra Rosario Fernández, 1er período
grep -i conmutarle fernandez1/* | wc -l
2065

# ministro Aurelio Pastor
grep -i conmutarle pastor/* | wc -l
1679

# ministro García Toma
grep -i conmutarle toma/* | wc -l
434

# ministra Rosario Fernández, 2do período
grep -i conmutarle fernandez2/* | wc -l
1042

Quién indultó más presos?

Bueno, los números indican que Aurelio Pastor no fue el ministro que firmó más gracias presidenciales. Ese privilegio pertenece a Rosario Fernández.

Pero hay que tomar en cuenta que Rosario Fernández fue ministra dos veces, un total de 887 días, mientras que Pastor sólo fue ministro por 249 días.

Es curioso ver que la ministra Zavala no firmó ningún indulto a pesar que estuvo 510 días en el cargo. La lluvia de indultos comezó con la ministra Rosario Fernández, continuó con Aurelio Pastor, pero se desaceleró considerablemente durante la gestión de García Toma. Y los indultos regresaron a toda marcha durante el 2do período de Rosario Fernández.

Hipótesis nula

Deberíamos encontrar que el número de conmutados no depende de quién haya sido ministro. Si un ministro estuvo pocos días en el cargo debió haber firmado pocos indultos. Si un ministro estuvo muchos días, entonces tuvo oportunidad de firmar muchos indultos (o conmutaciones).

Entonces la hipótesis nula es que no hay efecto del ministro de turno sobre el número de indultos. Deberíamos encontrar una correlación lineal entre número de días en el cargo versus número de conmutaciones emitidas.

Si esto es falso y hubieron incentivos extraordinarios para emitir conmutaciones y algunos presos estuvieron pagando para ser liberados con especial intensidad durante el período de cierto ministro, no será posible encontrar una correlación entre el número de días que estuvo en el cargo cada ministro y el número de conmutaciones otorgadas.

Por ejemplo podemos plotear número de días en el cargo versus número de indultos otorgados (usando el paquete estadístico R):

library(ggplot2)
h1 <- read.csv("h1.csv", row.names=NULL)

png(filename="h1.png")
p <- qplot(dias, conmutaciones, data=h1,
    main="Relación entre días en el cargo \n vs. \n número de conmutaciones de pena?",
     label=ministro)
p + geom_text(hjust=0, vjust=0, aes(colour=factor(ministro))) +
    geom_smooth(method="lm", se=FALSE)
dev.off()

Relación entre número de días y número de conmutaciones

El gráfico nos da indicios que no hay correlación entre número de días y número de conmutaciones.

Para estar seguros podemos calcular el coeficiente de correlación de Pearson para averiguar si hay correlación positiva (r = 1) o negativa (r = -1):

> with(h1, cor(dias, conmutaciones))
[1] 0.168943

El valor de r = 0.168 es muy cercano a 0, por lo tanto no hay correlación positiva ni negativa entre el número de días y el número de conmutaciones de penas.

Entonces podemos rechazar la hipótesis nula, y aparentemente durante el período de ciertos ministros se emitieron conmutaciones a mano llena (Rosario Fernández, Aurelio Pastor), mientras que durante el período de otros ministros (García Toma y María Zavala) no se emitieron muchos.

Lo que dice Aurelio Pastor es cierto, él no es el exministro que firmó más conmutaciones de pena. Pero habría que preguntarse por qué Aurelio Pastor firmó conmutaciones con semejante velocidad (1679 conmutaciones en 249 días durante su período).

Aurelio Pastor firmó menos conmutaciones porque estuvo muy pocos días como ministro. Pastor firmó casi 7 indultos por día, una velocidad tremenda con la pluma, el doble de velocidad que Rosario Fernández y mucho más rápido que García Toma.

Aquí los datos:

ministro,  dias, conmutaciones, velocidad
Toma,       179,           434,      2.42
Pastor,     249,          1679,      6.74
Fernandez2, 318,          1042,      3.28
Zavala,     510,             0,      0
Fernandez1, 569,          2065,      3.63

Vean el gráfico, es demasiado obvio!

png(filename="velocidad.png")
c <- ggplot(h1, aes(ministro, velocidad), fill=factor(ministro))
c + opts(title="número de conmutaciones firmadas por día en funciones") +
    geom_bar(aes(colour=factor(ministro)))
dev.off()

Número de conmutaciones firmadas por día
Es cierto que Aurelio Pastor firmó menos conmutaciones, pero es porque no tuvo tiempo! Tuvieron que sacarlo como ministro por el escándalo del indulto a Crousillat.

Habría que preguntarle por qué tanto apuro en firmar conmutaciones.

Imagínense si Pastor hubiera sido ministro durante los 5 años! Las cárceles habrían quedado vacías?