#Realizo carga de librerias y describo su funcion:
library(readxl)      # Importar datos en formato Excel
library(dplyr)       # Manipulación y resumen de datos
library(ggplot2)     # Gráficos profesionales y personalizados
library(moments)     # Cálculo de asimetría (skewness) y curtosis (kurtosis)
library(nortest)     # Pruebas de normalidad (Shapiro, Lilliefors, etc.)
library(scales)      # Escalas y formato de ejes en gráficos
library(gridExtra)   # Para combinar múltiples gráficos
library(knitr)       # Presentación y tablas formateadas
library(kableExtra)  # Tablas en HTML
cat("confirmado todos los paquetes ya lo tengo instalados y cargados correctamente.\n")
## confirmado todos los paquetes ya lo tengo instalados y cargados correctamente.

Introducción teórica sobre la Distribución normal, un ejemplo El objetivo es poder comprender cómo funcionan las funciones dnorm() y pnorm() en una población hipotética.

# voy a suponer deacuerdo al texto guía en word ,que X ~ N(170,12)
dnorm(178, mean = 170, sd = 12) # densidad para x=178
## [1] 0.02662067
x <- seq(165, 175, by = 0.5)
dnorm(x, mean = 170, sd = 12)   # secuencia de densidades
##  [1] 0.03048103 0.03098792 0.03144860 0.03186077 0.03222234 0.03253150
##  [7] 0.03278664 0.03298647 0.03312996 0.03321634 0.03324519 0.03321634
## [13] 0.03312996 0.03298647 0.03278664 0.03253150 0.03222234 0.03186077
## [19] 0.03144860 0.03098792 0.03048103
curve(dnorm(x, 170, 12),
      xlim = c(130, 210),
      col = "blue",
      lwd = 2,
      xlab = "x", ylab = "f(x)",
      main = "Función de Densidad N(170,12)")

En este primer ejercicio he trabajado con una distribución normal teórica, en la cual se supone que la variable 𝑋 sigue una distribución N(170,12),es decir, con una media de 170 unidades y una desviación estándar de 12 unidades.

Al calcular 𝑓(178) con la función dnorm(178, mean=170, sd=12), obtuve el valor 0.0266, lo cual representa la altura de la función de densidad de probabilidad en ese punto, además aclaro que estos valores no son probabilidades directas, sino densidades, que indican que tan concentrados están los datos alrededor de un valor específico, por tanto cuanto mayor es la densidad, mayor es la frecuencia esperada de observaciones cercanas a ese punto.

Luego,al generar una secuencia de valores con x <- seq(165,175,by=0.5) y aplicar dnorm(x, mean=170, sd=12), obtuve una serie de densidades que fluctúan alrededor de 0.03, lo que indica que en torno a la media (170) se está concentrando la mayor parte de la probabilidad.

Considero que esta salida numérica confirma la propiedad fundamental de la distribución normal,donde la mayor densidad se presenta cerca de la media, mientras que los valores se reducen progresivamente hacia los extremos.

Al graficar la función con curve(dnorm(x,170,12)), observo que la curva adopta la forma característica de campana simétrica (azul), donde el eje central corresponde al valor medio de 170, por lo que esta simetría me permite ver,que los valores por debajo y por encima de la media tienen igual probabilidad, y que la dispersión está determinada por la desviación estándar (±12).

Considero que en esta población con estos parámetros, la mayoría de las observaciones se ubicarían aproximadamente entre 158 y 182, mientras que valores más alejados de la media serían poco frecuentes.

Cálculo de probabilidades con pnorm() Voy a calcular áreas bajo la curva, que representan probabilidades acumuladas.

pnorm(180, 170, 12)  # P(X <= 180)
## [1] 0.7976716
1 - pnorm(168, 170, 12)  # P(X > 168)
## [1] 0.5661838
pnorm(168, 170, 12) - pnorm(150, 170, 12) # P(150 <= X <= 168)
## [1] 0.3860258

Interpretación de los resultados del cálculo de probabilidades con pnorm()

En esta parte del ejercicio, apliqué la función pnorm() para calcular áreas bajo la curva normal, que muestra las probabilidades acumuladas hasta un determinado valor de la variable, pues la función pnorm() indica la probabilidad de que una observación aleatoria \(X\) tome un valor menor o igual al especificado, considerando una distribución normal con media y desviación estándar conocidas. P(X ≤ 180) = 0.7976 Este resultado significa que aproximadamente el 79.8% de las observaciones se encuentran por debajo de 180 unidades, por lo cual considero que este valor es coherente con la forma de la curva normal, porque 180 está por encima de la media (170), y por tanto la probabilidad acumulada es mayor que 0.5.

