1 Introducción

Este estudio se enfoca en el análisis comparativo de dos grupos de pacientes: uno tratado con un producto experimental y otro con un placebo. El propósito es evaluar el efecto del tratamiento sobre diversas variables fisiológicas relevantes, específicamente la presión sistólica, presión diastólica, colesterol y glucosa. Estas variables están directamente relacionadas con el riesgo cardiovascular y el síndrome metabólico, condiciones prevalentes que afectan a una gran parte de la población adulta, especialmente a individuos con antecedentes de hipertensión, dislipidemia o niveles alterados de glucosa.

El objetivo principal es determinar si existen diferencias estadísticamente significativas entre los dos grupos en cuanto a su perfil fisiológico multivariado. Para ello, se aplica la prueba T² de Hotelling, que permite evaluar simultáneamente un conjunto de variables correlacionadas y comparar grupos en un contexto multivariado.

Desde el punto de vista clínico, este análisis busca identificar si el tratamiento experimental podría ofrecer un beneficio tangible en la mejora del perfil metabólico y cardiovascular de los pacientes, contribuyendo a la reducción de factores de riesgo asociados a enfermedades como la hipertensión, diabetes tipo 2 o dislipidemias.

2 Cargar y explorar la base de datos

# Cargar solo las librerías necesarias
library(dplyr)           # Manipulación de datos
library(ggplot2)         # Gráficos principales
library(gt)              # Tablas estilizadas
library(knitr)           # Tablas base (en caso de usar kable)
library(kableExtra)      # Estilo de tablas kable
library(MASS)            # Distribuciones y funciones multivariadas
library(mvnormtest)      # Pruebas de normalidad multivariada (mshapiro.test)
library(MVN)             # Test de Mardia
library(biotools)        # Prueba de Box’s M
library(Hotelling)       # Prueba T² de Hotelling
library(ICSNP)           # Alternativa para Hotelling (independientes)
library(reshape2)        # Organización de datos para gráficos si se usa melt
library(car)
# Leer los datos
library(readr)
datos <- read_csv("datos5.csv")
head(datos)
## # A tibble: 6 × 6
##   Presion_Sistolica Presion_Diastolica Colesterol Glucosa Grupo      ID
##               <dbl>              <dbl>      <dbl>   <dbl> <chr>   <dbl>
## 1              134.               75.4       202.    90.4 Placebo     1
## 2              134.               82.2       218.   108.  Placebo     2
## 3              133.               84.9       210.   109.  Placebo     3
## 4              129.               82.3       207.   102.  Placebo     4
## 5              135.               82.5       211.   103.  Placebo     5
## 6              118.               77.5       203.   104.  Placebo     6

3 Análisis exploratorio descriptivo y gráfico

3.1 Estadística descriptiva

3.1.1 Placebo

# Media
colMeans(grupo_placebo[, c("Presion_Sistolica", "Presion_Diastolica", "Colesterol", "Glucosa")], na.rm = TRUE)
##  Presion_Sistolica Presion_Diastolica         Colesterol            Glucosa 
##          132.04967           81.81932          209.41274          102.89004
# Mediana
apply(grupo_placebo[, c("Presion_Sistolica", "Presion_Diastolica", "Colesterol", "Glucosa")], 2, median, na.rm = TRUE)
##  Presion_Sistolica Presion_Diastolica         Colesterol            Glucosa 
##           132.5689            81.9260           209.7980           102.8903
# Desviación estándar
apply(grupo_placebo[, c("Presion_Sistolica", "Presion_Diastolica", "Colesterol", "Glucosa")], 2, sd, na.rm = TRUE)
##  Presion_Sistolica Presion_Diastolica         Colesterol            Glucosa 
##           7.304251           4.145472           6.706981           7.636612
# Mínimo
apply(grupo_placebo[, c("Presion_Sistolica", "Presion_Diastolica", "Colesterol", "Glucosa")], 2, min, na.rm = TRUE)
##  Presion_Sistolica Presion_Diastolica         Colesterol            Glucosa 
##          111.15108           69.18595          187.73943           80.76409
# Máximo
apply(grupo_placebo[, c("Presion_Sistolica", "Presion_Diastolica", "Colesterol", "Glucosa")], 2, max, na.rm = TRUE)
##  Presion_Sistolica Presion_Diastolica         Colesterol            Glucosa 
##          157.52523           93.09044          231.67072          124.31037

3.1.2 Tratamiento Experimental

