DISTRIBUCIÓN LOGNORMAL

La distribución Lognormal es un tipo de distribución flexible, relacionada con la distribución normal. A diferencia de la normal, que permite valores negativos, esta distribución consta de valores únicamente positivos, aparte que está caracterizada por un sesgo notorio hacia la derecha, es decir que la cola de distribución se extiende hacia este sentido. Esto explica que la mayoría de los datos son pequeños, ya que su moda se enuentra al lado izquierdo.

ASIMETRÍA

La asimetría es una medida que indica hacia qué lado se extiende la cola de una distribución. En la lognormal la asimetría es positiva, lo que significa que hay pocos valores muy altos que generan una cola larga hacia la derecha.

FÓRMULA

Esta es la fórmula de dos parámetros para la distribución lognormal: \[f(x; \mu , \sigma )=\frac{1}{x\sigma \sqrt{2\pi }}* exp(-\frac{(ln(x)-\mu ){^2}}{2\sigma {^2}}), \forall x >0\] Donde:

  • μ = es la media de la distribución y se define como:

\[e^{^{\mu +\frac{\sigma{^2}}{2}}}\]

  • σ = Es la desviación estándar y se define como:

\[\sigma = \sqrt{e^{2\mu +\sigma {^2}}(e^{^{\sigma ^{2}}}-1)}\]

Ejemplo

Vamos a usar una librería propia de Rstudio que muestra personajes de Star Wars, la distribución lognormal se hará con las estaturas que se tienen de estos mismos personajes:

library(dplyr)#librería que contiene el data frame del ejemplo
library(fitdistrplus)#librería que ayuda al ajuste de distribuciones según sus datos
estatura <- starwars %>%
  filter(!is.na(height), height > 0) %>% #este apartado es para filtrar datos que estén vacíos o tengan valor cero, donde se excluyen para no dañar la distribución
  pull(height)
ajuste<-fitdist(estatura, "lnorm")
plot(ajuste)
#Código para poder mostrar el gráfico
hist(estatura,
     freq = FALSE,
     main = "Distribución lognormal de las estaturas de personajes (Star Wars)",
     xlab = "Estatura (cm)",
     ylab = "Densidad",
     col="skyblue",
     border="black")
curve(dlnorm(x,
             meanlog = ajuste$estimate["meanlog"],
             sdlog   = ajuste$estimate["sdlog"]),
      add = TRUE,
      lwd = 2,
      col = "red")

  • Las estaturas de los personajes contemplan una asimetría a la derecha, con ciertos valores muy altos, sin embargo existen valores atípicos que generan desviaciones visibles. Pero se mantiene coherencia con lo que se esperaría de una distribución lognormal.
#comando que muestra la estimación de la media y desviación estándar
ajuste$estimate
##   meanlog     sdlog 
## 5.1372060 0.2421759

En el apartado de “meanlog” y “sdlog” indica específicamente la media y la desviación estándar.

#Tabla de datos sobre el ejemplo
starwarslim<-starwars%>%
   filter(!is.na(height), height > 0)
tabla<- starwarslim %>%
  dplyr::select(name, height) %>%
  arrange(desc(height))
print(tabla)
## # A tibble: 81 × 2
##    name         height
##    <chr>         <int>
##  1 Yarael Poof     264
##  2 Tarfful         234
##  3 Lama Su         229
##  4 Chewbacca       228
##  5 Roos Tarpals    224
##  6 Grievous        216
##  7 Taun We         213
##  8 Rugor Nass      206
##  9 Tion Medon      206
## 10 Darth Vader     202
## # ℹ 71 more rows

Esta tabla muestra los primeros 10 personajes más altos dentro de la distribución.

DISTRIBUCION NORMAL O GAUSSIANA

La distribución Gaussiana, también conocida como distribución Normal, es la distribución más importante en estadística. Tiene forma de campana simétrica y describe muchos fenómenos naturales como estaturas, pesos, errores de medición, calificaciones, entre otros.

