in

Gráfica cuantil-cuantil desde cero y comparación con múltiples distribuciones estándar

Quiero hacer un gráfico QQ, donde comparo una muestra con varias distribuciones estándar, escaladas, de modo que los puntos representados por la distribución correcta estén en la línea negra.

Espero hacer básicamente lo que describe https://www.youtube.com/watch?v=okjYjClSjOg.

lo que pretendo hacer

  1. Ordenar los valores de la muestra.
  2. Considere cada valor como el cuantil de muestra de una distribución.
  3. De la función de probabilidad acumulada de esta distribución, tome tantos cuantiles como valores de muestra tenga uno. Toma esos cuantiles esperados de tal manera que la integral de la función de densidad de probabilidad entre dos cuantiles esperados adyacentes es siempre la misma.
  4. Ordene los cuantiles esperados y alinéelos con los cuantiles de muestra, para que uno obtenga puntos.
  5. Si la distribución de la muestra es la misma que la distribución, la coordenada x y la coordenada y de un punto deberían ser aproximadamente las mismas: los puntos están cerca de la línea que pasa por los puntos (0,0) y (1,1) .

Hago esto no solo para una distribución, sino también para múltiples distribuciones y coloco todos los puntos resultantes en la gráfica.

Implementé esto, pero el resultado no es lo que pensé que sería (como se puede ver a continuación). ¿Dónde me equivoqué en términos de mi comprensión?

Implementación

  1. Ordeno mis valores y para cada valor, espero el acumulado probability aumentar (así la suma acumulativa cumsum) la misma cantidad (es decir 1/n()dónde n() es el número de valores que tengo).
  2. Para cada una de esas probabilidades, calculo el cuantil esperado para diferentes distributions. A continuación, los nombro percentile_

En este punto he terminado con la implementación central, el resto es limpieza:

  1. Traigo los datos en un formato largo.
  2. Elimino puntos con cuantiles o valores de muestra demasiado grandes.
  3. Para cada distribución, estandarizo las coordenadas, para que sean más fáciles de ver.
  4. Trazo los cuantiles en el eje x y los valores originales en el eje y.
  5. Trazo los puntos.
  6. Espero que los puntos resultantes para la distribución correcta estén en la línea que pasa (0,0) y (1,1).

Estaba seguro de haberlo hecho bien y expresé esto en código:

data.frame(eval_val = rlnorm(10000, 8, 6)) %>%
    arrange(eval_val) %>%
    mutate(prob_mass = 1/n(),
           probability = cumsum(prob_mass),
           percentile_norm = qnorm(probability),
           percentile_beta= qbeta(probability, shape1 = 1, shape2 = 2),
           percentile_lognorm = qlnorm(probability),
    ) %>%
    gather(distribution, percentile, starts_with("percentile_")) %>%
    filter(is.finite(percentile), eval_val < 1000) %>%
    group_by(distribution) %>%
    mutate(percentile = (percentile - mean(percentile)) / sd(percentile),
           eval_val = (eval_val - mean(eval_val)) / sd(eval_val)) %>%
ggplot(aes(x=percentile, y=eval_val, color=distribution)) +
geom_point() +
    geom_abline(slope = 1, intercept = 0)

ingrese la descripción de la imagen aquí

pero como se puede ver, la distribución log-normal no está en la línea y tampoco ninguna de las otras distribuciones.

0

¿Te ayudó la respuesta?

Subscribirse
Notificar por
guest
0 Comentarios
Inline Feedbacks
Ver todas las Respuestas

Estimar el límite o los límites del valor propio más pequeño de una matriz simétrica

¿Cómo debo limpiar la textura del techo de una caja de luz?