-Observo además hay una alta probabilidad de encontrar valores menores o iguales a 180, lo cual me indica que este punto está dentro del rango típico de variabilidad del fenómeno. P(X > 168) = 0.5662 En este caso, la probabilidad de que la variable sea mayor que 168 es 56.6%, lo cual creo que corresponde al área a la derecha de 168, obtenida como 1 - pnorm(168, 170, 12).
Observo además que 168 es un valor ligeramente menor que la media (170), por lo que la probabilidad hacia su derecha está cercana al 50%, de hecho más de la mitad de los casos se ubican por encima de 168, lo que confirma que este valor pertenece a la zona central de la distribución.

P(150 ≤ X ≤ 168) = 0.3860

Aquí calculé la probabilidad de que \(X\) se encuentre entre 150 y 168, que resultó ser 38.6%, y que se obtiene restando las áreas acumuladas así: -pnorm(168,170,12) - pnorm(150,170,12).
Observo que este intervalo cubre una fracción intermedia de la curva, hacia el lado izquierdo de la media, lo cual explica por qué la probabilidad no es tan alta, además la mayor densidad sigue concentrándose alrededor del valor medio, y que se ve que el área disminuye progresivamente hacia los extremos.

Distribución de Normalidad en R

Para determinar si un conjunto de datos sigue una distribución normal, existen varias estrategias complementarias:

Normalidad en R

En esta práctica voy a trabajar según el texto guía de word, con la base de datos BD Practica R_Endocrinox-1.xlsxusando la variable CINTURA.
El propósito es comprobar si sus valores se distribuyen de forma normal o si presentan desviaciones que indiquen asimetría o presencia de valores atípicos.

Dataset <- read_excel("BD Practica R_Endocrino-1.xlsx", sheet = "BD_Practica")

**para aproximarme a evaluar la normalidad, voy a observar la forma de la distribución a través de un histograma y un diagrama de caja.

ggplot(Dataset, aes(x = CINTURA)) +
geom_histogram(binwidth = 5, fill = "lightyellow", color = "black") +
labs(title = "Histograma de la variable CINTURA", x = "Cintura", y = "Frecuencia")

ggplot(Dataset, aes(y = CINTURA)) +
geom_boxplot(fill = "pink") +
labs(title = "Diagrama de caja de la variable CINTURA", y = "Cintura")

Interpretación del histograma

Al observar el histograma de la variable CINTURA, noto que la forma de la distribución es aproximadamente simétrica, con un mayor número de observaciones concentradas entre los valores 90 y 105 cm.
Observo que la curva presenta una ligera inclinación hacia la derecha (asimetría positiva leve), ya que existen algunos valores altos cercanos a 120 o más, aunque en baja frecuencia, lo cual considero que la mayoría de los individuos tienen medidas de cintura dentro de un rango central y solo unos pocos presentan valores más elevados.

Me parece que a pesar de esa ligera asimetría, la distribución no muestra una desviación pronunciada ni una concentración extrema hacia un solo lado, por lo que el patrón visual es bastante compatible con una distribución normal** aproximada, asi que esta imagen visualmente, me indica que la variable CINTURA cumple con uno de los supuestos iniciales para el uso de pruebas paramétricas.

Interpretación del diagrama de caja

El diagrama de caja confirma la tendencia observada en el histograma, pues observo que la mediana (línea central de la caja) se encuentra ligeramente por debajo del centro del rango intercuartílico, lo que sugiere que corresponde,a una distribución levemente sesgada a la derecha, pero aún dentro de la normalidad aceptable.

También se identifican algunos valores atípicos (outliers) por encima de los 120 cm, representados por puntos aislados, y que podrían corresponder a individuos con circunferencias abdominales más elevadas, pero no parecen alterar de forma significativa la estructura general de la distribución.

Considero que la ausencia de asimetría marcada y la posición equilibrada de la mediana dentro de la caja, conducen a la idea de que la variable CINTURA se comporta de manera aproximadamente normal, por lo que los datos parecen cumplir con el supuesto de normalidad, aunque sería útilconfirmar con pruebas estadísticas como (Shapiro-Wilk y Kolmogorov-Smirnov).

Cálculo de estadísticos de forma de la variable CINTURA

mean(Dataset$CINTURA, na.rm = TRUE)
## [1] 96.24
median(Dataset$CINTURA, na.rm = TRUE)
## [1] 97
skewness(Dataset$CINTURA, na.rm = TRUE)
## [1] 0.2694395
kurtosis(Dataset$CINTURA, na.rm = TRUE)
## [1] 3.299185

Al analizar los valores obtenidos:

Observo que la media y la mediana son casi iguales,por lo que considero que la distribución de la variable es aproximadamente simétrica, sin sesgos marcados hacia la izquierda o derecha.

El valor de asimetría positiva leve (0.27) indica que existen algunos valores más altos que la media, pero no en exceso,y me parece que esto representa una ligera cola hacia la derecha, aunque dentro del rango que se considera normal (entre -0.5 y +0.5).

Por otra parte, la curtosis cercana a 3 (3.30) me indica que la distribución tiene una forma mesocúrtica, es decir, muy parecida a la curva normal,que consiste en una concentración moderada de valores en torno a la media y sin colas extremas.

# Histograma con curva de densidad, media y mediana a color
ggplot(Dataset, aes(x = CINTURA)) +
  geom_histogram(aes(y = ..density..),
                 binwidth = 5, fill = "lightyellow", color = "black", alpha = 0.6) +
  geom_density(color = "darkred", size = 1.2) +
  geom_vline(aes(xintercept = mean(CINTURA, na.rm = TRUE)),
             color = "blue", linetype = "dashed", size = 1) +
  geom_vline(aes(xintercept = median(CINTURA, na.rm = TRUE)),
             color = "lightgreen", linetype = "dotted", size = 1.2) +
  labs(title = "Distribución de CINTURA con media y mediana",
       x = "Cintura (cm)", y = "Densidad") +
  theme_minimal(base_size = 13)

Interpretación del histograma y la función de densidad

En esta gráfica,puedo ver que el eje x representa los valores de la variable CINTURA (en cm) y el eje y indica la densidad de probabilidad, que refleja la concentración o frecuencia relativa de los datos en cada intervalo, pues a diferencia de una frecuencia absoluta, la densidad se interpreta como la proporción estandarizada de observaciones, de forma que el área total bajo la curva equivale a 1 (100%).

Observo que la curva de densidad (línea roja) alcanza su mayor altura cerca de los 95–100 cm, lo cual significa que la mayoría de los valores de cintura se concentran alrededor de ese rango; y a medida que se aleja de este punto, la densidad disminuye gradualmente hacia ambos lados, mostrando que los valores muy bajos o muy altos son menos frecuentes.

Considero que esta representación es útil porque traduce la distribución empírica de los datos a una escala de probabilidad continua, permitiendo comparar su forma con la distribución normal teórica, ya que en este caso, la curva presenta una forma suavemente simétrica y unimodal, con una leve extensión hacia la derecha,entonces coincide con la asimetría positiva leve (skewness ≈ 0.27) calculada antes.

Sin embargo me gustaría ver, cómo la densidad se relaciona con la probabilidad de que mi variable esté dentro de un intervalo determinado.

# Voy a crear un rango de valores
x <- seq(min(Dataset$CINTURA, na.rm = TRUE),
         max(Dataset$CINTURA, na.rm = TRUE),
         length = 100)

# Estimo la densidad
densidad <- density(Dataset$CINTURA, na.rm = TRUE)

# Crear un rango de interés (por ejemplo, entre 85 y 105 cm)
rango <- c(85, 105)

# Grafico la densidad con área sombreada
plot(densidad,
     main = "Función de Densidad de CINTURA con área sombreada",
     xlab = "Cintura (cm)", ylab = "Densidad",
     col = "blue", lwd = 2)

# Sombrear el área bajo la curva entre 85 y 105 cm
polygon(densidad$x[densidad$x >= rango[1] & densidad$x <= rango[2]],
        densidad$y[densidad$x >= rango[1] & densidad$x <= rango[2]],
        col = "lightyellow", border = NA)

# Líneas verticales que delimitan el intervalo
abline(v = rango, col = "black", lty = 2, lwd = 1.5)

Interpretación del concepto de densidad como probabilidad

En esta gráfica he ilustrado la función de densidad de probabilidad de la variable CINTURA, donde el área sombreada representa la probabilidad de que un valor de cintura se encuentre entre 85 y 105 cm, que corresponde a la región donde se concentra la mayor parte de las observaciones.

Por ejemplo,la forma de la curva se asemeja a la distribución normal, con un pico central alrededor de los 95–100 cm, lo que confirma la tendencia a la simetría observada anteriormente, y el área azul bajo la curva indica la proporción acumulada de observaciones** dentro de ese intervalo, asi que, cuanto mayor es el área, mayor es la probabilidad de encontrar individuos con medidas de cintura en ese rango.