Características principales:

  • Es simétrica alrededor de su media (μ)
  • La media, mediana y moda son iguales
  • Aproximadamente el 68% de los datos están dentro de 1 desviación estándar de la media
  • Aproximadamente el 95% de los datos están dentro de 2 desviaciones estándar
  • Aproximadamente el 99.7% de los datos están dentro de 3 desviaciones estándar (Regla 68-95-99.7)

Formula

\[f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^{2}}\]

  • μ (mu) = Media de la distribución (centro de la campana)

  • σ (sigma) = Desviación estándar (qué tan dispersos están los datos)

Nota importante: Cuando μ = 0 y σ = 1, se llama Distribución Normal Estándar

Ejemplo

Vamos a analizar las calificaciones de un examen de estadística. La distribución normal nos ayuda a entender cómo se distribuyen las notas de los estudiantes alrededor del promedio.

calificaciones <- c(75, 82, 78, 85, 80, 83, 77, 88, 74, 81, 
                    79, 84, 78, 82, 86, 76, 80, 83, 81, 79)

media <- mean(calificaciones)
desviacion <- sd(calificaciones)

print(paste("Media (μ):", round(media, 2)))
## [1] "Media (μ): 80.55"
print(paste("Desviación estándar (σ):", round(desviacion, 2)))
## [1] "Desviación estándar (σ): 3.69"

La media nos indica el centro de las calificaciones y la desviación estándar nos dice qué tan dispersas están las notas respecto al promedio.

limite1inf<- media - desviacion
limite2sup <- media + desviacion
print(paste("68% de las calificaciones están entre:", round(limite1inf, 2), 
            "y", round(limite2sup, 2)))
## [1] "68% de las calificaciones están entre: 76.86 y 84.24"
hist(calificaciones, 
     main = "Distribución Normal de Calificaciones",
     xlab = "Calificación",
     ylab = "Frecuencia",
     col = "darkblue",
     border = "black",
     breaks = 8,
     prob = TRUE)

curve(dnorm(x, mean = media, sd = desviacion), 
      add = TRUE, col = "red", lwd = 2)

abline(v = media, col = "darkred", lwd = 2, lty = 2)
legend("topright", 
       legend = c("Curva Normal", "Media (μ)"), 
       col = c("red", "darkred"), 
       lty = c(1, 2), 
       lwd = 2)

En esta gráfica podemos observar cómo las calificaciones siguen aproximadamente una distribución normal, con la mayoría de los datos concentrados alrededor de la media.

x <- seq(70, 95,)
y <- dnorm(x, mean = media, sd = desviacion)

plot(x, y, 
     type = "l", 
     col = "blue", 
     lwd = 3,
     main = "Curva de Densidad Normal (Campana de Gauss)",
     xlab = "Calificación",
     ylab = "Densidad")

Estas probabilidades nos permiten responder preguntas prácticas sobre las calificaciones de los estudiantes.

prob_mayor_85 <- pnorm(85, mean = media, sd = desviacion, lower.tail = FALSE)
prob_menor_75 <- pnorm(75, mean = media, sd = desviacion)

print(paste("Probabilidad de sacar más de 85:", round(prob_mayor_85 * 100, 2), "%"))
## [1] "Probabilidad de sacar más de 85: 11.4 %"
print(paste("Probabilidad de sacar menos de 75:", round(prob_menor_75 * 100, 2), "%"))
## [1] "Probabilidad de sacar menos de 75: 6.64 %"
datos_tabla <- data.frame(
  Estudiante = paste("Estudiante", 1:20),
  Calificacion = calificaciones
)

