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: