De histograma a distribuciones (usando la de Burr)

Tengo una entrada perpetuamente pendiente que se pospone, entre otras cosas, porque aún no he encontrado una manera satisfactoria para muestrear histogramas. Una de las vías sería dar con (y ajustar) una distribución subyacente que generase unos histogramas similares.

Hoy voy a contar un ejemplo de cómo puede fallar tal estrategia.

Por un lado he bajado datos de la distribución de renta en España del INE:

Por otro, me he dejado convencer temporalmente de que la distribución de Burr podría ser conveniente para modelar la distribución de ingresos de los hogares (Wikipedia dixit!).

Así que he corrido

library(actuar)
library(pxR)

# descargado de https://www.ine.es/jaxiT3/Datos.htm?t=24992#!tabs-tabla
# el procesamiento de datos se puede omitir si cargas directamente la estructura comentada más abajo
datos <- as.data.frame(read.px("/tmp/24992.px"))

colnames(datos) <- c("periodo", "borrar", "tramo_hasta", "pct")
datos <- datos[, c("tramo_hasta", "pct")]

datos <- datos[datos$tramo != "Total",]

datos$tramo_hasta <- c(500, 1000, 1500, 2000, 2500, 3000, 4500, Inf)
datos$tramo_desde <- c(0, head(datos$tramo_hasta, -1)

datos$acum <- cumsum(datos$pct)
datos$prob <- datos$pct / 100

# structure(list(tramo_hasta = c(500, 1000, 1500, 2000, 2500, 3000, 
# 4500, Inf), pct = c(2.46, 11.22, 16.77, 15.99, 15.39, 13.78, 
# 19.18, 5.22), tramo_desde = c(0, 500, 1000, 1500, 2000, 2500, 
# 3000, 4500), prob = c(0.0246, 0.1122, 0.1677, 0.1599, 0.1539, 
# 0.1378, 0.1918, 0.0522)), row.names = 2:9, class = "data.frame")

foo <- function(x){
    p_end <- pburr(datos$tramo_hasta, x[1], x[2], x[3], x[4])
    p_ini <- pburr(datos$tramo_desde, x[1], x[2], x[3], x[4])
    probs <<- p_end - p_ini
    error <- sum((probs - datos$prob)^2 / sum(datos$prob))
    print(error)
    error
}

res <- optim(c(1,1, 1, 1), foo)

curve(dburr(x, res$par[1], res$par[2], res$par[3], res$par[4]), 
      from = 0, to = 5000)

y me he convencido de que no.

Comenta

Your email address will not be published.

Puedes usar estas etiquetas y atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.