Prueba de Normalidad de Shapiro–Wilk El test de Shapiro–Wilk es una prueba estadística diseñada para evaluar si una variable sigue una distribución normal,fue propuesto por Samuel Shapiro y Martin Wilk (1965) y es una de las pruebas más potentes para muestras pequeñas o moderadas (n < 5000), donde la hipótesis que evalúa es: H_0 (Hipótesis nula):Los datos provienen de una distribución normal. H_1 (alterna):Los datos no provienen de una distribución normal.

Esta prueba coinsidero según la literatura, que es más sensible y robusta que otras (como Kolmogorov-Smirnov o Anderson-Darling) cuando el tamaño de muestra es menor a 5000 observaciones, como sucede en esta base de Endocrino analizada, pues me ayuda a evaluar tanto la simetría como la forma de la distribución (picos y colas),y no solo la distancia respecto a una curva normal.

shapiro.test(Dataset$CINTURA)
## 
##  Shapiro-Wilk normality test
## 
## data:  Dataset$CINTURA
## W = 0.97987, p-value = 0.1299

Prueba de Normalidad de Shapiro–Wilk

El estadístico W = 0.9867 y el valor p = 0.1299 me indican que NO hay evidencia suficiente para rechazar la hipótesis nula de normalidad, dado que p > 0.05.

considero que con este resultado de la variable CINTURA si corresponde a una distribución aproximadamente normal, además esto respalda los hallazgos visuales previos (histograma, densidad), donde los datos mostraron simetría y ausencia de valores extremos relevantes.

*Me parece que los datos de CINTURA presentan un comportamiento estadísticamente compatible con la normalidad, lo que si me permite aplicar pruebas paramétricas en los análisis posteriores.

qqnorm(Dataset$CINTURA,
       main = "Gráfico QQ para la variable CINTURA",
       col = "lightgreen", pch = 19)
qqline(Dataset$CINTURA, col = "purple", lwd = 2)

Interpretación del gráfico QQ

En este gráfico quise comparar los cuantiles teóricos de una distribución normal (en el eje X) con los cuantiles muestrales observados de la variable CINTURA (en el eje Y), donde la línea violeta representa la posición que deberían tener los puntos si los datos siguieran una distribución perfectamente normal, por lo que Observo que los puntos verdes se alinean de manera bastante cercana a la línea central, especialmente en la parte media de la distribución, lo que me indica que la mayor parte de los valores de cintura se comportan como se esperaría bajo una distribución normal.

Hacia los extremos (colas), algunos puntos se separan ligeramente de la línea morada, lo que refleja una leve asimetría positiva (cola derecha algo más larga), ya observada en el histograma, sin embargo, esta desviación es mínima y no altera de forma significativa la normalidad global de los datos.

Considero que la tendencia general de alineamiento me confirma que los valores de CINTURA siguen un patrón de distribución normal, coherente con el resultado del test de Shapiro–Wilk (p = 0.1299 > 0.05),por tanto, la variable cumple con el supuesto de normalidad, y las pequeñas diferencias en las colas me parece que son variaciones naturales dentro de la muestra.

Prueba de Normalidad Kolmogorov–Smirnov (Lilliefors) El test de Kolmogorov–Smirnov (K–S) me ayuda a comparar la distribución acumulada observada de los datos con la distribución teórica esperada (en este caso, una normal con igual media y desviación estándar), pues el objetivo es que pueda detectar si existen diferencias significativas entre ambas curvas, sin embargo, cuando los parámetros de la normal (media y desviación estándar) se estiman a partir de la muestra, se usa la corrección de Lilliefors.

Por eso usaré en R, la función lillie.test() del paquete nortest, que ajusta la prueba K–S clásica para que sea válida en contextos como este. Hipótesis a evaluar así: H_0:Los datos provienen de una distribución normal. H_1:Los datos no provienen de una distribución normal.

library(nortest)

lillie.test(Dataset$EDAD)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  Dataset$EDAD
## D = 0.10811, p-value = 0.005808
library(ggplot2)

ggplot(Dataset, aes(x = EDAD)) +
  stat_ecdf(geom = "step", color = "#4CAF50", linewidth = 1.2) +  # Verde esperanza
  stat_function(fun = pnorm,
                args = list(mean = mean(Dataset$EDAD, na.rm = TRUE),
                            sd = sd(Dataset$EDAD, na.rm = TRUE)),
                color = "#F72585", linewidth = 1.2, linetype = "dashed") +
  labs(title = "Comparación de distribución empírica vs teórica",
       subtitle = "Test de Kolmogorov–Smirnov (Lilliefors) para normalidad",
       x = "Edad (años)", y = "Probabilidad acumulada") +
  theme_minimal(base_size = 13) +
  theme(plot.title = element_text(face = "bold", color = "#3A0CA3"),
        plot.subtitle = element_text(color = "#4361EE"),
        axis.title = element_text(color = "#14213D"),
        panel.grid.minor = element_blank(),
        panel.grid.major.y = element_line(color = "#F0EFEB"))