# Media
colMeans(grupo_tratamiento[, c("Presion_Sistolica", "Presion_Diastolica", "Colesterol", "Glucosa")], na.rm = TRUE)
##  Presion_Sistolica Presion_Diastolica         Colesterol            Glucosa 
##          123.79139           80.08527          199.98347          101.93662
# Mediana
apply(grupo_tratamiento[, c("Presion_Sistolica", "Presion_Diastolica", "Colesterol", "Glucosa")], 2, median, na.rm = TRUE)
##  Presion_Sistolica Presion_Diastolica         Colesterol            Glucosa 
##          123.95350           80.18859          199.59806          102.01107
# Desviación estándar
apply(grupo_tratamiento[, c("Presion_Sistolica", "Presion_Diastolica", "Colesterol", "Glucosa")], 2, sd, na.rm = TRUE)
##  Presion_Sistolica Presion_Diastolica         Colesterol            Glucosa 
##           7.388377           3.932293           6.258434           7.397991
# Mínimo
apply(grupo_tratamiento[, c("Presion_Sistolica", "Presion_Diastolica", "Colesterol", "Glucosa")], 2, min, na.rm = TRUE)
##  Presion_Sistolica Presion_Diastolica         Colesterol            Glucosa 
##           96.54709           67.46680          179.59834           81.79714
# Máximo
apply(grupo_tratamiento[, c("Presion_Sistolica", "Presion_Diastolica", "Colesterol", "Glucosa")], 2, max, na.rm = TRUE)
##  Presion_Sistolica Presion_Diastolica         Colesterol            Glucosa 
##           147.9672            92.5120           218.9332           124.4657

3.2 Gráficos

3.2.1 Boxplot de la Presión Sistólica

grupoA <- subset(datos, Grupo == "Placebo")[, 1:4]
grupoB <- subset(datos, Grupo == "Tratamiento Experimental")[, 1:4]

ggplot(datos, aes(x = Grupo, y = Presion_Sistolica, fill = Grupo)) + 
  geom_boxplot(outlier.shape = 16, outlier.colour = "#d32f2f", outlier.size = 3,
               width = 0.6, alpha = 0.85, colour = "black") +
  scale_fill_manual(values = c("Placebo" = "#B0BEC5", "Tratamiento Experimental" = "#00897B")) +
  geom_jitter(width = 0.1, size = 2, alpha = 0.6, aes(color = Grupo)) +
  scale_color_manual(values = c("Placebo" = "#607D8B", "Tratamiento Experimental" = "#004D40")) +
  labs(x = "Grupo", y = "Presión Sistólica") +
  theme_classic(base_size = 14) +
  theme(
    panel.background = element_rect(fill = "#F5F5F5", color = NA),
    plot.background = element_rect(fill = "#F5F5F5", color = NA),
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10)),
    axis.text = element_text(color = "black"),
    legend.position = "none"
  )

Para la presión sistólica, el boxplot muestra una diferencia clara en la mediana entre los grupos: el grupo Tratamiento Experimental presenta valores más bajos que el grupo Placebo.

La dispersión es similar en ambos grupos y los valores atípicos no son extremos ni numerosos.

La distribución se muestra simétrica y sin sesgo aparente.

Este patrón sugiere que el tratamiento podría haber tenido un efecto reductor significativo en la presión sistólica.

3.2.2 Boxplot de la Presión Diastólica

ggplot(datos, aes(x = Grupo, y = Presion_Diastolica, fill = Grupo)) + 
  geom_boxplot(outlier.shape = 16, outlier.colour = "#d32f2f", outlier.size = 3, 
               width = 0.6, alpha = 0.85, colour = "black") + 
  scale_fill_manual(values = c("Placebo" = "#B0BEC5", "Tratamiento Experimental" = "#00897B")) +
  geom_jitter(width = 0.1, size = 2, alpha = 0.6, aes(color = Grupo)) +
  scale_color_manual(values = c("Placebo" = "#607D8B", "Tratamiento Experimental" = "#004D40")) +
  labs(x = "Grupo", y = "Presión Diastólica") +
  theme_classic(base_size = 14) +
  theme(
    panel.background = element_rect(fill = "#F5F5F5", color = NA),
    plot.background = element_rect(fill = "#F5F5F5", color = NA),
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10)),
    axis.text = element_text(color = "black"),
    legend.position = "none"
  )

Para la presión diastólica, también se observa una disminución en la mediana para el grupo Tratamiento Experimental frente al Placebo.

Ambos grupos tienen rangos intercuartílicos similares, lo que indica varianza comparable.

La distribución es bastante simétrica y los valores atípicos son pocos y esperados.

Esto sugiere un efecto leve a moderado del tratamiento sobre la presión diastólica.

3.2.3 Boxplot del Colesterol

ggplot(datos, aes(x = Grupo, y = Colesterol, fill = Grupo)) + 
  geom_boxplot(outlier.shape = 16, outlier.colour = "#d32f2f", outlier.size = 3, 
               width = 0.6, alpha = 0.85, colour = "black") + 
  scale_fill_manual(values = c("Placebo" = "#B0BEC5", "Tratamiento Experimental" = "#00897B")) +
  geom_jitter(width = 0.1, size = 2, alpha = 0.6, aes(color = Grupo)) +
  scale_color_manual(values = c("Placebo" = "#607D8B", "Tratamiento Experimental" = "#004D40")) +
  labs(x = "Grupo", y = "Colesterol") +
  theme_classic(base_size = 14) +
  theme(
    panel.background = element_rect(fill = "#F5F5F5", color = NA),
    plot.background = element_rect(fill = "#F5F5F5", color = NA),
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10)),
    axis.text = element_text(color = "black"),
    legend.position = "none"
  )

En el caso del colesterol, el boxplot revela una diferencia notable entre los grupos: la mediana del grupo Tratamiento Experimental es visiblemente menor que la del grupo Placebo.

El grupo Placebo presenta más valores extremos altos, reforzando visualmente esta diferencia.

La dispersión es equilibrada y la distribución general es simétrica.

Los datos sugieren que el tratamiento tuvo un efecto reductor importante sobre el colesterol.

3.2.4 Boxplot de la Glucosa

ggplot(datos, aes(x = Grupo, y = Glucosa, fill = Grupo)) + 
  geom_boxplot(outlier.shape = 16, outlier.colour = "#d32f2f", outlier.size = 3, 
               width = 0.6, alpha = 0.85, colour = "black") + 
  scale_fill_manual(values = c("Placebo" = "#B0BEC5", "Tratamiento Experimental" = "#00897B")) +
  geom_jitter(width = 0.1, size = 2, alpha = 0.6, aes(color = Grupo)) +
  scale_color_manual(values = c("Placebo" = "#607D8B", "Tratamiento Experimental" = "#004D40")) +
  labs(x = "Grupo", y = "Glucosa") +
  theme_classic(base_size = 14) +
  theme(
    panel.background = element_rect(fill = "#F5F5F5", color = NA),
    plot.background = element_rect(fill = "#F5F5F5", color = NA),
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10)),
    axis.text = element_text(color = "black"),
    legend.position = "none"
  )

Para la glucosa, el boxplot muestra una ligera disminución en la mediana del grupo Tratamiento Experimental respecto al Placebo.

La dispersión es muy similar en ambos grupos, y los valores atípicos no son preocupantes.

Las cajas presentan formas simétricas y sin sesgo visible.

Aunque la diferencia entre grupos no es tan marcada como en las otras variables, los resultados visuales son consistentes con un efecto moderado del tratamiento.

3.2.5 Histograma de la Presión Sistólica

ggplot(datos, aes(x = Presion_Sistolica, fill = Grupo)) +
  geom_histogram(position = "identity", bins = 30, alpha = 0.5, color = "black") +
  scale_fill_manual(values = c("Placebo" = "#B0BEC5", "Tratamiento Experimental" = "#00897B")) +
  labs(x = "Presión Sistólica", y = "Frecuencia") +
  theme_classic(base_size = 14) +
  theme(
    panel.background = element_rect(fill = "#F5F5F5", color = NA),
    plot.background = element_rect(fill = "#F5F5F5", color = NA),
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10)),
    axis.text = element_text(color = "black"),
    legend.title = element_blank(),
    legend.position = "top"
  )

El histograma de la presión sistólica muestra una diferencia notable entre los grupos Placebo y Tratamiento Experimental.

El grupo Placebo presenta una mayor concentración de pacientes con valores entre 130 y 140 mmHg, mientras que el grupo tratado se concentra principalmente en el rango de 115 a 130 mmHg.

Esto sugiere que el tratamiento experimental podría haber contribuido a una reducción significativa de la presión sistólica en los pacientes, desplazando la distribución hacia valores más bajos.

La separación clara entre ambas distribuciones respalda visualmente un posible efecto positivo del tratamiento en el control de esta variable cardiovascular clave.

3.2.6 Histograma de la Presión Diastólica

