¿Cuál es la distribución de estos datos?

8

Obtuve los datos, tracé la distribución de los datos y uso la función qqnorm, pero parece que no sigue una distribución normal, entonces, ¿qué distribución debo usar para describir los datos?

Función empírica de distribución acumulativa ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

PepsiCo
fuente
Una gráfica del histograma también podría ser útil para inspeccionar. Puede parecer una distribución sesgada, en lugar de necesitar un modelo mixto.
John
1
¿Podría contarnos un poco sobre por qué está tratando de describir esta distribución? Después de todo, hay muchas alternativas para dar el nombre de alguna función matemática bien conocida: suavizado de kernel, resúmenes de letras n, el propio ECDF, etc. Todas son descripciones adecuadas en entornos apropiados.
whuber

Respuestas:

12

Le sugiero que pruebe las distribuciones Lambert W x F de cola pesada o las distribuciones asimétricas Lambert W x F (descargo de responsabilidad: soy el autor). En R se implementan en el paquete LambertW .

Surgen de una transformación paramétrica, no lineal de una variable aleatoria (RV) XF, a una versión de cola gruesa (sesgada) YLambert W×F. porF siendo gaussiano, el Lambert W x F de cola pesada se reduce a Tukey hdistribución. (Aquí describiré la versión de cola pesada, la sesgada es análoga).

Tienen un parámetro δ0 (γRpara Lambert torcido W x F) que regula el grado de pesadez de la cola (asimetría). Opcionalmente, también puede elegir diferentes colas pesadas izquierda y derecha para lograr colas pesadas y asimetría. Transforma un estándar normalUN(0,1) a un Lambert W × Gaussiano Z por

Z=Uexp(δ2U2)

Si δ>0 Z tiene colas más pesadas que U; paraδ=0, ZU.

Si no desea utilizar el gaussiano como línea de base, puede crear otras versiones Lambert W de su distribución favorita, por ejemplo, t, uniforme, gamma, exponencial, beta, ... Sin embargo, para su conjunto de datos un doble pesado- La distribución de cola de Lambert W x Gauss (o un sesgo Lambert W xt) parece ser un buen punto de partida.

library(LambertW)
set.seed(10)

### Set parameters ####
# skew Lambert W x t distribution with 
# (location, scale, df) = (0,1,3) and positive skew parameter gamma = 0.1
theta.st <- list(beta = c(0, 1, 3), gamma = 0.1)
# double heavy-tail Lambert W x Gaussian
# with (mu, sigma) = (0,1) and left delta=0.2; right delta = 0.4 (-> heavier on the right)
theta.hh <- list(beta = c(0, 1), delta = c(0.2, 0.4))

### Draw random sample ####
# skewed Lambert W x t
yy <- rLambertW(n=1000, distname="t", theta = theta.st)

# double heavy-tail Lambert W x Gaussian (= Tukey's hh)
zz =<- rLambertW(n=1000, distname = "normal", theta = theta.hh)

### Plot ecdf and qq-plot ####
op <- par(no.readonly=TRUE)
par(mfrow=c(2,2), mar=c(3,3,2,1))
plot(ecdf(yy))
qqnorm(yy); qqline(yy)

plot(ecdf(zz))
qqnorm(zz); qqline(zz)
par(op)

ecdf y qqplot de distribuciones Lambert W x F sesgadas / de cola gruesa

En la práctica, por supuesto, tienes que estimar θ=(β,δ), dónde β es el parámetro de su distribución de entrada (por ejemplo, β=(μ,σ) para un gaussiano, o β=(c,s,ν) para tdistribución; ver papel para más detalles):

### Parameter estimation ####
mod.Lst <- MLE_LambertW(yy, distname="t", type="s")
mod.Lhh <- MLE_LambertW(zz, distname="normal", type="hh")

layout(matrix(1:2, ncol = 2))
plot(mod.Lst)
plot(mod.Lhh)

ingrese la descripción de la imagen aquí

Dado que esta generación de cola pesada se basa en transformaciones biyectivas de RV / datos, puede eliminar las colas pesadas de los datos y verificar si son agradables ahora, es decir, si son gaussianos (y probarlo usando pruebas de normalidad).

### Test goodness of fit ####
## test if 'symmetrized' data follows a Gaussian
xx <- get_input(mod.Lhh)
normfit(xx)

ingrese la descripción de la imagen aquí

Esto funcionó bastante bien para el conjunto de datos simulado. Le sugiero que lo pruebe y vea si también puede hacer Gaussianize()sus datos .

Sin embargo, como señaló @whuber, la bimodalidad puede ser un problema aquí. Entonces, tal vez desee verificar los datos transformados (sin las colas pesadas) de lo que está sucediendo con esta bimodalidad y, por lo tanto, brindarle información sobre cómo modelar sus datos (originales).

Georg M. Goerg
fuente
+1 Muy claro y bien ilustrado: trabajas un poco para compartir estas ideas con nosotros y te lo agradezco.
whuber
+1, gracias por publicar esto, estoy interesado en experimentar con esto. Solo un par de aclaraciones menores: ¿qué significaγRconsulte en su segundo párrafo? Además, en la oración "En la práctica, por supuesto, tienes que estimarθ", Quieres decir δ?
Macro
1
@Macro: hice modificaciones en la publicación original para aclarar estos dos puntos.
Georg M. Goerg
Soy fanático y comencé a trabajar en una versión similar a scikit-learn aquí: github.com/gregversteeg/gaussianize
Greg Ver Steeg
7

