7 votos

En R, encuentre la función F(x) para transformar los valores de un vector a una distribución normal?

Tengo una PDF (función de densidad de probabilidad) generada a partir de un vector de 1.000.000 de valores empíricos. Esta PDF empírica está muy sesgada hacia la derecha.

En esta forma, no puedo hacer predicciones precisas utilizando una regresión lineal.

Para solucionar esto, ¿hay algún método para encontrar la función F(x) para transformar (es decir, "aplastar") los valores del vector en una distribución normal estándar, de modo que pueda introducir dicho vector transformado en una regresión lineal?

Por supuesto, esto también implicaría encontrar la inversa de F(x) que transforma (es decir, "de-squashes") cualquier predicción de vuelta a la PDF empírica original.

Lo que he probado

Hasta ahora, he conseguido generar la función de densidad a partir de los datos empíricos:

enter image description here

Aquí está el código R:

par(mfrow=c(2,1))

install.packages("bootstrap")
library(bootstrap)
data(stamp)
nobs <- dim(stamp)[1]
hist(stamp$Thickness,col="grey",breaks=100,freq=F)
    dens <- density(stamp$Thickness)
lines(dens,col="blue",lwd=3)

plot(density(stamp$Thickness),col="black",lwd=3, main="Simulation to choose density plot")
    for(i in 1:10)
    {
        newThick <- rnorm(nobs,mean=stamp$Thickness,sd=dens$bw*1.5)
        lines(density(newThick,bw=dens$bw),col="grey",lwd=3)
}

# If I wanted to do a linear regression to predict stamp thickness,
# what is the function F(x) to "squash" (i.e. transform) the "stamp"
# vector into a normal distribution, and the corresponding inverse 
# function Finv(x) to "desquash" (i.e. untransform) any predictions back 
# into the original prediction?

Actualización 1

@Andre Silva lo sugirió:

Lo que debe tener una distribución normal son los residuos (predichos frente a los observados) derivados de su modelo de regresión lineal (múltiple).

Según post sobre Regresión Lineal Múltiple :

Después de ajustar la línea de regresión, es importante investigar los residuos para determinar si se ajustan o no a la de una distribución normal. A la izquierda se muestra un gráfico de cuantiles normales de los y - se muestra a la izquierda. A pesar de dos grandes A pesar de dos grandes valores que pueden ser valores atípicos en los datos, los residuos no parecen desviarse de una muestra aleatoria de una distribución normal de manera de manera sistemática.

enter image description here

Actualización 2

Ver Distribución sesgada a la izquierda frente a la simétrica observada para el código R que ilustra que la única preocupación relevante es si los residuos están distribuidos normalmente.

6voto

Sean Hanley Puntos 2428

@AndreSilva tiene razón en que la regresión no requiere que los datos sean normales. El supuesto de la regresión lineal es que los residuos son normales. Puede ayudar a leer este hilo: qué-si-los-residuos-se-distribuyen-normalmente-pero-no-son para aclarar esta cuestión.

Sin embargo, este punto se queda corto. En primer lugar, la normalidad de los residuos sirve para garantizar que se puede confiar en los valores p estándar que produce el software. Incluso así, puede confiar en sus valores p sin residuos normales, si su N es lo suficientemente grande. Con $N>1,000,000$ es probable que haya pocas razones para preocuparse por la validez de sus valores p.

En cualquier caso, si quieres hacer un predictivo modelo, que los residuos sean o no normales es irrelevante. Los métodos de regresión OLS son insesgados tanto si los residuos son normales como si no lo son, sin tener en cuenta N. Por lo tanto, si quiere hacer predicciones de puntos (es decir, $\hat y_i$ la media prevista de la distribución condicional de la respuesta, donde $X=x_i$ ), estará bien. Si quiere hacer predicciones de intervalo También puede hacerlo, sólo que no debe utilizar la distribución normal (que sería la predeterminada) para hacerlo. En su lugar, puede utilizar la densidad estimada de sus residuos para hacer intervalos de predicción.

5voto

Nick Sergeant Puntos 3792

No es necesario que sus datos sean "normales". Lo que debe tener una distribución normal son los residuos (predichos frente a los observados) derivados de su modelo de regresión lineal (múltiple). ¿Has comprobado esta suposición?

1voto

Ηλίας Puntos 109

Un modelo lineal clásico (como la regresión lineal simple) para una muestra $y=(y_1, \ldots, y_n)$ tiene forma $y_i = \mu_i + \epsilon_i$ donde los "términos de error" $\epsilon_1, \ldots, \epsilon_n \sim_{i.i.d} {\cal N}(0, \sigma^2)$ y los medios $(\mu_1, \ldots, \mu_n)$ son números desconocidos que satisfacen algunas restricciones lineales.

Así, cada $y_i$ se supone que se genera a partir de una distribución normal: $y_i \sim {\cal N}(\mu_i, \sigma^2)$ pero dibujando un histograma o una densidad estimada para el $y_i$ no permite comprobar la normalidad porque no están idénticamente distribuidos (la distribución de $y_i$ depende de $i$ a través de $\mu_i$ ). En otras palabras, el $y_i$ se supone que se generan a partir de una distribución normal, pero no de una distribución común. Si se tiene una muestra "i.i.d" de una distribución desconocida, se puede estimar esta distribución con un histograma o una densidad estimada, pero si la muestra no es "i.i.d" el histograma o la densidad estimada son inútiles.

Sin embargo, los términos de error $\epsilon_i$ se distribuyen de forma idéntica. Nunca se conocen las realizaciones de los $\epsilon_i$ porque el $\mu_i$ son desconocidos, pero los residuos $\hat\epsilon_i = y_i - \hat\mu_i$ aproximan las realizaciones de los términos de error y se puede evaluar la desviación de la normalidad en la muestra de residuos.

En algunos casos, por ejemplo un ANOVA unidireccional, se puede comprobar por separado la normalidad dibujando un histograma del $y_i$ en cada grupo de individuos definidos por el factor porque el modelo asume la $y_i$ son normales e i.i.d en cada grupo. Si el tamaño de los grupos es pequeño, es mejor comprobar la normalidad con los residuos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X