ggplot(datos, aes(x = Presion_Diastolica, fill = Grupo)) +
  geom_histogram(position = "identity", bins = 30, alpha = 0.5, color = "black") +
  scale_fill_manual(values = c("Placebo" = "#B0BEC5", "Tratamiento Experimental" = "#00897B")) +
  labs(x = "Presión Diastólica", y = "Frecuencia") +
  theme_classic(base_size = 14) +
  theme(
    panel.background = element_rect(fill = "#F5F5F5", color = NA),
    plot.background = element_rect(fill = "#F5F5F5", color = NA),
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10)),
    axis.text = element_text(color = "black"),
    legend.title = element_blank(),
    legend.position = "top"
  )

El histograma de la presión diastólica revela una distribución muy similar entre los grupos Placebo y Tratamiento Experimental, con un leve desplazamiento hacia valores más bajos en el grupo tratado.

Ambos grupos concentran la mayor frecuencia de pacientes en el rango de 78 a 85 mmHg, pero el grupo experimental muestra un ligero incremento en frecuencias entre 75 y 80 mmHg, lo cual sugiere una posible reducción sutil de la presión diastólica debido al tratamiento.

No obstante, la superposición entre ambas distribuciones es considerable, lo que indica que la diferencia entre grupos no es tan pronunciada como en otras variables como el colesterol.

En conjunto, los resultados podrían reflejar un efecto moderado del tratamiento sobre esta variable.

3.2.7 Histograma del Colesterol

ggplot(datos, aes(x = Colesterol, fill = Grupo)) +
  geom_histogram(position = "identity", bins = 30, alpha = 0.5, color = "black") +
  scale_fill_manual(values = c("Placebo" = "#B0BEC5", "Tratamiento Experimental" = "#00897B")) +
  labs(x = "Colesterol", y = "Frecuencia") +
  theme_classic(base_size = 14) +
  theme(
    panel.background = element_rect(fill = "#F5F5F5", color = NA),
    plot.background = element_rect(fill = "#F5F5F5", color = NA),
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10)),
    axis.text = element_text(color = "black"),
    legend.title = element_blank(),
    legend.position = "top"
  )

El histograma del colesterol muestra una clara diferencia entre los grupos. El grupo Placebo tiene su distribución desplazada hacia la derecha, indicando valores de colesterol más elevados en comparación con el grupo Tratamiento Experimental.

El grupo Tratamiento Experimental presenta una mayor concentración de pacientes con valores de colesterol entre 190 y 205, mientras que en el grupo Placebo estos valores tienden a concentrarse entre 205 y 220.

Esta diferencia sugiere que el tratamiento tuvo un efecto positivo en la reducción del colesterol, logrando una mejora más notoria que en otras variables.

Además, ambas distribuciones se ven aproximadamente simétricas, lo que respalda la validez de las comparaciones.

3.2.8 Histograma de la Glucosa

ggplot(datos, aes(x = Glucosa, fill = Grupo)) +
  geom_histogram(position = "identity", bins = 30, alpha = 0.5, color = "black") +
  scale_fill_manual(values = c("Placebo" = "#B0BEC5", "Tratamiento Experimental" = "#00897B")) +
  labs(x = "Glucosa", y = "Frecuencia") +
  theme_classic(base_size = 14) +
  theme(
    panel.background = element_rect(fill = "#F5F5F5", color = NA),
    plot.background = element_rect(fill = "#F5F5F5", color = NA),
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10)),
    axis.text = element_text(color = "black"),
    legend.title = element_blank(),
    legend.position = "top"
  )

El histograma de la variable Glucosa muestra distribuciones similares para los grupos Placebo y Tratamiento Experimental, con una forma aproximadamente simétrica centrada entre los valores de 95 y 105.

Sin embargo, se puede notar que el grupo Tratamiento Experimental tiende a concentrarse más en valores ligeramente más bajos de glucosa, lo cual puede indicar un leve efecto del tratamiento en la reducción de los niveles de esta variable.

Ambos grupos presentan un rango similar de valores, aunque el grupo Placebo muestra una ligera mayor dispersión hacia valores altos.

En conjunto, este gráfico sugiere una posible mejora moderada en el control de la glucosa en el grupo que recibió el tratamiento experimental.

3.2.9 Distribución de la Presión Sistólica por Grupo (Violin Plot)

ggplot(datos, aes(x = Grupo, y = Presion_Sistolica, fill = Grupo)) +
  geom_violin(trim = FALSE, color = "black", alpha = 0.85) +
  geom_boxplot(width = 0.1, fill = "white", outlier.shape = NA, color = "black") +
  geom_jitter(width = 0.1, size = 1.8, alpha = 0.3, aes(color = Grupo)) +
  scale_fill_manual(values = c("Placebo" = "#B0BEC5", "Tratamiento Experimental" = "#00897B")) +
  scale_color_manual(values = c("Placebo" = "#607D8B", "Tratamiento Experimental" = "#004D40")) +
  labs(x = "Grupo", y = "Presión Sistólica") +
  theme_classic(base_size = 14) +
  theme(
    panel.background = element_rect(fill = "#F5F5F5", color = NA),
    plot.background = element_rect(fill = "#F5F5F5", color = NA),
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10)),
    axis.text = element_text(color = "black"),
    legend.position = "none"
  )