datos_ordenados <- datos_tabla[order(-datos_tabla$Calificacion), ]
print (datos_ordenados)
##       Estudiante Calificacion
## 8   Estudiante 8           88
## 15 Estudiante 15           86
## 4   Estudiante 4           85
## 12 Estudiante 12           84
## 6   Estudiante 6           83
## 18 Estudiante 18           83
## 2   Estudiante 2           82
## 14 Estudiante 14           82
## 10 Estudiante 10           81
## 19 Estudiante 19           81
## 5   Estudiante 5           80
## 17 Estudiante 17           80
## 11 Estudiante 11           79
## 20 Estudiante 20           79
## 3   Estudiante 3           78
## 13 Estudiante 13           78
## 7   Estudiante 7           77
## 16 Estudiante 16           76
## 1   Estudiante 1           75
## 9   Estudiante 9           74

DISTRIBUCIÓN CHI CUADRADO (χ²)

La distribución Chi Cuadrado es una distribución de probabilidad continua muy importante en estadística. Se utiliza principalmente en pruebas de hipótesis y no modela directamente fenómenos naturales, sino que surge cuando se trabaja con datos categóricos y varianzas. Es asimétrica y siempre toma valores positivos.

Características principales:

  • Es no simétrica y está sesgada hacia la derecha
  • Solo toma valores positivos (χ² ≥ 0)
  • Su forma depende de los grados de libertad (k o df)
  • La media de la distribución es igual a los grados de libertad: μ = k
  • La desviación estándar es: σ = √(2k)
  • Cuando k > 90, la distribución se aproxima a la distribución normal
  • Hay una curva diferente para cada valor de grados de libertad

¿Qué son los grados de libertad?

Los grados de libertad (k o df) representan el número de valores que pueden variar libremente en un cálculo. En la práctica, suele ser k = n - 1, donde n es el número de observaciones.

Fórmula

\[f(x; k) = \frac{1}{2^{k/2}\Gamma(k/2)} x^{k/2-1} e^{-x/2}, \quad \text{para } x > 0\]

Donde:

  • x = valor de la variable chi cuadrado (χ²)
  • k = grados de libertad (df)
  • Γ(k/2) = función gamma evaluada en k/2 (una extensión del factorial: Γ(n) = (n-1)!)

Nota importante: Esta distribución surge como la suma de los cuadrados de k variables normales estándar independientes:

\(\chi^{2} = Z_{1}^{2} + Z_{2}^{2} + ... + Z_{k}^{2}\)

Valor de Chi-cuadrado en una prueba estadística

En la mayoría de aplicaciones prácticas, no se calcula la PDF, sino el estadístico de prueba:

\(\chi^{2} = \sum \frac{(O_i - E_i)^2}{E_i}\)

Donde:

  • O_i = valor observado en la categoría i
  • E_i = valor esperado bajo la hipótesis nula

Este es el estadístico Chi-cuadrado, que luego se compara con un valor crítico o se usa para calcular un p-valor.

Aplicaciones principales:

  1. Prueba de bondad de ajuste: Verificar si los datos se ajustan a una distribución teórica
  2. Prueba de independencia: Comprobar si dos variables categóricas son independientes
  3. Intervalos de confianza para la varianza: Estimar la variabilidad de una población

Ejemplo

Vamos a analizar si un dado está equilibrado o no. Lanzamos el dado 60 veces y registramos cuántas veces sale cada número. La distribución Chi Cuadrado nos ayudará a determinar si las diferencias observadas son significativas o se deben al azar.

resultados_observados <- c(8, 12, 9, 11, 10, 10) 
caras <- c("1", "2", "3", "4", "5", "6")

resultados_esperados <- rep(10, 6)

chi_cuadrado <- sum((resultados_observados - resultados_esperados)^2 / resultados_esperados)

k <- length(resultados_observados) - 1

print(paste("Estadístico Chi Cuadrado calculado:", round(chi_cuadrado, 4)))
## [1] "Estadístico Chi Cuadrado calculado: 1"
print(paste("Grados de libertad (k):", k))
## [1] "Grados de libertad (k): 5"

El estadístico Chi Cuadrado nos indica qué tan grande es la diferencia entre lo que observamos y lo que esperábamos. Un valor alto sugiere que el dado podría no estar equilibrado.