Interpretación del gráfico del Test de Kolmogorov–Smirnov (Lilliefors) En este gráfico he comparado dos funciones de distribución acumulada,donde la curva verde representa la distribución empírica de la variable EDAD (es decir, la forma real en que se acumulan los valores observados en la muestra), mientras que la línea fucsia discontinua me está representando la distribución teórica normal esperada si los datos siguieran una distribución normal perfecta. Visualmente,se ve que la curva verde se desvía de la línea fucsia en algunos tramos intermedios, lo que me indica de diferencias entre la probabilidad acumulada observada y la esperada bajo normalidad, además estas diferencias se hacen más notorias en la zona media de la distribución, donde las edades observadas se acumulan más rápido que lo predicho por la normal teórica. El color verde del trazado empírico me permite identificar el comportamiento real de los datos, mientras que la línea fucsia me sirve como referencia teórica para la comparación, donde la distancia entre ambas curvas es precisamente la que el test de Kolmogorov–Smirnov con corrección de Lilliefors cuantifica para evaluar la normalidad.

Gráficos de normalidad

A continuación voy a presedntar dos visualizaciones complementarias para evaluar la normalidad de la variable EDAD, donde el gráfico Q-Q sirve para los cuantiles observados vs teóricos y la función de distribución acumulada empírica (ECDF) comparada con la teórica.

# Gráfico Q-Q para evaluar visualmente la normalidad
ggplot(Dataset, aes(sample = EDAD)) +
  stat_qq(color = "#4CA", alpha = 0.7) +
  stat_qq_line(color = "black", linewidth = 1) +
  labs(title = "Gráfico Q-Q de la variable EDAD",
       subtitle = "Comparación de cuantiles observados vs teóricos",
       x = "Cuantiles teóricos",
       y = "Cuantiles de la muestra") +
  theme_minimal(base_size = 12)

El gráfico Q–Q (cuantiles–cuantiles)me permite evaluar visualmente si los datos siguen una distribución normal teórica, por ejemplo observo que cada punto verde representa un cuantil observado en la muestra, mientras que la línea negra representa los cuantiles teóricos bajo normalidad.

Interpretación:

En el tramo central del gráfico, los puntos siguen de manera bastante cercana la línea negra,lo que indica que la mayoría de los valores de EDAD se distribuyen aproximadamente de forma normal,sin embargo, detecto que hay desviaciones leves en las colas, especialmente en los valores más bajos (izquierda) y en los más altos (derecha),lo que sugiere una ligera asimetría o cola más pesada respecto a la distribución normal perfecta.

Esta ligera desviación concuerda con el resultado del test de Lilliefors (p = 0.0058),pues allí rechacé la hipótesis de normalidad (p < 0.05),dado que indica que, aunque la variable tiene un comportamiento casi normal,estadísticamente no se ajusta completamente a la normalidad teórica, esto entonces si justifica complementar la verificación con la prueba de Kolmogorov–Smirnov y la comparación empírica vs teórica (gráfico ECDF).

# Comparación de distribución empírica vs teórica

ggplot(Dataset, aes(x = EDAD)) +
stat_ecdf(geom = "step", color = "yellow", linewidth = 1) +
stat_function(fun = pnorm,
args = list(mean = mean(Dataset$EDAD, na.rm = TRUE),
sd = sd(Dataset$EDAD, na.rm = TRUE)),
color = "#E91E63", linetype = "dashed", linewidth = 1) +
labs(title = "Comparación de distribución empírica vs teórica",
subtitle = "Test de Kolmogorov–Smirnov (Lilliefors) para normalidad",
x = "Edad (años)",
y = "Probabilidad acumulada") +
theme_minimal(base_size = 12) +
theme(plot.title = element_text(face = "bold", color = "darkred"),
plot.subtitle = element_text(color = "blue"))

Interpretación del gráfico de distribución empírica vs teórica

En el gráfico he comparado dos curvas, la amarilla que representa la distribución acumulada empírica de los datos de EDAD, mientras que la línea fucsia discontinua muestra la distribución acumulada teórica esperada bajo una distribución normal, por lo que se observa que ambas curvas siguen trayectorias similares en el rango central, aunque con pequeñas diferencias en los extremos.