El gráfico de violín de la presión sistólica muestra que la distribución de los datos en el grupo Tratamiento Experimental se encuentra desplazada hacia valores más bajos en comparación con el grupo Placebo.

La caja interna confirma una menor mediana para el grupo tratado, y la densidad es más pronunciada en rangos inferiores, lo cual sugiere una concentración mayor de pacientes con presión sistólica más baja.

En ambos grupos, la distribución es simétrica y se observan algunos valores extremos, aunque no afectan de manera considerable la forma general.

Este gráfico refuerza visualmente la idea de que el tratamiento tiene un efecto reductor sobre la presión sistólica.

3.2.10 Distribución de la Presión Diastólica por Grupo (Violin Plot)

ggplot(datos, aes(x = Grupo, y = Presion_Diastolica, fill = Grupo)) +
  geom_violin(trim = FALSE, color = "black", alpha = 0.85) +
  geom_boxplot(width = 0.1, fill = "white", outlier.shape = NA, color = "black") +
  geom_jitter(width = 0.1, size = 1.8, alpha = 0.3, aes(color = Grupo)) +
  scale_fill_manual(values = c("Placebo" = "#B0BEC5", "Tratamiento Experimental" = "#00897B")) +
  scale_color_manual(values = c("Placebo" = "#607D8B", "Tratamiento Experimental" = "#004D40")) +
  labs(x = "Grupo", y = "Presión Diastólica") +
  theme_classic(base_size = 14) +
  theme(
    panel.background = element_rect(fill = "#F5F5F5", color = NA),
    plot.background = element_rect(fill = "#F5F5F5", color = NA),
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10)),
    axis.text = element_text(color = "black"),
    legend.position = "none"
  )

El gráfico de violín de la presión diastólica revela una ligera disminución en la mediana en el grupo Tratamiento Experimental en comparación con el grupo Placebo.

Las densidades de ambos grupos presentan una forma similar, indicando distribuciones equilibradas y sin sesgo notable.

Se observa una mayor concentración de datos en los rangos intermedios, y la caja interna sugiere que la dispersión es comparable entre ambos grupos.

En conjunto, esta visualización apoya la presencia de un efecto leve del tratamiento sobre la presión diastólica.

3.2.11 Distribución del Colesterol por Grupo (Violin Plot)

ggplot(datos, aes(x = Grupo, y = Colesterol, fill = Grupo)) +
  geom_violin(trim = FALSE, color = "black", alpha = 0.85) +
  geom_boxplot(width = 0.1, fill = "white", outlier.shape = NA, color = "black") +
  geom_jitter(width = 0.1, size = 1.8, alpha = 0.3, aes(color = Grupo)) +
  scale_fill_manual(values = c("Placebo" = "#B0BEC5", "Tratamiento Experimental" = "#00897B")) +
  scale_color_manual(values = c("Placebo" = "#607D8B", "Tratamiento Experimental" = "#004D40")) +
  labs(x = "Grupo", y = "Colesterol") +
  theme_classic(base_size = 14) +
  theme(
    panel.background = element_rect(fill = "#F5F5F5", color = NA),
    plot.background = element_rect(fill = "#F5F5F5", color = NA),
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10)),
    axis.text = element_text(color = "black"),
    legend.position = "none"
  )

El gráfico de violín del colesterol evidencia una diferencia marcada en la mediana entre los grupos: el Tratamiento Experimental presenta valores notablemente más bajos que el grupo Placebo.

Además de la diferencia central, el grupo Placebo muestra una distribución más extendida hacia valores altos, lo cual sugiere mayor variabilidad en niveles elevados de colesterol.

Ambas curvas mantienen formas simétricas, pero el grupo tratado tiene una densidad más concentrada en rangos inferiores.

Esto refuerza de manera visual que el tratamiento podría tener un impacto reductor importante sobre los niveles de colesterol.

3.2.12 Distribución de la Glucosa por Grupo (Violin Plot)