valor_p <- pchisq(chi_cuadrado, df = k, lower.tail = FALSE)

print(paste("Valor p:", round(valor_p, 4)))
## [1] "Valor p: 0.9626"
if(valor_p > 0.05) {
  print("Conclusión: El dado parece estar equilibrado (no hay diferencia significativa)")
} else {
  print("Conclusión: El dado NO está equilibrado (hay diferencia significativa)")
}
## [1] "Conclusión: El dado parece estar equilibrado (no hay diferencia significativa)"
barplot(rbind(resultados_observados, resultados_esperados),
        beside = TRUE,
        names.arg = caras,
        col = c("blue", "coral"),
        main = "Lanzamiento de Dado: Observado vs Esperado",
        xlab = "Cara del Dado",
        ylab = "Frecuencia",
        ylim = c(0, 14),
        legend.text = c("Observado", "Esperado"),
        args.legend = list(x = "topright"))

Esta gráfica compara las frecuencias que observamos con las que esperaríamos si el dado fuera perfecto. Las diferencias pequeñas son normales por el azar.

x <- seq(0, 20)
y <- dchisq(x, df = k)

plot(x, y, 
     type = "l", 
     col = "red", 
     lwd = 3,
     main = paste("Distribución Chi Cuadrado (k =", k, ")"),
     xlab = "Valor Chi Cuadrado (χ²)",
     ylab = "Densidad")

x_critico <- seq(qchisq(0.95, df = k), 20)
y_critico <- dchisq(x_critico, df = k)
polygon(c(x_critico, rev(x_critico)), c(y_critico, rep(0, length(y_critico))), 
        col = rgb(1, 0, 0, 0.3), border = NA)

abline(v = chi_cuadrado, col = "blue", lwd = 2, lty = 2)
legend("topright", 
       legend = c("Distribución χ²", "Región crítica (5%)", "Nuestro valor"),
       col = c("red", rgb(1, 0, 0, 0.3), "blue"),
       lty = c(1, 1, 2),
       lwd = c(3, 10, 2))

La curva muestra la distribución Chi Cuadrado. Si nuestro valor calculado cae en la zona roja (región crítica), rechazamos la hipótesis de que el dado está equilibrado.

tabla_datos <- data.frame(
  Cara = caras,
  Observado = resultados_observados,
  Esperado = resultados_esperados,
  Diferencia = resultados_observados - resultados_esperados
)

print(tabla_datos)
##   Cara Observado Esperado Diferencia
## 1    1         8       10         -2
## 2    2        12       10          2
## 3    3         9       10         -1
## 4    4        11       10          1
## 5    5        10       10          0
## 6    6        10       10          0

Esta tabla resume los datos: muestra cuántas veces salió cada cara del dado, cuántas veces esperábamos que saliera, y la diferencia entre ambos valores.

DISTRIBUCIÓN DE POISSON

La distribución de Poisson es una herramienta importante para modelar sucesos discretos que ocurren en un intervalo fijo.Este supone que estos sucesos ocurren con una frecuencia media conocida e independientemente del tiempo transcurrido desde el último suceso.

Supongamos eventos donde solo hay dos posibles resultados, como por ejemplo éxito o fracaso. Ahora bien, si esos eventos son muy raros, y hacemos muchos intentos, pero cada uno con una probabilidad muy pequeña de una de las dos posibles respuestas, usamos la distribución de Poisson.

PROPIEDAD

Una de las propiedades más distintivas de la distribución de Poisson es que su media (valor esperado) es igual a su varianza. Ambos están representados por el parámetro λ (lambda), que denota el número medio de sucesos en el intervalo.

FÓRMULA

La fórmula se denota como:

\[ P(X=k)=\frac{\lambda ^{k}e^{-\lambda }}{k!}\]

  • λ: Representa la tasa promedio de ocurrencia de los eventos.

  • k: Número específico de eventos que se quieren calcular la probabilidad de que ocurra.