Estas desviaciones coinciden con el resultado del test de Kolmogorov–Smirnov (p = 0.0058), donde he rechazado la hipótesis de normalidad, por tanto, de manera visual confirmo que la variable EDAD muestra un comportamiento cercano a la normalidad,pero con ligeras discrepancias en las colas de la distribución, posiblemente asociadas a asimetría o presencia de valores extremos. Pruebas de Igualdad de Varianzas Para determinar si la dispersión de los valores de CINTURA es similar entre hombres y mujeres, aplicaré dos pruebas complementarias, la Prueba F de Fisher y la Prueba de Bartlett, pues ambas evalúan si las varianzas de los grupos son iguales, aunque parten de supuestos ligeramente distintos.

Prueba F (dos grupos) En esta prueba voy a comparar las varianzas de dos grupos a través del cociente: \[ F = \frac{s_1^2}{s_2^2} \]

Donde \(s_1^2\) y \(s_2^2\) son las varianzas de cada grupo, y si las varianzas son iguales, el cociente se aproxima a 1, por lo cual un valor-p menor a 0.05 indica que las varianzas son significativamente diferentes.

# Cálculo de prueba F para igualdad de varianzas entre sexos
prueba_F <- var.test(CINTURA ~ SEXO, data = Dataset)
prueba_F
## 
##  F test to compare two variances
## 
## data:  CINTURA by SEXO
## F = 0.68996, num df = 42, denom df = 56, p-value = 0.2111
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.3937779 1.2378417
## sample estimates:
## ratio of variances 
##          0.6899563

Interpretación de la prueba F

La prueba F me sirve para comparar las varianzas de la variable CINTURA entre hombres y mujeres.El valor del estadístico fue F = 0.68996 con un valor p = 0.2111, mayor al umbral de significancia de 0.05. Esto me indica que no existen diferencias estadísticamente significativas en la dispersión de los valores de CINTURA entre los sexos, además, el intervalo de confianza al 95% (0.39 – 1.24) incluye el valor 1,no significativo, lo que respalda la igualdad de varianzas asumida en la hipótesis nula.

Visualmente, esta interpretación puede corroborarse en el boxplot de la variable CINTURA por SEXO,donde las alturas de las cajas y la extensión de los bigotes son similares entre grupos.

ggplot(Dataset, aes(x = SEXO, y = CINTURA, fill = SEXO)) +
geom_boxplot(alpha = 0.7, color = "black") +
scale_fill_manual(values = c("Femenino" = "#FFD54F", "Masculino" = "#81C784")) + # Amarillo y verde pastel
labs(title = "Comparación de la dispersión de la variable CINTURA por SEXO",
subtitle = "Evaluación visual de la igualdad de varianzas (Pruebas F y Bartlett)",
x = "Sexo", y = "Cintura (cm)") +
theme_minimal(base_size = 12) +
theme(plot.title = element_text(color = "black", face = "bold", size = 14),
plot.subtitle = element_text(color = "darkorange"),
axis.text = element_text(color = "black"),
axis.title = element_text(color = "black"),
legend.position = "none")

Interpretación del boxplot de la variable CINTURA por SEXO

El gráfico muestra la comparación de la variable CINTURA (cm) entre los grupos de sexo, donde el grupo femenino (en amarillo pastel) y el masculino (en verde pastel) presentan cajas con tamaños y rangos intercuartílicos muy similares,lo que me indica una dispersión comparable de los datos entre ambos grupos, además, noto algunos valores atípicos en el grupo femenino, aunque no afectan de forma considerable la homogeneidad general.

Las medianas de ambos grupos están próximas (alrededor de 97–100 cm), reforzando que las varianzas son similares, por lo que esta observación visual coincide con los resultados de la prueba F (p = 0.2111) y la prueba de Bartlett,
donde no mostraron diferencias significativas en la variabilidad de la cintura entre sexos, por tanto,puedo asumir que las varianzas son homogéneas para posteriores comparaciones estadísticas.

Prueba de Bartlett para homogeneidad de varianzas

La prueba de Bartlett me permite evaluar si varias muestras provienen de poblaciones con la misma varianza, por lo que la hipótesis nula (H₀) plantea que las varianzas son iguales, mientras que la alternativa (H₁) indica que al menos una difiere.

Para esta prueba requiero normalidad de los datos, por lo que según la literatura, se recomienda aplicarla después de confirmar que la variable sigue una distribución aproximadamente normal, tal como lo he comprobado con las pruebas de Shapiro-Wilk o Lilliefors.

Hipótesis - H₀: Las varianzas de los grupos son iguales.
- H₁: Al menos una varianza difiere significativamente.

bartlett_result <- bartlett.test(CINTURA ~ SEXO, data = Dataset)

# resultados
bartlett_result
## 
##  Bartlett test of homogeneity of variances
## 
## data:  CINTURA by SEXO
## Bartlett's K-squared = 1.5984, df = 1, p-value = 0.2061

