Transformar distribución normal a normal estándar y calcular probabilidades.

La distribución normal estándar o distribución normal tipificada es una distribución normal singular cuya denominación es media igual a cero y desviación igual a 1. \(\mu = 0 ; \sigma = 1\).
Se necesita una variable, Z que representa el producto de una transformación o cambio de variable de la variable aleatoria continua X que sigue una distribución normal del tipo \(N(μ, σ)\).
Esta transformación se llama tipificación (también estandarización o normalización):
¿Porque Z? En general, el valor de \(Z\) se interpreta como el número de desviaciones estándar que están comprendidas entre el promedio y un cierto valor de variable \(x\).
Se identifica \(z\) como la diferencia entre un valor de la variable y el promedio, expresada esta diferencia en cantidad de desviaciones estándar.[@mendenhall2010].
Entonces, a partir de cualquier variable aleatoria \(x\) que siga una distribución, se puede obtener otra característica \(z\) con una distribución normal estándar, sin más que efectuar la transformación conforme y de acuerdo a la fórmula.
\[ z = \frac{x - \mu}{\sigma} \]
\[ x \text{ es el valor de una variable aleatoria continua de una distribución normal} \\ \sigma \text{ desviación estándar de población} \\ \mu \text{ media de la población} \]
Establece que si una variable aleatoria está normalmente distribuida, entonces:
Ejemplo: una desviación estándar de la media es igual al valor \(z\) de 1.00. Al hablar de la tabla de probabilidad normal estándar, el valor \(z\) de 1.00 corresponde a una probabilidad de 0.3413. Por lo tanto, ¿qué porcentaje de las observaciones caerá entre más y menos una desviación estándar de la media? Se multiplica (2)(0.3413), lo que da 0.6826, o aproximadamente \(68\%\) de las observaciones están entre más y menos una desviación estándar de la media.

Cargar librerías y datos para representar una distribución normal y transformar a distribución normal estándar
{r message=FALSE, warning=FALSE} library(cowplot) # Gráficos library(ggplot2) # Gráfico library(mosaic) library(dplyr) # Para proesar filtrar ordenar con arrange
La población tiene una variable aleatoria de interés como lo puede ser la altura de las personas. Valores medidos en centímetros.

Se inicializan las variables para generar valores aleatorios y simular una población.
n <- 200
media <- 175
desv <- 10
Se generan 200 valores aleatorios o con las condiciones de una distribución normal de media igual a \(\mu = 175cm.\) y desviación de \(\sigma = 10cm.\).
set.seed(2021)
n <- 200
estaturas<- rnorm(n = n, mean = media, sd = desv)
estaturas
Se identifican la media aritmética y la desviación de la población generada.
media.p <- round(mean(estaturas),2)
desv.p <- round(sd(estaturas),2)
media.p; desv.p
Se muestra la distribución normal con función plotDist() de la librería mosaic.
g1 <- plotDist(dist = "norm", mean = media.p, sd = desv.p, type = "h", xlab = "x's = Estaturas", col = 'blue')
g1