k representa el número exacto de eventos que se quieran evaluar, por ejemplo, si k=5 es la probabilidad de que ocurran esos 5 eventos exactamente.

VARIACIÓN DE LA FUNCIÓN

La forma de la distribución de Poisson varía en función del valor de λ:

  • Para valores pequeños de λ (λ < 10), la distribución es notablemente sesgada a la derecha. Esto significa que es común que haya pocos eventos, pero de vez en cuando pueden aparecer eventos grandes.

  • A medida que aumenta λ (λ > 10), la distribución se vuelve más simétrica y empieza a parecerse a una distribución normal. Esta simetría indica que los datos están distribuidos más uniformemente en torno a la media.

EJEMPLO

Consideremos un escenario donde en cierta zona del mundo durante una tormenta, caen en promedio 30 rayos por hora, y queremos calcular la probabilidad de que caigan justamente los 30 rayos en una hora.

Procedimiento:

Primero toca considerar los datos que nos dan, y asimilarlos con las variables de la distribución. Según las definiciones, λ corresponde a la cantidad de rayos que caen en promedio (λ=30). Ahora, k corresponde a la cantidad de rayos que queremos calcular, entonces k=30.

k<-30
lambda<-30
probab<-dpois(k,lambda)
print(paste("la probabilidad de que caigan los 30 rayos es de",probab*100,"%"))
## [1] "la probabilidad de que caigan los 30 rayos es de 7.26345264715915 %"
#Este apartado es para la tabla completa de probabilidades 

todok<-10:(1.7*lambda)
dfinal<-data.frame(Rayos=todok, Probabilidad= dpois(todok,lambda))
head(dfinal, 50)
##    Rayos Probabilidad
## 1     10 1.522702e-05
## 2     11 4.152825e-05
## 3     12 1.038206e-04
## 4     13 2.395861e-04
## 5     14 5.133987e-04
## 6     15 1.026797e-03
## 7     16 1.925245e-03
## 8     17 3.397491e-03
## 9     18 5.662486e-03
## 10    19 8.940767e-03
## 11    20 1.341115e-02
## 12    21 1.915879e-02
## 13    22 2.612562e-02
## 14    23 3.407689e-02
## 15    24 4.259611e-02
## 16    25 5.111534e-02
## 17    26 5.897924e-02
## 18    27 6.553248e-02
## 19    28 7.021338e-02
## 20    29 7.263453e-02
## 21    30 7.263453e-02
## 22    31 7.029148e-02
## 23    32 6.589826e-02
## 24    33 5.990751e-02
## 25    34 5.285957e-02
## 26    35 4.530820e-02
## 27    36 3.775683e-02
## 28    37 3.061365e-02
## 29    38 2.416867e-02
## 30    39 1.859128e-02
## 31    40 1.394346e-02
## 32    41 1.020253e-02
## 33    42 7.287524e-03
## 34    43 5.084319e-03
## 35    44 3.466581e-03
## 36    45 2.311054e-03
## 37    46 1.507209e-03
## 38    47 9.620485e-04
## 39    48 6.012803e-04
## 40    49 3.681308e-04
## 41    50 2.208785e-04
## 42    51 1.299285e-04

Aquí se pueden ver las probabilidades por cantidad de rayos que pueden caer en una hora.

Gráfica:

# Gráfica del escenario de ejemplo

plot(todok, dfinal$Probabilidad,
     type = "h", lwd = 3, lend = 1,
     xlab = "Número de rayos en una hora (x)",
     ylab = "Probabilidad P(X = x)",
     main = paste("Distribución Poisson (λ =", lambda, ")"),
     col = "red",
     border="black")

abline(v = k, col = "blue", lwd = 2)
points(k, probab, pch = 19, col = "yellow")

  • La línea vertical azul marca el punto donde la cantidad de rayos es la que quisimos calcular.

  • El punto amarillo indica la probabilidad de que estos 30 rayos caigan en una hora.

