Esta ley se puede aplicar a una gran variedad de fuentes de datos: facturas de electricidad, direcciones de calles, precios de acciones, cifras de población, tasas de mortalidad, longitud de los ríos o constantes físicas y matemáticas. Se ha aplicado en la detección de fraudes en contabilidad, resultados electorales y científicos.
Distribución
En R, al igual que hicimos en Excel, podemos calcular la tabla con la probabilidad para cada dígito. En R, al contrario de Excel, log calcula por defecto el logaritmo natural. Para calcular el logaritmo en base 10, necesitamos especificar la base o usar la función log10.
benford <- log10(1+1/(1:9)) # O log(1+1/(1:9), base = 10)
data.frame(benford)
benford
1 0.30103000
2 0.17609126
3 0.12493874
4 0.09691001
5 0.07918125
6 0.06694679
7 0.05799195
8 0.05115252
9 0.04575749
sum(benford) # Comprobamos que suma 1
[1] 1
Gráficos
Si representamos el vector sin ningún tipo de argumento, obtenemos el siguiente gráfico de barras.
barplot(benford)
Buscamos un formato similar al creado en la entrada ley de Benford en Excel. Formateamos el gráfico suministrando los argumentos necesarios.
barplot(rev(benford*100), # Revierte el orden
las = 1, # Etiquetas del eje horizontales
main = "Ley de Benford",
xlab = "%",
ylab = "Dígitos",
names.arg = c(9:1), # Dígitos orden inverso
horiz = TRUE, # Barras horizontales
col = "steelblue",
border = "white",
xlim = c(0, 35)) # Amplia el máximo de la escala
grid(ny = 0) # Líneas de división
Referencias:
?log
?barplot
Bendford's law, mathematical statement
Benford law and lognormal distributions
Entradas relacionadas:
Ley de Benford en Excel
Distribución de frecuencias en Ms Excel
se entien pero en que parte se carga la tabla
ResponderEliminarAl principio creamos el data frame Benford con las probabilidades para cada dígito.
Eliminarla duda que tengo es como realizar el aplicativo a una tabla con valores
ResponderEliminarNecesitas calcular la distribución de frecuencias de la variable que contiene los valores y compararla con las probabilidades para cada dígito.
Eliminar