El test de Bartlett la apliqué a la variable CINTURA para comparar la homogeneidad de varianzas entre los grupos Masculino y Femenino.

El resultado fue K² = 1.5984, gl = 1, p = 0.2061

Dado que el valor p es mayor a 0.05, no rechazo la hipótesis nula,por lo que las varianzas entre los grupos las considero iguales.
Este resultado me indica que existe homogeneidad de varianzas, cumpliendo así uno de los supuestos requeridos para la aplicación de pruebas paramétricas como la prueba t de Student.

ggplot(Dataset, aes(x = SEXO, y = CINTURA, fill = SEXO)) +
geom_boxplot(alpha = 0.8, color = "black", outlier.color = "purple", outlier.shape = 21) +
scale_fill_manual(values = c("Femenino" = "pink", "Masculino" = "lightblue")) + # amarillo y verde pastel
labs(
title = "Evaluación visual de la homogeneidad de varianzas",
subtitle = "Prueba de Bartlett aplicada a la variable CINTURA por SEXO",
x = "Sexo", y = "Cintura (cm)"
) +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(color = "black", face = "bold", size = 14),
plot.subtitle = element_text(color = "darkgreen", size = 11),
axis.title = element_text(color = "black"),
axis.text = element_text(color = "black"),
panel.grid.minor = element_blank(),
legend.position = "none"
)

Interpretación del gráfico de homogeneidad de varianzas

En el gráfico observo la dispersión de la variable CINTURA (cm) según el sexo,y representada con colores diferenciados, donde el grupo femenino se muestra en rosa pastel, y el grupo masculino en azul pastel,donde se puede visualizar con claridad la forma y amplitud de cada caja, así como la ubicación de la mediana (línea negra central).

La altura similar de las cajas significa que ambos grupos presentan una variabilidad comparable,donde la dispersión de los valores de cintura es semejante entre mujeres y hombres. Las medianas (líneas negras dentro de las cajas) están próximas entre sí, alrededor de 95–100 cm, lo que me indica que se trata de una distribución homogénea.

En el grupo femenino (rosa) identifico algunos valores atípicos representados por puntos violetas, ubicados por encima de los 120 cm, sin embargo, estos no alteran de forma relevante la homogeneidad general, pues la amplitud intercuartílica se mantiene parecida a la del grupo masculino.

Estos hallazgos coinciden con el resultado de la Prueba de Bartlett,
donde p = 0.2061 (> 0.05), lo que indica que no existen diferencias estadísticamente significativas en las varianzas, por tanto, asumo que los grupos tienen varianzas homogéneas, cumpliendo el supuesto de igualdad de varianzas necesario para aplicar comparaciones paramétricas, como la prueba t de Student en el siguiente paso del análisis.

Prueba t de Student, para hacer comparación de medias de CINTURA por SEXO

La prueba t de Student para muestras independientes se utiliza para determinar si existe una diferencia significativa entre las medias de dos grupos (en este caso, Femenino y Masculino), por lo que antes de aplicarla, he comprobado que la variable CINTURA cumple los supuestos de normalidad (Shapiro-Wilk) y homogeneidad de varianzas (Prueba de Bartlett).

Cálculo de la prueba t Cálculo de la prueba t de Student para comparación de medias entre sexos Variable dependiente: CINTURA Variable independiente: SEXO **asumo igualdad de varianzas (p > 0.05 según la prueba de Bartlett)

prueba_t <- t.test(CINTURA ~ SEXO, data = Dataset, var.equal = TRUE)

# Mostrar resultados de la prueba
prueba_t
## 
##  Two Sample t-test
## 
## data:  CINTURA by SEXO
## t = 2.9724, df = 98, p-value = 0.003719
## alternative hypothesis: true difference in means between group Femenino and group Masculino is not equal to 0
## 95 percent confidence interval:
##   2.436483 12.225288
## sample estimates:
##  mean in group Femenino mean in group Masculino 
##               100.41860                93.08772
library(ggplot2)

ggplot(Dataset, aes(x = SEXO, y = CINTURA, fill = SEXO)) +
  geom_boxplot(alpha = 0.6, color = "black") +
  scale_fill_manual(values = c("#FFB347", "#77DD77")) +
  labs(
    title = "Comparación de medias de CINTURA por SEXO",
    subtitle = "Visualización complementaria a la prueba t de Student (varianzas iguales)",
    x = "Sexo",
    y = "Cintura (cm)"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", size = 14, color = "black"),
    plot.subtitle = element_text(size = 11, color = "darkorange3"),
    axis.text = element_text(color = "black"),
    axis.title = element_text(color = "black"),
    legend.position = "none"
  )

