Transformación Chi-cuadrado a distribución normal


8

La relación entre las distribuciones normal normal y chi-cuadrado es bien conocida. Sin embargo, me preguntaba, ¿hay una transformación que pueda conducir de un a una distribución normal estándar?χ2(1)

Se puede ver fácilmente que la transformación de raíz cuadrada no funciona ya que su rango es solo números positivos. Creo que la distribución resultante se llama plegada normal . ¿Hay algún truco inteligente que funcione aquí?

Respuestas:


9

Una opción es explotar el hecho de que para cualquier variable aleatoria continua entonces es uniforme (rectangular) en [0, 1]. Luego, una segunda transformación usando un CDF inverso puede producir una variable aleatoria continua con la distribución deseada, aquí no hay nada especial sobre chi cuadrado a normal. @Glen_b tiene más detalles en su respuesta.XFX(X)

Si desea hacer algo extraño y maravilloso, entre esas dos transformaciones puede aplicar una tercera transformación que asigne variables uniformes en [0, 1] a otras variables uniformes en [0, 1]. Por ejemplo, , u para cualquier , o incluso para y para .u1uuu+kmod1kRuu+0.5u[0,0.5]u1uu(0.5,1]

Pero si queremos una transformación monótona de a entonces necesitamos que sus correspondientes cuantiles se mapeen entre sí. Los siguientes gráficos con deciles sombreados ilustran el punto; Tenga en cuenta que he tenido que cortar la visualización de la densidad cerca de cero.Xχ12YN(0,1)χ12

Distribución de chi cuadrado con un grado de libertad y deciles sombreados Distribución normal estándar con deciles sombreados

Para la transformación monotónicamente creciente, que asigna rojo oscuro a rojo oscuro, etc., usaría . Para la transformación monotónicamente decreciente, que asigna rojo oscuro a azul oscuro, etc., puede usar el mapeo antes de aplicar el CDF inverso, por lo que . ¡Así es como se ve la relación entre e para la transformación creciente, que también da una idea de cómo se agruparon los cuantiles para la distribución de chi-cuadrado en el extremo izquierdo!Y=Φ1(Fχ12(X))u1uY=Φ1(1Fχ12(X))XY

Mapeo de chi cuadrado con 1 df a normal estándar

Si desea salvar la transformación de raíz cuadrada en , una opción es usar una variable aleatoria Rademacher . La distribución de Rademacher es discreta, conXχ12W

P(W=1)=P(W=1)=12

Es esencialmente un Bernoulli con que se ha transformado al estirar por un factor de escala de dos y luego restar uno. Ahora es normal normal - ¡efectivamente estamos decidiendo al azar si tomar la raíz positiva o negativa!p=12WX

Hace trampa un poco ya que es realmente una transformación de no solo. Pero pensé que valía la pena mencionarlo, ya que parece en el espíritu de la pregunta, y un flujo de variables de Rademacher es bastante fácil de generar. Por cierto, y serían otro ejemplo de variables normales no correlacionadas pero dependientes. Aquí hay un gráfico que muestra dónde se asignan los deciles del original ; recuerde que cualquier cosa en el lado derecho de cero es donde y el lado izquierdo es . Observe cómo los valores alrededor de cero se asignan a partir de valores bajos de y las colas (extremos izquierdo y derecho) se asignan a partir de los valores grandes de(W,X)XZWZχ12W=1W=1XX .

Mapeo de chi-cuadrado a distribución normal

Código para parcelas ( vea también esta publicación de desbordamiento de pila ):

require(ggplot2)
delta     <- 0.0001 #smaller for smoother curves but longer plot times
quantiles <- 10    #10 for deciles, 4 for quartiles, do play and have fun!

chisq.df <- data.frame(x = seq(from=0.01, to=5, by=delta)) #avoid near 0 due to spike in pdf
chisq.df$pdf <- dchisq(chisq.df$x, df=1)
chisq.df$qt <- cut(pchisq(chisq.df$x, df=1), breaks=quantiles, labels=F)
ggplot(chisq.df, aes(x=x, y=pdf)) +
  geom_area(aes(group=qt, fill=qt), color="black", size = 0.5) +
  scale_fill_gradient2(midpoint=median(unique(chisq.df$qt)), guide="none") +
  theme_bw() + xlab("x")