DISTRIBUCIÓN EXPONENCIAL

La distribución exponencial es una distribución probabilística continua que modela el tiempo entre sucesos en el que estos ocurren de continua e independiente. Los valores de una variable aleatoria exponencial se presentan de manera que hay menos valores grandes y más valores pequeños.

PROPIEDAD

La distribución exponencial tiene varias propiedades únicas que la hacen especialmente útil en aplicaciones del mundo real:

  • La propiedad sin memoria: Ésta es quizá la característica más distintiva de la distribución exponencial. Significa que el comportamiento futuro del sistema no depende de su historia pasada.

  • Formulación matemática: La distribución exponencial está definida por un único parámetro λ (lambda), que representa el parámetro de la tasa. Veamos sus componentes matemáticos clave.

FÓRMULAS

La distribución exponencial contiene variedad de fórmulas clave, y son las siguientes:

Función de Densidad (pdf):

\[ f(x)=\lambda e^{-\lambda x},\forall x\geq 0\]

Función de Distribución Acumulada:

\[g(x)=1-e^{-\lambda x},\forall x\geq 0\]

Función de Supervivencia:

\[s(x)=P(X>x)=e^{-\lambda x}\]

Función de Riesgo:

\[h(x)=\frac{f(x)}{s(x)} = \lambda \to (constante)\]

Media

\[Media=\frac{1}{\lambda }\]

donde:

  • x es la variable aleatoria (normalmente representa el tiempo).
  • λ es el parámetro de la tasa (λ > 0).

EJEMPLO

El tiempo que las parejas dedican a comprar tarjetas de aniversario se puede modelar mediante una distribución exponencial con un tiempo promedio de ocho minutos. Escriba la distribución, indique la función de densidad de probabilidad y grafíquela.

Procedimiento

  • Primero toca encontrar el parámetro lambda: \[\lambda =\frac{1}{Media}=\frac{1}{8}=0.125\]

  • Luego toca reemplazar el parámetro lambda en la función de densidad: \[f(x)=0.125 e^{-0.125x}\]

  • Ahora, con esto, se puede crear la gráfica del ejercicio

lambda <- 1/8

# Esta es la función de densidad de probabilidad
x <- seq(0,60, by=0.1)
y <- dexp(x, rate = lambda)

df <- data.frame(
  Minutos   = x,
  Densidad  = y)

print(head(df, 15))
##    Minutos  Densidad
## 1      0.0 0.1250000
## 2      0.1 0.1234472
## 3      0.2 0.1219137
## 4      0.3 0.1203993
## 5      0.4 0.1189037
## 6      0.5 0.1174266
## 7      0.6 0.1159679
## 8      0.7 0.1145274
## 9      0.8 0.1131047
## 10     0.9 0.1116997
## 11     1.0 0.1103121
## 12     1.1 0.1089418
## 13     1.2 0.1075885
## 14     1.3 0.1062520
## 15     1.4 0.1049321

En este apartado se saca una tabla con los 15 primeros valores done se relaciona el tiempo en un minuto exacto densidad de probabilidad que la distribución le asigna.

Gráfica:

plot(df$Minutos, df$Densidad,
     type = "l", lwd = 3, col = "blue",
     main = "Distribución Exponencial\n(Tiempo de compra de tarjetas de aniversario)",
     xlab = "Minutos",
     ylab = "Densidad f(x)")

#esto es para sombrear el área bajo la curva

polygon(c(min(x), x, max(x)),
        c(0,      y, 0),
        col="lightblue")

lines(df$Minutos, df$Densidad, lwd=3, col="blue")

  • En esta gráfica se observa que los valores más altos de densidad están concentrados en los primeros minutos (cerca de 0). Esto significa que es más probable que las parejas tarden un tiempo corto en comprar la tarjeta. A medida que el tiempo aumenta, la función de densidad se va acercando a cero de forma rápida, indicando que duraciones largas son mucho menos frecuentes.