Interpretación de la prueba t de Student

La prueba t de Student para muestras independientes la apliqué para comparar las medias de la variable CINTURA entre los grupos Femenino y Masculino.

Los resultados fueron:

Dado que el valor p = 0.0037 es menor que el nivel de significancia convencional (α = 0.05), por lo cual rechazo la hipótesis nula** que plantea que las medias de CINTURA son iguales entre sexos, esto me indica que existe una diferencia estadísticamente significativa en los valores promedio de cintura entre hombres y mujeres.
El grupo Femenino presenta una media de cintura mayor que el grupo Masculino, y visualmente, el diagrama de cajas me confirma esta diferencia, mostrando que las mujeres tienen una mediana y un rango intercuartílico ligeramente superiores, con algunos valores atípicos (outliers) hacia los extremos superiores.

Prueba t de Welch

La prueba t de Welch según la literatura, es una variante de la prueba t de Student que no asume igualdad de varianzas entre los grupos, y se utiliza cuando las pruebas previas (como Bartlett o F de Fisher) indican que las varianzas son significativamente diferentes (p < 0.05) o cuando se sospecha que los grupos tienen tamaños de muestra distintos o dispersión desigual.

En mi análisis, aunque las pruebas de homogeneidad (Bartlett y F) no mostraron diferencias significativas, incluyo la prueba de Welch para verificar la robustez de los resultados, ya que esta versión ajusta automáticamente los grados de libertad.

prueba_t_welch <- t.test(CINTURA ~ SEXO, data = Dataset, var.equal = FALSE)
prueba_t_welch
## 
##  Welch Two Sample t-test
## 
## data:  CINTURA by SEXO
## t = 3.0505, df = 97.044, p-value = 0.002946
## alternative hypothesis: true difference in means between group Femenino and group Masculino is not equal to 0
## 95 percent confidence interval:
##   2.561252 12.100519
## sample estimates:
##  mean in group Femenino mean in group Masculino 
##               100.41860                93.08772

Interpretación de la prueba t de Welch

La prueba t de Welch indica una diferencia significativa en la circunferencia de cintura entre los sexos
(t(97.04) = 3.05, p = 0.0029, IC95% [2.56, 12.10]).
Las mujeres presentan una media de cintura mayor (100.42 cm) que los hombres (93.09 cm),sin asumir homogeneidad de varianzas, lo que me refuerza la solidez del análisis estadístico. Visualización de medias e intervalos de confianza por sexo

# Visualización de medias con intervalos de confianza
library(ggplot2)
library(dplyr)

# medias e intervalos de confianza por grupo
medias_IC <- Dataset %>%
  group_by(SEXO) %>%
  summarise(
    media = mean(CINTURA, na.rm = TRUE),
    sd = sd(CINTURA, na.rm = TRUE),
    n = n(),
    error = qt(0.975, df = n - 1) * (sd / sqrt(n)),
    IC_inf = media - error,
    IC_sup = media + error
  )

# Gráfico de medias con IC
ggplot(medias_IC, aes(x = SEXO, y = media, fill = SEXO)) +
  geom_col(alpha = 0.6, width = 0.5, color = "brown") +
  geom_errorbar(aes(ymin = IC_inf, ymax = IC_sup), width = 0.15, color = "black", linewidth = 0.8) +
  geom_text(aes(label = round(media, 2)), vjust = -1, size = 4, color = "black", fontface = "bold") +
  scale_fill_manual(values = c("lightgreen", "lightsalmon")) +
  labs(
    title = "Comparación de medias de CINTURA entre sexos",
    subtitle = "Visualización de intervalos de confianza al 95% (Prueba t de Welch)",
    x = "Sexo",
    y = "Cintura (cm)"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", size = 14, color = "brown"),
    plot.subtitle = element_text(size = 11, color = "blue"),
    axis.text = element_text(color = "black"),
    axis.title = element_text(color = "black"),
    legend.position = "none"
  )

El análisis visual confirma los resultados de la prueba t de Welch, pues existe una diferencia estadísticamente significativa en la circunferencia de cintura entre hombres y mujeres (p = 0.0029), además, las mujeres presentan una media mayor (100.42 cm) que los hombres (93.09 cm),y los intervalos de confianza al 95% no se superponen, reforzando la evidencia de una diferencia real entre los grupos.

Referencias

  1. Lind DA, Marchal WG, Wathen SA. Estadística aplicada a los negocios y la economía. 17ª ed. México D.F.: McGraw Hill Interamericana; 2019. ISBN: 9781456269760.