Z se interpreta como los valores que están a la derecha de una distribución normal con media igual a cero y desviación igual a 1.
\[ z = \frac{x - \mu}{\sigma} \]
En la siguiente función f.devolver.z() se hace una simulación de transforma cualquier valor de \(x\) a valores de \(z\). Se simula transformar valores de 170 a 180 de 0.5 en 0.5.
En el archivo que se carga a continuación, se encuentra programada una función f.devolver.z() para obtener el valor de z a partir de los parámetros x, media y desviación.
source("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/Enero%20Junio%202022/funciones/funciones.para.distribuciones.r")
x = seq(from = 170, to = 180, by = .5)
# z ?
#f.devolver.z <- function(x, media, desv) {
# z <- (x - media) / desv
# z
#}
z <- f.devolver.z(x = x, media = media.p, desv = desv.p)
x; z
equivalencias <- data.frame (x = estaturas, z = f.devolver.z(x = estaturas, media = media, desv = desv))
# equivalencias
Se muestran ordenados para identificarlos de manera más práctica y únicamente los primeros y últimos veinte registros.
equivalencias <- arrange(equivalencias, x)
head(equivalencias, 20)
tail(equivalencias, 20)
La media debe ser 0 y la desviación es 1
\[ \mu = 0 \\ \sigma = 1 \]
Se muestran los datos de la distribución estaturas con valores transformados a z.
g2 <- plotDist(dist = "norm", mean = 0, sd = 1, type = "h", xlab = "Z's", col = 'red')
g2
plot_grid(g1, g2, nrow = 1, ncol=2)
Se muestran las gráficas de distribución normal con datos de estaturas en azul y gráficas de valores de estaturas transformados a \(z\) en color rojo.
gnormal <- ggplot(data = equivalencias) +
geom_point(aes(x = x, y = dnorm(x = x, mean = media.p, sd = desv.p)), col = 'blue') +
geom_line(aes(x = x, y = dnorm(x = x, mean = media.p, sd = desv.p)), col = 'blue') +
geom_vline(xintercept = media.p) +
ggtitle(label = "Distribución normal", subtitle = paste("Media = ", media.p))
gnormalstd <- ggplot(data = equivalencias) +
geom_point(aes(x = z, y = dnorm(x = z, mean = 0, sd = 1)), col = 'red') +
geom_line(aes(x = z, y = dnorm(x = z, mean = 0, sd = 1)), col = 'red') +
geom_vline(xintercept = 0) +
ggtitle(label = "Distribución normal Estándar", subtitle = paste("Media = ", 0))
plot_grid(gnormal, gnormalstd, nrow=1, ncol=2)
\[ P(x \ge 180) = 1 - P(x < 180) = \text {lower tail = FALSE} \]
x <- 180
prob1 <- round(pnorm(q = x, mean = media.p, desv.p, lower.tail = FALSE) * 100, 2)
paste(prob1, "%")
gnormal <- plotDist(dist = "norm", mean = media.p, sd = desv.p, type = "h", xlab = "x's", groups = x >= 180, col = c('blue', 'pink'), main= "Distribución normal", sub= paste("Media = ", media.p, "f(x > ", x , ") = ", prob1, "%"))
x <- 180
z <- f.devolver.z(x = x, media = media.p, desv = desv.p)
z
prob2 <- round(pnorm(q = z, mean = 0, sd=1, lower.tail = FALSE) * 100, 2)
paste(prob2, "%")
gnormal.z <- plotDist(dist = "norm", mean = 0, sd = 1, type = "h", xlab = "z's", groups = x >= z, col = c('red', 'pink'), main= "Distribución normal estándar", sub= paste("Media = ", 0, "f(z > ", round(z,2) , ") = ", prob2, "%"))
plot_grid(gnormal, gnormal.z, nrow = 1, ncol=2)
La respuesta es razonar y deducir si el 50% está a la derecha y el otro 50% está a la izquierda entonces la probabilidad es aproximadamente del 50% \[ P(x <= mean) = 50 \% \\ o \\ P(z <= 0 ) = 50\% \]
x <- media.p
prob1 <- round(pnorm(q = x, mean = media.p, desv.p, lower.tail = FALSE) * 100, 2)
paste(prob1, "%")
gnormal <- plotDist(dist = "norm", mean = media.p, sd = desv.p, type = "h", xlab = "x's", groups = x<= media.p, col = c('blue', 'pink'), main= "Distribución normal", sub= paste("Media = ", media.p, "f(x < ", x , ") = ", prob1, "%"))
x <- media.p
z <- f.devolver.z(x = x, media = media.p, desv = desv.p)
z
prob2 <- round(pnorm(q = z, mean = 0, sd=1) * 100, 2)
paste(prob2, "%")
gnormal.z <- plotDist(dist = "norm", mean = 0, sd = 1, type = "h", xlab = "z's", groups = x <= z, col = c('red', 'pink'), main= "Distribución normal estándar", sub= paste("Media = ", 0, "f(z < ", round(z,2) , ") = ", prob2, "%"))
plot_grid(gnormal, gnormal.z, nrow = 1, ncol=2)
Se toma de referencia algunos ejercicios de distribuciones normales. [@matemovil].
Por ejemplo, si se desea encontrar la probabilidad de que la variable estandarizada \(z\), tome un valor entre \(0\) y \(1.50\); hay que encontrar el área bajo la curva entre \(z = 0\) y \(z = 1.50\), o lo que es lo mismo la probabilidad \(P(0 \le z \le 1.50)\) [@matemovila].
z1 = 0
z2 = 1.5
prob2 <- pnorm(q = z2, mean = 0, sd=1) - pnorm(q = z1, mean = 0, sd = 1)
prob2 <- round(prob2 * 100, 2)
paste(prob2, "%")
gnormal.z <- plotDist(dist = "norm", mean = 0, sd = 1, type = "h", xlab = "z's", groups = x >= z1 & x <= z2, col = c('grey', 'pink'), main= "Distribución normal estándar", sub= paste("Media = ", 0, "f(",z1, "<= z <=",z2,")", prob2, "%"))
gnormal.z
La función xpnorm() de librería mosaic refleja el área bajo la curva y los valores porcentuales de probabilidad.
{r message=FALSE, warning=FALSE} grafica <- xpnorm(q = c(0, 1.5), mean = 0, sd = 1) grafica round(grafica[1] - grafica[2], 4)
Salida de xpnorm()
If X ~ N(0, 1), then
P(X <= 0.0) = P(Z <= 0.0) = 0.5000 P(X <= 1.5) = P(Z <= 1.5) = 0.9332
P(X > 0.0) = P(Z > 0.0) = 0.50000 P(X > 1.5) = P(Z > 1.5) = 0.06681
Primero debemos observar que es la distribución normal estándar. En general tiene como trabajo adaptar una variable aleatoria a una función que depende de la media y la desviación estándar.
Dicha distribución tiene la forma de una campana la cual es simétrica con respecto a la media, su forma depende tanto de la media así como de la desviación estándar.