La ley de Benford, revisitada

Revisito mi artículo sobre la ley de Benford no tanto por hacer mención a las entradas una, dos y tres que hizo Gregorio Serrano en su bitácora ni al oportunísimo artículo de The Guardian al respecto. Ni siquiera para mencionar la existencia de este sesudo artículo sobre el tema. Lo hago porque me pliego a la demanda popular: voy a explicar con más detalle el código que dejé allí escrito y que, por referencia, es benford <- function( foo, ..., n = 100000 ){ tmp <- foo( n, ... ) tmp <- as.character( tmp[ tmp > 0] ) tmp <- strsplit( tmp, "" ) leading.digit <- function( x ) x[ ! x %in% c( "0", "." )][1] tmp <- unlist( lapply( tmp, leading.digit ) ) 100 * table( tmp ) / length( tmp ) } benford( rcauchy ) benford( rexp, rate = 2 ) benford( rexp, rate = 5 ) benford( rnorm, sd = 40 ) benford( rweibull, shape = 1 ) Puede llamar la atención que el primer argumento de la función benford sea, precisamente, otra función. Nada del otro mundo. El siguiente es un ejemplo en el que se muestra el uso aislado para una mejor comprensión: ...

20 de septiembre de 2011 · Carlos J. Gil Bellosta

Linked, de Barabasi, capítulo I

No sé si seguir leyendo libros. Sus autores los llenan de letras. Y es un lujo poder disponer del tiempo de leerlas todas. Uno de esos libros llenos de letras es Linked, de Barabasi. Es un libro estupendo y recomendable. Pero podría ocupar 20 páginas si el autor fuese un poco más escueto y no se empeñase de llenarlo todo de anécdotas y colores. Su primer capítulo trata sobre las redes sociales aleatorias, también conocidas como redes de Poisson o de Erdös-Rényi. Una de tales redes aleatorias es una colección de n nodos y enlaces entre ellos de manera que la probabilidad de que dos nodos x e y al azar estén unidos es p. ...

19 de septiembre de 2011 · Carlos J. Gil Bellosta

Otra sobre polígrafos, terrorismo y periodistas anuméricos

Dice el diario El País que científicos británicos desarrollan un sistema que permite saber si alguien no está diciendo la verdad analizando su rostro. El aparato, según el artículo […] podría ser utilizado para cuestiones de seguridad, como, por ejemplo, en los aeropuertos para identificar a potenciales criminales o terroristas. Añade después que […] el sistema será capaz de coger al 90 % de los que mienten, porcentaje similar al obtenido por el polígrafo ...

16 de septiembre de 2011 · Carlos J. Gil Bellosta

La ley de Benford

El otro día me preguntó una compañera el motivo por el que un proceso (de transformación de datos) se ejecutaba tan lentamente. De oficio, siempre hago lo mismo —además, lo saben: ¿para qué seguirán preguntando?—: ejecutar el proceso solo sobre un porcentaje de los datos. Con los que el id acababa en 123, era inmediato; con 12, también; con 1, se eternizaba. Pero con 2, 3 y 4 volvía a ser muy rápido. ¡Había muchísimos registros con id acabado en 1! ...

15 de septiembre de 2011 · Carlos J. Gil Bellosta

La estadística del número tres