Esto parece una distribución asimétrica que tiene colas más largas, en ambas direcciones, que la distribución normal.

  • Puede ver la cola larga porque los puntos observados son más extremos que los esperados en la distribución normal, tanto en el lado izquierdo como en el derecho (es decir, están por debajo y por encima de la línea, respectivamente).

  • Puede ver la asimetría porque, en la cola derecha, la medida en que los puntos son más extremos de lo que se esperaría en una distribución normal es mayor que en la cola izquierda.

No puedo pensar en ninguna distribución "enlatada" que tenga esta forma, pero no es demasiado difícil "cocinar" una distribución que tenga las propiedades indicadas anteriormente.

Aquí hay un ejemplo simulado (en R):

set.seed(1234)
x=rexp(1e3)
y=-rexp(1e3,rate=2)
z=c(x,y)
qqnorm(z)
qqline(z) # see below for the plot. 
plot( ecdf(z) ) # see below for plot (2nd plot)

La variable aquí es una mezcla 50/50 entre un exponential(1) y un exponential(2) se reflejó alrededor de 0. Esta elección se hizo porque será, por definición, asimétrica, ya que hay diferentes parámetros de velocidad, y ambos serán de cola larga en relación con la distribución normal, con la cola derecha más larga, ya que la velocidad en la mano derecha El lado es más grande.

Este ejemplo produce un qqplot bastante similar y un CDF empírico (cualitativamente) a lo que está viendo:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Macro
fuente
1
Los modelos de mezcla +1 son útiles. Especialmente si tiene datos que se generan en dos o más circunstancias diferentes.
Seth
+1 También podría considerarse el uso de distribuciones flexibles.
@Procrastinator, ¿a qué distribuciones flexibles se refiere (o es un término técnico)?
Macro
Por ejemplo, distribuciones skew-t: 1 , 2 , 3 , 4 , 5 . Son unimodales, contienen un parámetro de asimetría y un parámetro de curtosis, y evitan la suposición en modelos mixtos de que hay dos o más poblaciones que generan las observaciones, como mencionó @Seth.
1
@Macro Eso depende de cómo se mida la asimetría. El tercer momento es una medida antigua que no se acepta del todo hoy en día porque no existe para muchas distribuciones como la sesgada y simétrica.t. La asimetría normal en realidad cubre todo el rango de otras medidas de asimetría como esta . Las medidas de Pearson y Edgeworth están influenciadas por las colas (porque están basadas en el momento), que es una propiedad indeseable. Además, no satisfacen las 3 condiciones requeridas para ser una medida de asimetría especificada en el documento vinculado ...
0

Para determinar qué distribución es la más adecuada, primero identificaría algunas distribuciones objetivo potenciales: pensaría en el proceso del mundo real que generó los datos, luego ajustaría algunas densidades potenciales a los datos y compararía sus puntajes de verosimilitud para ver qué distribución potencial se ajusta mejor. Esto es fácil en R con la función fitdistr en la biblioteca MASS.

Si sus datos son como la z de Macro, entonces:

>fitdistr(z,'cauchy',list(location=mean(z),scale=sqrt(sd(z))))$loglik
[1] -2949.068

> fitdistr(z,'normal')$loglik
[1] -3026.648

> fitdistr(z,'t')$loglik
[1] -2830.861

Entonces esto da la distribución t como la mejor adaptación (de las que probamos) para los datos de Macro. confirme esto con algunos qqplots usando los parámetros de fitdistr.

> qqplot(z,rt(length(z),df=2.7))  

Luego compare este gráfico con los otros ajustes de distribución.

Seth
fuente
1
si bien creo que encajar en familias paramétricas conocidas tiene su lugar, pero ¿qué te dice eso en este caso? Por la asimetría conocemos a Cauchy, normal ytpuede descartarse desde el principio. ¿Puedes pensar en alguna familia paramétrica que pueda capturar esta combinación de asimetría y larga cola? Me parece que puede ser necesaria una distribución de mezcla (como la que simulé), o una estimación no paramétrica, como alude @whuber en su comentario a la pregunta principal.
Macro
@Macro Muchas distribuciones 'listas para usar' pueden manejar situaciones sesgadas y de cola pesada. F y Gamma vienen a la mente, junto con casi todas las distribuciones de 3 y 4 parámetros. Acabo de agregar una respuesta para que el póster original tenga una idea sobre cómo cuantificar la "bondad de ajuste" y hacer comparaciones numéricas.
Seth
Entiendo su punto, pero solo estoy tratando de averiguar si alguna distribución "lista para usar" funcionaría aquí. Gamma y F no son negativos y no creo que Gamma pueda lograr este tipo de forma, incluso si cambiaste los datos adecuadamente para que no fueran negativos.
Macro
Seth y @Macro, el gráfico EDF en la pregunta muestra bimodalidad, así que olvídate de lograr un buen ajuste con una distribución convencional si es necesario capturar ese segundo modo. En este momento no tenemos un criterio efectivo para recomendar un ajuste. ¿Qué sucede si el OP tiene residuos de regresión de datos de inundaciones o catástrofes financieras y, por lo tanto, debe encajar bien en la cola superior? ¿Qué pasa si es esencial para él / ella separar los modos? Las respuestas serán notablemente diferentes según la aplicación. ¡La adaptación de distribución tiene que ser más que un ejercicio matemático ciego!
whuber