ggplot(datos, aes(x = Grupo, y = Glucosa, fill = Grupo)) +
  geom_violin(trim = FALSE, color = "black", alpha = 0.85) +
  geom_boxplot(width = 0.1, fill = "white", outlier.shape = NA, color = "black") +
  geom_jitter(width = 0.1, size = 1.8, alpha = 0.3, aes(color = Grupo)) +
  scale_fill_manual(values = c("Placebo" = "#B0BEC5", "Tratamiento Experimental" = "#00897B")) +
  scale_color_manual(values = c("Placebo" = "#607D8B", "Tratamiento Experimental" = "#004D40")) +
  labs(x = "Grupo", y = "Glucosa") +
  theme_classic(base_size = 14) +
  theme(
    panel.background = element_rect(fill = "#F5F5F5", color = NA),
    plot.background = element_rect(fill = "#F5F5F5", color = NA),
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10)),
    axis.text = element_text(color = "black"),
    legend.position = "none"
  )

El gráfico de violín de la glucosa muestra una disminución leve en la mediana del grupo Tratamiento Experimental respecto al Placebo.

Las curvas de densidad en ambos grupos son bastante simétricas y presentan una forma similar, lo que indica que la distribución de los valores es comparable.

La caja interna también revela una ligera concentración de valores más bajos en el grupo tratado.

Aunque las diferencias no son tan marcadas como en otras variables, los resultados visuales son coherentes con un posible efecto moderado del tratamiento en los niveles de glucosa.

3.2.13 Matriz de dispersión de variables cuantitativas

# Variables a incluir en el gráfico de pares
vars <- c("Presion_Sistolica", "Presion_Diastolica", "Colesterol", "Glucosa")

# Colores para diferenciar los grupos
colores <- ifelse(datos$Grupo == "Placebo", "blue", "darkgreen")

# Gráfico de pares
pairs(datos[, vars],
      col = colores,
      pch = 20,
      main = "Matriz de dispersión por grupo")

El gráfico de dispersión por grupo muestra relaciones positivas entre las variables fisiológicas analizadas: presión sistólica, presión diastólica, colesterol y glucosa.

Las nubes de puntos azules (Placebo) y verdes (Tratamiento Experimental) siguen trayectorias similares, lo cual indica patrones consistentes entre grupos. Sin embargo, en varias combinaciones (como presión sistólica vs. colesterol o presión diastólica vs. glucosa), los puntos del grupo tratado se concentran ligeramente en valores más bajos, lo que sugiere una posible reducción en estas variables.

En general, las relaciones lineales entre variables están presentes en ambos grupos, y la superposición parcial de los colores sugiere similitudes, aunque con desplazamientos sutiles que podrían ser atribuidos al efecto del tratamiento.

3.2.14 Matriz de correlación entre variables clínicas

# Cargar paquetes
library(ggplot2)
library(reshape2)
library(RColorBrewer)

# Supongamos que tienes este dataframe de variables clínicas
datos_clinicos <- datos[, c("Presion_Sistolica", "Presion_Diastolica", "Colesterol", "Glucosa")]

# Calcular matriz de correlación
corr_matrix <- cor(datos_clinicos)

# Convertir a formato largo para ggplot2
melted_corr <- melt(corr_matrix)

# Crear variable para marcar la diagonal superior
melted_corr$upper <- as.numeric(melted_corr$Var1) < as.numeric(melted_corr$Var2)

# Graficar
ggplot(melted_corr, aes(x = Var2, y = Var1, fill = value)) +
  geom_tile(color = "white") +
  scale_fill_gradient2(low = "blue", high = "red", mid = "white",
                       midpoint = 0, limit = c(-1, 1), space = "Lab",
                       name = "Correlación") +
  geom_text(aes(label = ifelse(upper, "X", sprintf("%.2f", value))), color = "black", size = 4) +
  theme_minimal() +
  labs(title = "Matriz de correlación entre variables clínicas", x = "", y = "") +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))

Los resultados de la matriz de correlación revelan una asociación positiva moderada a fuerte entre la presión arterial (sistólica y diastólica) y el colesterol, lo cual sugiere que estas variables podrían estar influenciadas por mecanismos fisiológicos comunes, como factores cardiovasculares o metabólicos. En contraste, la glucosa presenta correlaciones más débiles con las demás variables, lo que indica que su comportamiento es más autónomo dentro del perfil clínico del paciente.

Desde una perspectiva clínica, estos patrones podrían reflejar que ciertos pacientes presentan un riesgo combinado de hipertensión y dislipidemia, mientras que la glucosa podría requerir un enfoque de análisis independiente.

4 Normalidad multivariada

4.1 Prueba de Shapiro-Wilk