Una consulta que he recibido hoy me ha hecho recordar que tenía pendiente una entrada sobre la estadística del número tres, es decir, ¿qué hacer cuando tenemossolo tres casos? Hace tiempo publiqué en estas páginas un vídeo sobre este asunto. Lo que no sabía entonces es que existen (o existieron) estadísticos que estudiaron concienzudamente el problema. He aquí unas cuantas referencias: Youden, W. J., The Best Two out of Three?", J. Chem. Educ., diciembre de 1949, 673-674 Lieblein, J., Properties of Certain Statistics Involving the Closest Pair in a Sample of Three Observations, Journal of Research of the National Bureau of Standards, marzo de 1952 Youden, W.J., The fallacy of the best two out of three, NBS Technical News Bulletin 33, 77, julio de 1949 Youden, W. J., Sets of Three Measurements, Scienfic Monthly, 77, septiembre de 1953 … y otras que aparecen en las bibliografías de los anteriores o que los citan. En realidad, estos artículos tienen que ver, mucho más que con el caso que recoge el vídeo, con el de la medición de fenómenos en laboratorio y su fiabilidad. Se ve que es (o fue) habitual tomar tres medidas de un mismo experimento y dar por buena después la media de las dos más próximas. Los artículos anteriores discuten la conveniencia o no de esa práctica. ...

14 de septiembre de 2011 · Carlos J. Gil Bellosta

Datos patrimoniales de los senadores

David Cabo, de Pro Bono Público colgó el otro día una hoja de cálculo en Google Docs con referencias a las declaraciones del patrimonio (véase un ejemplo) a las que están ahora obligados los senadores y que cuelgan de la página de su benemérita y utilísima institución. Dado que los datos están en un formato no legible automáticamente, solicitó la colaboración de voluntarios para tabular la información. Rápidamente logró completarse la tarea. Y ahora me he molestado en extraer una selección de los datos (quitando columnas descriptivas, etc.) para que los aficionados a R se entretengan sacándoles punta. ...

13 de septiembre de 2011 · Carlos J. Gil Bellosta

Visualización de la actualización bayesiana (y unas cuantas funciones de R)

Me ha llegado noticia de una entrada en un blog, Visualizing Bayesian Updating, en el que se muestra visualmente cómo se actualiza la distribución a posteriori conforme aumenta el número de ensayos en un problema bayesiano simple. Explica también los fundamentos estadísticos del asunto. Yo me limitaré a ofrecer una nueva versión del código —que no funcionaba copiando y pegando sin más— en el que he introducido ciertas modificaciones. Es el siguiente: ...

12 de septiembre de 2011 · Carlos J. Gil Bellosta

Treemaps en R

Hay cierto interés por los treemaps en general y existen paquetes como treemap y la función map.market del paquete portfolio que permiten construirlos y obtener gráficos como este que representa la capitalización bursátil de las empresas del IBEX-35 y el porcentaje que destinan al dividendo. Pero me produce cierto desasosiego utilizar áreas y colores para representar magnitudes: ¿es fácil comparar el tamaño relativo de TEF y ELE? ¿Cuánto mayor es ITX que BBVA? ¿Y el dividendo de MAP comparado con el de ACS? ...

9 de septiembre de 2011 · Carlos J. Gil Bellosta

Códigos de caracteres en R

Esta entrada acompaña y remata para los usuarios de R la que escribí en general sobre los códigos de caracteres. Es un pequeño experimento en el que comparo lo que pasa al leer un fichero de texto codificado de dos maneras distintas en dos plataformas, Linux y Windows, que usan códigos de caracteres distintos. Primero creo dos ficheros (en Linux) con el mismo contenido pero codificados de dos maneras distintas, utf-8 y latin1: ...

8 de septiembre de 2011 · Carlos J. Gil Bellosta

El paquete reshape de R (I): melt

El paquete reshape de R consta esencialmente de dos funciones, melt y cast, muy útiles para determinado tipo de transformaciones de datos. La función melt se describe sucintamente con el siguiente gráfico: Es decir, toma un data.frame y lo funde (¡dejaré de ser amigo de quien pronuncie meltea!) o, visto de otra manera, estira. He aquí unos ejemplos: library(reshape) iris.m <- melt(iris) iris.m Nótese cómo melt es inteligente y no necesita (en muchas ocasiones) que se le especifiquen cosas evidentes. De hecho, la expresión anterior es equivalente a las siguientes: ...

7 de septiembre de 2011 · Carlos J. Gil Bellosta