En la primera parte de este artículo se han dejado los datos por municipio preparados para el análisis en un data.frame llamado votos. En esta segunda parte se define una función en R que lleva a cabo un contraste chi-cuadrado de ajuste de los datos a la Ley de Benford.
Continue reading »
Los resultados provisionales de las Elecciones al Parlamento de Cataluña, celebradas ayer, 28 de noviembre, ya se pueden descargar de la web de la Generalitat. Los datos están disponibles a nivel de mesa, en un archivo diferente para cada provincia (los archivos son diferentes si el idioma elegido es catalán o castellano).
Para practicar con R, a continuación se contrasta el cumplimiento de la Ley de Benford con el total de votos por municipios de Barcelona. Aunque son pocos datos (311 municipios), por lo que cabe esperar que no se cumpla, es una buena ilustración de análisis de datos reales y la facilidad de montarlos en R. El artículo se divide en dos partes, en esta primera se cargan y preparan los datos a analizar y en la segunda se define una función que realiza el contraste y se utiliza.
Continue reading »
La ilustración de la ley de Benford utiliza el archivo pobmun09.csv. La fuente es el INE, que proporciona la población de los municipios españoles a 1 de enero de 2009.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | library(xtable) options(encoding="latin1") pob < - read.csv("http://www.grserrano.es/datos/pobmun09.csv") head(pob) totprov <- pob[ is.na(pob[, "CMUN"]), ] ## Totales de provincia pob <- pob[!is.na(pob[, "CMUN"]), ] ## Dejo sólo los municipios pob[, "digpob"] <- as.numeric(substr(as.character(pob[, "POB09"]), 1, 1)) digitos <- c(1:9) (abs.freq <- table(pob[, "digpob"])) (benford.prob <- log10(1+1/digitos)) tabmun <- cbind( Observada = prop.table(abs.freq), Teorica = benford.prob, Municipios = abs.freq ) xtabmun <- xtable(tabmun, digits=c(0, 4,4,0), align="r|rr|r|", caption="Frecuencias observadas, esperadas y número de municipios por el primer dígito de la población de los 8112 municipios españoles a 1 de enero de 2009", label="tab:benfordmun") print(xtabmun, type="latex", file="tabmun.tex") #print(xtabmun, type="HTML", file="tabmun.html") plot(digitos, tabmun[, "Observada"], main="Ley de Benford para población de municipios españoles", xlab="Primer dígito", ylab="Frecuencia") lines(digitos, tabmun[, "Teorica"], lty=2, col="blue") legend("topright", c("Observado", "Teórico"), lty=c(0,2), pch=c(1,NA), col=c("black", "blue")) grid() |