mshapiro.test(t(grupoA))
## 
##  Shapiro-Wilk normality test
## 
## data:  Z
## W = 0.9955, p-value = 0.1592

Normalidad multivariada – Grupo A (Placebo)
La prueba de Shapiro-Wilk arrojó un p-valor = 0.1592, que es mayor que 0.05.
Por lo tanto, no se rechaza la hipótesis nula de normalidad, lo que sugiere que los datos del grupo Placebo siguen una distribución normal multivariada.

mshapiro.test(t(grupoB))
## 
##  Shapiro-Wilk normality test
## 
## data:  Z
## W = 0.99713, p-value = 0.5322

Normalidad multivariada – Grupo B (Tratamiento Experimental)
La prueba de Shapiro-Wilk dio un p-valor = 0.5322, que es mayor que 0.05.
Esto indica que no se rechaza la hipótesis nula de normalidad, por lo que los datos del grupo Tratamiento Experimental también siguen una distribución normal multivariada.

4.2 Prueba de Mardia

resA <- mvn(data = datosA, mvnTest = "mardia")
print(resA$multivariateNormality)
##              Test          Statistic           p value Result
## 1 Mardia Skewness   17.1061500481692 0.646070510034345    YES
## 2 Mardia Kurtosis -0.485530730982864 0.627299919066105    YES
## 3             MVN               <NA>              <NA>    YES

El test de Mardia para el grupo Placebo no rechaza la normalidad multivariada (p > 0.05), lo que indica que los datos cumplen con este supuesto.

resA <- mvn(data = datosA, mvnTest = "mardia")
print(resA$multivariateNormality)
##              Test        Statistic           p value Result
## 1 Mardia Skewness 12.2854422502908 0.905900926359671    YES
## 2 Mardia Kurtosis -1.5696019484874 0.116507744933279    YES
## 3             MVN             <NA>              <NA>    YES

El test de Mardia para el grupo de Tratamiento Experimental no rechaza la normalidad multivariada (p > 0.05), lo que indica que los datos cumplen con este supuesto.

4.3 Detección de outliers multivariados

El gráfico Q-Q de Mahalanobis para el Placebo evalúa si los datos multivariantes siguen una distribución normal.

En este gráfico, la mayoría de los puntos se alinean bien con la línea diagonal, lo cual sugiere una aproximación razonable a la normalidad multivariante.

Sin embargo, se observan algunos puntos al final (como el 345 y 415) que se alejan del intervalo de confianza sombreado en azul, lo que indica posibles valores atípicos multivariantes.

A pesar de esos pocos valores extremos, la distribución general es adecuada, y el supuesto de normalidad multivariante no parece estar gravemente violado.

El gráfico Q–Q de Mahalanobis para el Tratamiento Experimental muestra una alineación general adecuada con la línea diagonal, lo que indica que los datos siguen una distribución aproximadamente normal multivariante.

Sin embargo, algunos puntos al extremo derecho (como los casos 619 y 529) se desvían fuera de la banda de confianza, sugiriendo la presencia de posibles valores atípicos multivariantes.

En conjunto, el patrón general del gráfico apoya la suposición de normalidad multivariante, con solo leves desviaciones en las colas.

5 Normalidad univariada

variables <- c("Presion_Sistolica", "Presion_Diastolica", "Colesterol", "Glucosa")
for (var in variables) {
  print(paste("Shapiro-Wilk para", var, "Grupo A:"))
  print(shapiro.test(datos[[var]][datos$Grupo == "Placebo"]))
  
  print(paste("Shapiro-Wilk para", var, "Grupo B:"))
  print(shapiro.test(datos[[var]][datos$Grupo == "Tratamiento Experimental"]))
}
## [1] "Shapiro-Wilk para Presion_Sistolica Grupo A:"
## 
##  Shapiro-Wilk normality test
## 
## data:  datos[[var]][datos$Grupo == "Placebo"]
## W = 0.99653, p-value = 0.3547
## 
## [1] "Shapiro-Wilk para Presion_Sistolica Grupo B:"
## 
##  Shapiro-Wilk normality test
## 
## data:  datos[[var]][datos$Grupo == "Tratamiento Experimental"]
## W = 0.99764, p-value = 0.7111
## 
## [1] "Shapiro-Wilk para Presion_Diastolica Grupo A:"
## 
##  Shapiro-Wilk normality test
## 
## data:  datos[[var]][datos$Grupo == "Placebo"]
## W = 0.99766, p-value = 0.7179
## 
## [1] "Shapiro-Wilk para Presion_Diastolica Grupo B:"
## 
##  Shapiro-Wilk normality test
## 
## data:  datos[[var]][datos$Grupo == "Tratamiento Experimental"]
## W = 0.99725, p-value = 0.5741
## 
## [1] "Shapiro-Wilk para Colesterol Grupo A:"
## 
##  Shapiro-Wilk normality test
## 
## data:  datos[[var]][datos$Grupo == "Placebo"]
## W = 0.99783, p-value = 0.7742
## 
## [1] "Shapiro-Wilk para Colesterol Grupo B:"
## 
##  Shapiro-Wilk normality test
## 
## data:  datos[[var]][datos$Grupo == "Tratamiento Experimental"]
## W = 0.99813, p-value = 0.8678
## 
## [1] "Shapiro-Wilk para Glucosa Grupo A:"
## 
##  Shapiro-Wilk normality test
## 
## data:  datos[[var]][datos$Grupo == "Placebo"]
## W = 0.99642, p-value = 0.3272
## 
## [1] "Shapiro-Wilk para Glucosa Grupo B:"
## 
##  Shapiro-Wilk normality test
## 
## data:  datos[[var]][datos$Grupo == "Tratamiento Experimental"]
## W = 0.99692, p-value = 0.4656