z.df     <- data.frame(x = seq(from=-3, to=3, by=delta))
z.df$pdf <- dnorm(z.df$x)
z.df$qt  <- cut(pnorm(z.df$x),breaks=quantiles,labels=F)
ggplot(z.df, aes(x=x,y=pdf)) +
  geom_area(aes(group=qt, fill=qt), color="black", size = 0.5) +
  scale_fill_gradient2(midpoint=median(unique(z.df$qt)), guide="none") +
  theme_bw() + xlab("y")

#y as function of x
data.df <- data.frame(x=c(seq(from=0, to=6, by=delta)))
data.df$y <- qnorm(pchisq(data.df$x, df=1))
ggplot(data.df, aes(x,y)) + theme_bw() + geom_line()

#because a chi-squared quartile maps to both left and right areas, take care with plotting order
z.df$qt2 <- cut(pchisq(z.df$x^2, df=1), breaks=quantiles, labels=F) 
z.df$w <- as.factor(ifelse(z.df$x >= 0, 1, -1))
ggplot(z.df, aes(x=x,y=pdf)) +
  geom_area(data=z.df[z.df$x > 0 | z.df$qt2 == 1,], aes(group=qt2, fill=qt2), color="black", size = 0.5) +
  geom_area(data=z.df[z.df$x <0 & z.df$qt2 > 1,], aes(group=qt2, fill=qt2), color="black", size = 0.5) +
  scale_fill_gradient2(midpoint=median(unique(z.df$qt)), guide="none") +
  theme_bw() + xlab("y")

1
Este es un truco muy inteligente, me gusta :). Gracias.
JohnK

5

[ Bueno, no pude localizar el duplicado que pensé que había; Lo más cerca que llegué fue la mención del hecho hacia el final de esta respuesta . (Es posible que solo se haya discutido en los comentarios sobre alguna pregunta, pero tal vez hubo un duplicado y simplemente lo perdí). Después de todo, daré una respuesta aquí. ]

Si es chi-cuadrado, con como su CDF, y es el cdf de lo normal, entonces es normal. Esto es obvio ya que la probabilidad de transformación integral de da un uniforme, y es normal. Entonces tenemos una transformación monotónica de chi-cuadrado a normal.XFΦΦ1(F(X))XΦ1(U)

El mismo truco funciona con dos variables continuas.

Esto nos da un claro contraejemplo a las diversas versiones de la pregunta "¿son normales no correlacionadas Y, Z bivariadas normales?" eso surge, ya que si Z es normal normal e , entonces son normales y no están correlacionados, pero están definitivamente dependiente (y tener una relación bastante bivariada)Y=Φ1(Fχ12(Z2))Z,Y

La transformación :T(z)=Φ1(Fχ12(z2))

ingrese la descripción de la imagen aquí

Histograma de una muestra grande de valores :Z+Y

ingrese la descripción de la imagen aquí


¿Podría agregar algunas palabras a su respuesta para explicar por qué e no están correlacionadas? No es nada obvio para mí, pero entonces, probablemente no estoy viendo las cosas desde la perspectiva correcta. ZY
Dilip Sarwate

@Dilip está centrado en 0 y la transformación de que aplicamos para obtener es simétrica alrededor de 0. Entonces . ZZYE(YZ)=0
Glen_b: reinstala a Mónica el

Bueno, necesitamos mostrar un poco más para asegurarnos de que E (YZ) es finito, por ejemplo, pero eso no presentaría ningún problema.
Glen_b -Reinstale a Monica el

El mapeo también se puede ver muy bien en los gráficos de densidad normal en mi respuesta: el inferior (rojo en el medio) se asigna al superior (rojo a la izquierda), con rojo asignado a rojo y azul asignado a azul Es una bonita relación! zT(z)
Silverfish
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.