Se realizaron pruebas de normalidad univariada utilizando el test de Shapiro-Wilk para cada variable en ambos grupos (Placebo y Tratamiento Experimental).

En todos los casos, los valores p fueron mayores a 0.05, lo cual indica que no se rechaza la hipótesis nula de normalidad.

Por lo tanto, se concluye que las variables Presión Sistólica, Presión Diastólica, Colesterol y Glucosa presentan una distribución normal en ambos grupos.

6 Homogeneidad de matrices de covarianza (Box’s M)

boxM(datos[,1:4], datos$Grupo)
## 
##  Box's M-test for Homogeneity of Covariance Matrices
## 
## data:  datos[, 1:4]
## Chi-Sq (approx.) = 7.6816, df = 10, p-value = 0.6599

Se aplicó la prueba de Box’s M para evaluar la homogeneidad de las matrices de covarianza entre los grupos.

El resultado fue:
Chi-Sq = 7.6816, gl = 10, p-valor = 0.6599.

Dado que el p-valor es mayor a 0.05, no se rechaza la hipótesis nula de igualdad de matrices de covarianza.

7 Aplicación de la prueba T² de Hotelling

7.1 Comparación entre grupos independientes

HotellingsT2(grupoA, grupoB)
## 
##  Hotelling's two sample T2-test
## 
## data:  grupoA and grupoB
## T.2 = 204.47, df1 = 4, df2 = 995, p-value < 2.2e-16
## alternative hypothesis: true location difference is not equal to c(0,0,0,0)

Se utilizó la prueba T² de Hotelling para comparar simultáneamente las medias de las variables entre los grupos Placebo y Tratamiento Experimental.

El resultado fue: T² = 204.47, gl₁ = 4, gl₂ = 995, p-valor < 2.2e-16.

Dado que el p-valor es mucho menor que 0.05, se rechaza la hipótesis nula de igualdad de medias multivariadas.

Esto indica que existe una diferencia estadísticamente significativa entre los grupos en al menos una de las variables consideradas en conjunto.

8 Conclusión

A partir del análisis multivariado realizado, se identificaron diferencias estadísticamente significativas entre los grupos Placebo y Tratamiento Experimental, especialmente reflejadas en la presión sistólica, presión diastólica y niveles de colesterol. Estas diferencias fueron respaldadas tanto por los gráficos exploratorios (boxplots y violines) como por la prueba T² de Hotelling, cuyo valor-p extremadamente bajo (< 0.05) confirma la existencia de un efecto conjunto significativo del tratamiento.

Los gráficos mostraron consistentemente una reducción en las medianas y medias de las variables fisiológicas en el grupo que recibió el tratamiento, lo cual sugiere un impacto positivo del mismo. Aunque en algunas variables, como la glucosa, las diferencias fueron más sutiles, los resultados apuntan hacia una mejora global del perfil fisiológico en comparación con el grupo Placebo.

Adicionalmente, se comprobó que ambos grupos cumplían con los supuestos de normalidad y homogeneidad de matrices de covarianza, permitiendo confiar en la validez de los resultados inferenciales obtenidos.

En conjunto, se concluye que el tratamiento experimental tiene un efecto moderado pero consistente sobre variables clave del perfil metabólico y cardiovascular, lo que refuerza su potencial uso como intervención clínica complementaria en pacientes con factores de riesgo como hipertensión, hipercolesterolemia o prediabetes.