PASO 1: Instalo y cargo las librerías necesarias
library(readxl) # Importar bases de datos en formato Excel
library(dplyr) # Manipulación y resumen de datos
library(ggplot2) # Creación de gráficos
library(moments) # Cálculo de asimetría y curtosis
library(scales) # Escalas y porcentajes en gráficos
library(tidyr) # Reorganizar tablas
library(psych) # Estadísticas descriptivas ampliadas
library(e1071) # Funciones adicionales para análisis estadístico
PASO 2: Importo y verifico la base de datos
En este paso importo la base de datos llamada “BD Practica R_Endocrino-1.xlsx”. Esta base contiene información de 100 observaciones y 50 variables relacionadas con características clínicas, demográficas y de estilo de vida, por lo que uso la librería ‘readxl’ para leer el archivo en formato Excel (.xlsx) y lo guardo en un objeto de R llamado “Dataset”, que será el que usare para todos los análisis posteriores.
# Importar base de datos desde el archivo Excel
Dataset <- read_excel("BD Practica R_Endocrino-1.xlsx", sheet = "BD_Practica")
## Confirmo que el archivo se cargó correctamente:
View(Dataset)
# me abre la base en una pestaña de RStudio para visualizar las columnas y filas
## Verifico la estructura general del conjunto de datos:
str(Dataset)
## tibble [100 × 51] (S3: tbl_df/tbl/data.frame)
## $ ID : num [1:100] 700 570 29 1003 994 ...
## $ EDAD : num [1:100] 35 69 38 30 62 30 40 57 42 35 ...
## $ SEXO : chr [1:100] "Masculino" "Femenino" "Femenino" "Masculino" ...
## $ PESO : num [1:100] 112.5 76 89.6 57.5 82 ...
## $ TALLA : num [1:100] 162 168 171 159 164 ...
## $ SEDENTARIO : num [1:100] 1 0 0 1 0 1 1 1 0 1 ...
## $ Escolaridad : chr [1:100] "Primaria" "Primaria" "Primaria" "Universidad" ...
## $ TAS : num [1:100] 125 130 120 100 130 90 120 110 125 140 ...
## $ TAD : num [1:100] 85 70 90 60 70 60 70 70 75 80 ...
## $ HTA_conocida: num [1:100] 0 0 0 0 0 0 0 0 0 0 ...
## $ HTA_OMS : num [1:100] 0 0 1 0 0 0 0 0 0 1 ...
## $ A_DIAB : num [1:100] 1 0 1 0 1 0 0 0 0 1 ...
## $ ECV_B : num [1:100] 0 0 0 0 0 0 0 0 0 0 ...
## $ TABACO : num [1:100] 0 0 0 0 0 0 0 0 1 0 ...
## $ ALCOHOL : num [1:100] 0 0 0 1 0 1 0 0 1 0 ...
## $ STATIN : num [1:100] 0 0 0 0 0 0 0 0 0 0 ...
## $ CINTURA : num [1:100] 124 99 105 77 112 96 102 93 87 126 ...
## $ CINTURADESP : num [1:100] 119 94 100 72 107 91 97 88 82 121 ...
## $ CADERA : num [1:100] 136 104 99 99 100 105 107 110 98 121 ...
## $ OBCENT_ATP : num [1:100] 1 0 1 0 1 1 1 1 0 1 ...
## $ COLESTEROL : num [1:100] 219 176 245 183 233 175 239 244 209 204 ...
## $ HDL : num [1:100] 56 57 65 59 48 80 50 58 50 38 ...
## $ LDL : num [1:100] 144 95 171 116 161 83 167 166 141 116 ...
## $ LDL_C : chr [1:100] "140 - 160" "80 - 100" "160 - 180" "100 - 120" ...
## $ TG : num [1:100] 95 120 47 38 122 60 112 104 90 250 ...
## $ CnoHDL : num [1:100] 163 119 180 124 185 95 189 186 159 166 ...
## $ ApoA : num [1:100] 132 145 0 122 129 ...
## $ ApoB : num [1:100] 102 72 0 76 103 50 109 87 75 93 ...
## $ LPA : num [1:100] 5.26 11.2 2.39 8.35 3.81 32.7 6.88 24.9 7.6 8.92 ...
## $ A1C : num [1:100] 6.86 6.67 6.07 4.79 5.68 ...
## $ hba1 : num [1:100] 8.4 8.5 7.4 5.9 7.3 6.1 6.4 6.5 6 6.4 ...
## $ CREATININA : num [1:100] 0.8 1.1 0.8 0.7 0.7 0.5 0.8 0.6 0.7 0.9 ...
## $ GLUCB : num [1:100] 172 156 89 75 91 59 87 113 83 91 ...
## $ SOG : num [1:100] 337 301 91 74 173 87 100 117 89 74 ...
## $ Tol_Glucosa : chr [1:100] "DM" "DM" "NGT" "NGT" ...
## $ DM : num [1:100] 1 1 0 0 0 0 0 0 0 0 ...
## $ conocida : chr [1:100] "Diabetes no conocida" "Diabetes no conocida" "Normal" "Normal" ...
## $ SM : num [1:100] 1 1 0 0 0 0 0 0 0 1 ...
## $ PCR : num [1:100] 1.1 0.34 0.32 0.34 0.34 0.3 0.3 0.34 0.32 0.4 ...
## $ INSULINEMIA : num [1:100] 32.8 4.9 4.2 8 4.6 7.9 16.1 2.6 3.9 12.1 ...
## $ PAI_1 : num [1:100] 53.6 39.8 24.2 17.2 24.2 11.1 33.8 8.77 13.8 49 ...
## $ fvw : num [1:100] 129 118 46.5 23.5 111 80.7 158 142 146 105 ...
## $ fibri : num [1:100] 3.37 3.13 2.69 3.8 3.24 2.84 2.8 3.29 2.94 3.02 ...
## $ HMC : num [1:100] 9.84 9.72 12.48 10.27 13.3 ...
## $ HOMA : num [1:100] 13.918 1.886 0.922 1.48 1.033 ...
## $ IR : num [1:100] 1 0 0 0 0 0 1 0 0 1 ...
## $ ecnos : chr [1:100] "bb" "ab" "aa" "ab" ...
## $ ppr : chr [1:100] "pp" "0" "0" "pp" ...
## $ fibratos : chr [1:100] "No" "No" "No" "No" ...
## $ CETP : chr [1:100] "B1B1" "B1B2" "0" "0" ...
## $ PON_192 : chr [1:100] "QR" "QR" "0" "QR" ...
# me muestra el tipo de dato de cada variable (numérica, carácter, etc.)
summary(Dataset)
## ID EDAD SEXO PESO
## Min. : 29.0 Min. :30.00 Length:100 Min. : 46.50
## 1st Qu.: 296.8 1st Qu.:37.75 Class :character 1st Qu.: 65.15
## Median : 739.5 Median :44.50 Mode :character Median : 74.35
## Mean : 726.7 Mean :46.25 Mean : 75.67
## 3rd Qu.:1080.8 3rd Qu.:53.00 3rd Qu.: 85.00
## Max. :1383.0 Max. :79.00 Max. :127.00
## TALLA SEDENTARIO Escolaridad TAS
## Min. :146.0 Min. :0.00 Length:100 Min. : 90.0
## 1st Qu.:157.8 1st Qu.:0.00 Class :character 1st Qu.:110.0
## Median :163.6 Median :1.00 Mode :character Median :120.0
## Mean :164.2 Mean :0.54 Mean :118.3
## 3rd Qu.:170.8 3rd Qu.:1.00 3rd Qu.:130.0
## Max. :182.0 Max. :1.00 Max. :160.0
## TAD HTA_conocida HTA_OMS A_DIAB ECV_B
## Min. : 60.0 Min. :0.00 Min. :0.00 Min. :0.00 Min. :0.00
## 1st Qu.: 70.0 1st Qu.:0.00 1st Qu.:0.00 1st Qu.:0.00 1st Qu.:0.00
## Median : 70.0 Median :0.00 Median :0.00 Median :0.00 Median :0.00
## Mean : 72.7 Mean :0.17 Mean :0.24 Mean :0.43 Mean :0.05
## 3rd Qu.: 80.0 3rd Qu.:0.00 3rd Qu.:0.00 3rd Qu.:1.00 3rd Qu.:0.00
## Max. :100.0 Max. :1.00 Max. :1.00 Max. :1.00 Max. :1.00
## TABACO ALCOHOL STATIN CINTURA CINTURADESP
## Min. :0.00 Min. :0.00 Min. :0.00 Min. : 68.00 Min. : 63.00
## 1st Qu.:0.00 1st Qu.:0.00 1st Qu.:0.00 1st Qu.: 88.75 1st Qu.: 80.75
## Median :0.00 Median :0.00 Median :0.00 Median : 97.00 Median : 91.00
## Mean :0.15 Mean :0.31 Mean :0.13 Mean : 96.24 Mean : 89.68
## 3rd Qu.:0.00 3rd Qu.:1.00 3rd Qu.:0.00 3rd Qu.:103.00 3rd Qu.: 96.25
## Max. :1.00 Max. :1.00 Max. :1.00 Max. :135.00 Max. :128.00
## CADERA OBCENT_ATP COLESTEROL HDL
## Min. : 82.0 Min. :0.00 Min. :117.0 Min. : 31.00
## 1st Qu.: 98.0 1st Qu.:0.00 1st Qu.:185.8 1st Qu.: 46.75
## Median :102.0 Median :1.00 Median :209.0 Median : 54.50
## Mean :104.1 Mean :0.54 Mean :211.8 Mean : 55.18
## 3rd Qu.:110.2 3rd Qu.:1.00 3rd Qu.:234.8 3rd Qu.: 61.25
## Max. :136.0 Max. :1.00 Max. :340.0 Max. :102.00
## LDL LDL_C TG CnoHDL
## Min. : 0.0 Length:100 Min. : 38.0 Min. : 58.0
## 1st Qu.:113.8 Class :character 1st Qu.: 63.5 1st Qu.:130.5
## Median :131.0 Mode :character Median : 91.5 Median :155.5
## Mean :133.0 Mean :116.8 Mean :156.7
## 3rd Qu.:153.2 3rd Qu.:131.5 3rd Qu.:178.5
## Max. :230.0 Max. :843.0 Max. :283.0
## ApoA ApoB LPA A1C
## Min. : 0.0 Min. : 0.00 Min. : 2.39 Min. : 4.498
## 1st Qu.:116.6 1st Qu.: 72.00 1st Qu.: 5.52 1st Qu.: 4.991
## Median :129.5 Median : 82.50 Median :10.45 Median : 5.287
## Mean :124.7 Mean : 80.43 Mean :19.69 Mean : 5.457
## 3rd Qu.:144.9 3rd Qu.: 95.00 3rd Qu.:26.65 3rd Qu.: 5.607
## Max. :239.9 Max. :161.00 Max. :74.60 Max. :10.605
## hba1 CREATININA GLUCB SOG
## Min. : 5.500 Min. :0.400 Min. : 59.0 Min. : 0.00
## 1st Qu.: 6.200 1st Qu.:0.675 1st Qu.: 85.0 1st Qu.: 83.75
## Median : 6.600 Median :0.800 Median : 91.0 Median :100.00
## Mean : 7.226 Mean :0.784 Mean :100.9 Mean :107.06
## 3rd Qu.: 7.000 3rd Qu.:0.900 3rd Qu.:105.2 3rd Qu.:124.75
## Max. :53.000 Max. :1.400 Max. :223.0 Max. :337.00
## Tol_Glucosa DM conocida SM
## Length:100 Min. :0.00 Length:100 Min. :0.00
## Class :character 1st Qu.:0.00 Class :character 1st Qu.:0.00
## Mode :character Median :0.00 Mode :character Median :0.00
## Mean :0.12 Mean :0.36
## 3rd Qu.:0.00 3rd Qu.:1.00
## Max. :1.00 Max. :1.00
## PCR INSULINEMIA PAI_1 fvw
## Min. :0.3000 Min. : 0.600 Min. : 1.29 Min. : 23.50
## 1st Qu.:0.3200 1st Qu.: 4.700 1st Qu.:15.10 1st Qu.: 78.38
## Median :0.3400 Median : 6.600 Median :24.00 Median :104.50
## Mean :0.4123 Mean : 8.599 Mean :28.07 Mean :106.12
## 3rd Qu.:0.3400 3rd Qu.:10.850 3rd Qu.:37.92 3rd Qu.:137.00
## Max. :2.2400 Max. :32.800 Max. :90.30 Max. :199.00
## fibri HMC HOMA IR
## Min. :1.670 Min. : 2.740 Min. : 0.1391 Min. :0.00
## 1st Qu.:2.835 1st Qu.: 8.947 1st Qu.: 1.0256 1st Qu.:0.00
## Median :3.125 Median :10.775 Median : 1.5011 Median :0.00
## Mean :3.243 Mean :11.101 Mean : 2.3531 Mean :0.31
## 3rd Qu.:3.683 3rd Qu.:12.787 3rd Qu.: 2.7168 3rd Qu.:1.00
## Max. :5.740 Max. :31.850 Max. :17.2293 Max. :1.00
## ecnos ppr fibratos CETP
## Length:100 Length:100 Length:100 Length:100
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## PON_192
## Length:100
## Class :character
## Mode :character
##
##
##
# Me da un resumen estadístico de las variables numéricas y conteo de valores de texto
Explicación:
La función str() me permite revisar que cada variable
tenga el tipo correcto:
La función summary() me permite ver los valores mínimos,
máximos, medianas y medias en las variables numéricas, y también revisar
si hay datos faltantes (NA).
PASO 3: Transformación y recodificación de variables
En este paso ajusto los tipos de variable para que R las interprete correctamente, hay algunas variables que están en formato numérico (0 y 1),que realmente representan categorías como “Sí” y “No”, y por tanto debo recodificarlas como factores, para que las tablas y gráficos me muestren nombres descriptivos y no números.
# Recodificación de variables dicotómicas (0 = No, 1 = Sí)
Dataset$SEDENTARIO <- factor(Dataset$SEDENTARIO, levels = c(0,1), labels = c("No","Si"))
Dataset$HTA_conocida <- factor(Dataset$HTA_conocida, levels = c(0,1), labels = c("No","Si"))
Dataset$HTA_OMS <- factor(Dataset$HTA_OMS, levels = c(0,1), labels = c("No","Si"))
Dataset$A_DIAB <- factor(Dataset$A_DIAB, levels = c(0,1), labels = c("No","Si"))
Dataset$ECV_B <- factor(Dataset$ECV_B, levels = c(0,1), labels = c("No","Si"))
Dataset$TABACO <- factor(Dataset$TABACO, levels = c(0,1), labels = c("No","Si"))
Dataset$ALCOHOL <- factor(Dataset$ALCOHOL, levels = c(0,1), labels = c("No","Si"))
Dataset$STATIN <- factor(Dataset$STATIN, levels = c(0,1), labels = c("No","Si"))
Dataset$IR <- factor(Dataset$IR, levels = c(0,1), labels = c("No","Si"))
Dataset$SM <- factor(Dataset$SM, levels = c(0,1), labels = c("No","Si"))
# Variable SEXO: convierto a factor
Dataset$SEXO <- factor(Dataset$SEXO, levels = c("Femenino","Masculino"))
# Variable Escolaridad: convertir a factor ordenado
Dataset$Escolaridad <- factor(Dataset$Escolaridad,
levels = c("Primaria","Secundaria","Universidad"),
ordered = TRUE)
## Verificación de los tipos de variables después de la recodificación
str(Dataset)
## tibble [100 × 51] (S3: tbl_df/tbl/data.frame)
## $ ID : num [1:100] 700 570 29 1003 994 ...
## $ EDAD : num [1:100] 35 69 38 30 62 30 40 57 42 35 ...
## $ SEXO : Factor w/ 2 levels "Femenino","Masculino": 2 1 1 2 1 2 2 2 2 1 ...
## $ PESO : num [1:100] 112.5 76 89.6 57.5 82 ...
## $ TALLA : num [1:100] 162 168 171 159 164 ...
## $ SEDENTARIO : Factor w/ 2 levels "No","Si": 2 1 1 2 1 2 2 2 1 2 ...
## $ Escolaridad : Ord.factor w/ 3 levels "Primaria"<"Secundaria"<..: 1 1 1 3 2 3 2 1 1 2 ...
## $ TAS : num [1:100] 125 130 120 100 130 90 120 110 125 140 ...
## $ TAD : num [1:100] 85 70 90 60 70 60 70 70 75 80 ...
## $ HTA_conocida: Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
## $ HTA_OMS : Factor w/ 2 levels "No","Si": 1 1 2 1 1 1 1 1 1 2 ...
## $ A_DIAB : Factor w/ 2 levels "No","Si": 2 1 2 1 2 1 1 1 1 2 ...
## $ ECV_B : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
## $ TABACO : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 2 1 ...
## $ ALCOHOL : Factor w/ 2 levels "No","Si": 1 1 1 2 1 2 1 1 2 1 ...
## $ STATIN : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
## $ CINTURA : num [1:100] 124 99 105 77 112 96 102 93 87 126 ...
## $ CINTURADESP : num [1:100] 119 94 100 72 107 91 97 88 82 121 ...
## $ CADERA : num [1:100] 136 104 99 99 100 105 107 110 98 121 ...
## $ OBCENT_ATP : num [1:100] 1 0 1 0 1 1 1 1 0 1 ...
## $ COLESTEROL : num [1:100] 219 176 245 183 233 175 239 244 209 204 ...
## $ HDL : num [1:100] 56 57 65 59 48 80 50 58 50 38 ...
## $ LDL : num [1:100] 144 95 171 116 161 83 167 166 141 116 ...
## $ LDL_C : chr [1:100] "140 - 160" "80 - 100" "160 - 180" "100 - 120" ...
## $ TG : num [1:100] 95 120 47 38 122 60 112 104 90 250 ...
## $ CnoHDL : num [1:100] 163 119 180 124 185 95 189 186 159 166 ...
## $ ApoA : num [1:100] 132 145 0 122 129 ...
## $ ApoB : num [1:100] 102 72 0 76 103 50 109 87 75 93 ...
## $ LPA : num [1:100] 5.26 11.2 2.39 8.35 3.81 32.7 6.88 24.9 7.6 8.92 ...
## $ A1C : num [1:100] 6.86 6.67 6.07 4.79 5.68 ...
## $ hba1 : num [1:100] 8.4 8.5 7.4 5.9 7.3 6.1 6.4 6.5 6 6.4 ...
## $ CREATININA : num [1:100] 0.8 1.1 0.8 0.7 0.7 0.5 0.8 0.6 0.7 0.9 ...
## $ GLUCB : num [1:100] 172 156 89 75 91 59 87 113 83 91 ...
## $ SOG : num [1:100] 337 301 91 74 173 87 100 117 89 74 ...
## $ Tol_Glucosa : chr [1:100] "DM" "DM" "NGT" "NGT" ...
## $ DM : num [1:100] 1 1 0 0 0 0 0 0 0 0 ...
## $ conocida : chr [1:100] "Diabetes no conocida" "Diabetes no conocida" "Normal" "Normal" ...
## $ SM : Factor w/ 2 levels "No","Si": 2 2 1 1 1 1 1 1 1 2 ...
## $ PCR : num [1:100] 1.1 0.34 0.32 0.34 0.34 0.3 0.3 0.34 0.32 0.4 ...
## $ INSULINEMIA : num [1:100] 32.8 4.9 4.2 8 4.6 7.9 16.1 2.6 3.9 12.1 ...
## $ PAI_1 : num [1:100] 53.6 39.8 24.2 17.2 24.2 11.1 33.8 8.77 13.8 49 ...
## $ fvw : num [1:100] 129 118 46.5 23.5 111 80.7 158 142 146 105 ...
## $ fibri : num [1:100] 3.37 3.13 2.69 3.8 3.24 2.84 2.8 3.29 2.94 3.02 ...
## $ HMC : num [1:100] 9.84 9.72 12.48 10.27 13.3 ...
## $ HOMA : num [1:100] 13.918 1.886 0.922 1.48 1.033 ...
## $ IR : Factor w/ 2 levels "No","Si": 2 1 1 1 1 1 2 1 1 2 ...
## $ ecnos : chr [1:100] "bb" "ab" "aa" "ab" ...
## $ ppr : chr [1:100] "pp" "0" "0" "pp" ...
## $ fibratos : chr [1:100] "No" "No" "No" "No" ...
## $ CETP : chr [1:100] "B1B1" "B1B2" "0" "0" ...
## $ PON_192 : chr [1:100] "QR" "QR" "0" "QR" ...
Explicación:
Con esta recodificación logré que las variables cualitativas se traten como factores, esto evita que R me calcule promedios en variables como Sexo o Sedentario y me permite crear tablas y gráficos con etiquetas claras (“Sí”/“No”).
Resultado que he obtenido:
Interpretación:
Esto me confirma que la base de datos está completamente lista para análisis estadístico, y a partir de aquí, R me podrá calcular correctamente las medidas descriptivas y graficar según el tipo de variable (numérica o categórica).
PASO 4: Análisis descriptivo de la variable cuantitativa “EDAD”
En este paso realizare un análisis descriptivo completo de la variable EDAD. La edad es una variable cuantitativa continua que permite describir la distribución de la población estudiada en términos de tendencia central, dispersión y forma.
Calcularé medidas de tendencia central y dispersión básicas:
library(dplyr)
Dataset %>%
summarise(
media = mean(EDAD),
mediana = median(EDAD),
desviacion = sd(EDAD),
minimo = min(EDAD),
maximo = max(EDAD),
rango = max(EDAD) - min(EDAD),
IQR = IQR(EDAD)
)
Conceptos claves para poder interpretar los valores obtenidos:
La media me representa la edad promedio del grupo.
La mediana me muestra el punto central (mitad de la distribución).
La desviación estándar me refleja cuánto se dispersan las edades respecto al promedio.
El rango me muestra la diferencia entre el valor máximo y mínimo.
El IQR (rango intercuartílico) me indica la amplitud del 50% central de los datos.
Mi interpretación de las medidas descriptivas de la variable EDAD:
La media de edad (46.2 años) representa el promedio general del grupo,por lo que sugiere que la población del estudio está compuesta, en su mayoría, por adultos de mediana edad.
La mediana (44.5 años) me indica que el 50% de los participantes tiene menos de 44.5 años y el otro 50% tiene más, donde la cercanía entre la media y la mediana me dice que la distribución de la edad es aproximadamente simétrica.
La desviación estándar (11.2 años) refleja una variabilidad moderada, lo que significa que, en promedio, las edades se desvían unos 11 años del promedio, lo cual denota una población heterogénea,con presencia tanto de adultos jóvenes como mayores.
El valor mínimo (30 años) y máximo (79 años) muestran el rango etario total del grupo. El rango (49 años) cuantifica esta amplitud, confirmando que la muestra abarca adultos en diferentes etapas del ciclo vital.
El rango intercuartílico (IQR = 15.2) me indica que el 50% central de los individuos tiene edades comprendidas entre aproximadamente 37 y 52 años (Q1 y Q3), concentrando la mayor parte de los valores en torno a la mediana. En conjunto, estas medidas me describen una distribución de edad centrada en la adultez media, con dispersión moderada y sin evidencia inicial de asimetrías muy marcadas.
PASO 4B: Medidas de forma (asimetría y curtosis) y coeficiente de variación
En este paso analizaré la forma de la distribución de la variable EDAD, donde la asimetría (skewness) me permite identificar si la distribución se inclina hacia edades mayores o menores y la curtosis (kurtosis) me evalúa si los valores están más o menos concentrados alrededor de la media. Además, calcularé el coeficiente de variación (CV) como una medida relativa de dispersión que compara la desviación estándar con la media.
library(e1071)
coef_variacion <- function(x) sd(x, na.rm = TRUE) / mean(x, na.rm = TRUE)
forma_edad <- Dataset %>%
summarise(
media = mean(EDAD, na.rm = TRUE),
sd = sd(EDAD, na.rm = TRUE),
CV = coef_variacion(EDAD),
asimetria = skewness(EDAD, type = 3, na.rm = TRUE),
curtosis = kurtosis(EDAD, type = 3, na.rm = TRUE)
)
forma_edad
Interpretación de las medidas de forma y dispersión relativa:
Variable que estoy analizando es la EDAD
La media (46.2 años) me representa el valor promedio de la edad en toda la muestra, siendo este valor el que me permite tener una idea general del “centro” de la distribución, por lo que en términos clínico-epidemiológicos, me indica que la población de este estudio está compuesta principalmente por adultos de mediana edad, lo que puede ser relevante para interpretar factores de riesgo metabólicos o cardiovasculares.
La desviación estándar (DE = 11.2 años) me muestra cuánto se dispersan las edades alrededor del promedio, por lo que cuanto mayor sea la DE, más heterogénea es la población, por lo que en este caso, una DE de 11.2 me indica que la mayoría de los individuos difieren del promedio por unos 11 años aproximadamente, lo que refleja una variabilidad moderada dentro del grupo etario.
El coeficiente de variación (CV = 0.242) se calcula como la relación entre la desviación estándar y la media (sd/mean), siendo una medida de dispersión relativa, que me permite comparar la variabilidad entre diferentes variables con distintas unidades.
Un CV de 24.2% significa que la dispersión de la edad representa cerca del 24% del valor medio, lo cual se considera una variabilidad moderada, pues estadísticamente, un CV menor al 30% suele interpretarse como estabilidad u homogeneidad en la variable medida.
La asimetría (skewness = 0.566) indica que la distribución de edades está ligeramente sesgada hacia la derecha (asimetría positiva), esto significa que la mayoría de las personas tienen edades por debajo de la media, pero existen algunos valores más altos (personas mayores) que extienden la cola derecha del histograma, siendo un patrón típico en poblaciones adultas, donde hay más personas en edades medias que en edades avanzadas.
La curtosis (kurtosis = -0.442) evalúa el grado de “apuntamiento” o concentración de los valores en torno a la media. Un valor negativo (curtosis < 0) indica una distribución platicúrtica, es decir, más aplanada que la normal, por lo que me sugiere que las edades están entonces más dispersas y que no existen valores extremos concentrados alrededor del promedio, por lo que la población no presenta un grupo muy dominante en una edad específica, sino una distribución considero que amplia y más homogénea de edades dentro del rango adulto.
En conjunto,con estos resultados me parece que indican que la variable EDAD tiene una distribución moderadamente simétrica, con dispersión media y una ligera tendencia hacia edades mayores, pero sin valores extremos que distorsionen la media,y considero que es fundamental para decidir qué pruebas estadísticas aplicar (por ejemplo, paramétricas si se confirma que hay normalidad).
PASO 4C: Representación gráfica de la distribución de EDAD
En este paso graficaré la variable EDAD para visualizar su distribución y confirmar los resultados numéricos obtenidos en los pasos anteriores. Las gráficas me permitiran identificar visualmente si la variable presenta simetría, sesgo o valores atípicos, lo cual es importante cuando decida el tipo de análisis estadístico que puedo aplicar.
Utilizaré tres tipos de gráficos complementarios:
Histograma: me muestra la frecuencia con que se repiten los valores de edad.
Boxplot o diagrama de caja: permite observar la dispersión, la mediana y posibles valores extremos (outliers).
Curva de densidad: me proporciona una visualización suavizada de la distribución, facilitando la identificación de la forma general y la asimetría.
library(ggplot2)
## ---- HISTOGRAMA DE EDAD ----
ggplot(Dataset, aes(x = EDAD)) +
geom_histogram(
bins = 10, # Numero de barras o intervalos
fill = "skyblue", # Color de relleno
color = "black", # Color del borde
alpha = 0.7 # Transparencia
) +
labs(
title = "Distribucion de la variable EDAD",
x = "Edad (anios)",
y = "Frecuencia"
) +
theme_minimal()
Interpretación del histograma:
Observo que la mayoría de los participantes se concentran entre los 35 y 55 años, con una menor frecuencia en edades más altas. La forma del histograma creo que coincide con la asimetría positiva encontrada en el análisis numérico (ligera cola hacia la derecha) lo que confirma que existen algunos individuos mayores que elevan el promedio general.
No evidencio valores extremos o atípicos notables,por lo que considero que hay estabilidad del conjunto de datos.
## ---- BOXPLOT DE EDAD ----
ggplot(Dataset, aes(y = EDAD)) +
geom_boxplot(
fill = "lightgreen",
color = "darkgreen",
outlier.color = "red",
outlier.shape = 8,
outlier.size = 3
) +
labs(
title = "Diagrama de caja de la variable EDAD",
y = "Edad (anios)"
) +
theme_minimal()
Interpretación del boxplot:
El diagrama muestra que la mediana de edad se sitúa cerca de los 45 años, lo cual coincide con el valor numérico que me dio en el calculo antes (mediana = 44.5). La caja verde (que representa el rango intercuartílico) es de tamaño moderado, lo que me indica una dispersión media en las edades centrales,por ejemplo la línea de la mediana no está centrada exactamente dentro de la caja, lo que podría ser por un leve sesgo positivo ya identificado en los cálculos de asimetría (skewness = 0.566) es decir, una ligera inclinación hacia edades mayores.
También observo un único valor atípico leve (~79 años), que corresponde a un individuo mayor dentro del grupo, este valor no altera la tendencia general y considero que es compatible con la variabilidad esperada en una población adulta, por lo cual no representa un error o una observación anómala.
## ---- CURVA DE DENSIDAD DE EDAD ----
ggplot(Dataset, aes(x = EDAD)) +
geom_density(fill = "coral", alpha = 0.6, color = "darkred", size = 1) +
labs(
title = "Curva de densidad de la variable EDAD",
x = "Edad (anios)",
y = "Densidad"
) +
theme_minimal()
Interpretación de la curva de densidad:
La curva de densidad me proporciona una representación suavizada y continua de la distribución de la edad, lo cual me permite apreciar con mayor claridad la forma general de los datos,además observo que el pico de la distribución se encuentra aproximadamente entre los 40 y 45 años, lo que me confirma que esta es la zona de mayor concentración de participantes y corresponde a la moda de la variable.
La curva presenta una cola más extendida hacia la derecha, lo que me ratifica visualmente la asimetría positiva detectada en los cálculos estadísticos (skewness = 0.566), pues esta cola derecha me está indicando que, aunque la mayoría de los individuos se concentra en edades medias, existe un grupo menor de personas mayores que amplía el rango hacia valores más altos, por lo que me parece coherente con la estructura etaria de poblaciones adultas en estudios clínicos.
Además,considero que la forma de la curva es relativamente aplanada, lo que me respalda el hallazgo de una curtosis negativa (kurtosis = -0.442) es decir, una distribución platicúrtica y esto me sugiere que los datos no están excesivamente concentrados alrededor de la media, sino que presentan una dispersión moderada y homogénea a lo largo del rango de edad analizado en esta base de datos.
En conjunto,las tres gráficas (histograma, boxplot y curva de densidad) me confirman que la variable EDAD presenta una distribución aproximadamente normal con una leve asimetría hacia edades más altas, dispersión moderada y sin valores extremos significativos que comprometan la validez del análisis,por lo cual, considero que si avanzara en el análisis,esta misma variable cumpliría con los supuestos necesarios para la aplicación de pruebas estadísticas paramétricas en análisis siguientes.
PASO 5: Tablas de frecuencia y tablas cruzadas
En este paso generaré tablas de frecuencia simples y cruzadas para las variables categóricas de interés, como SEDENTARIO y ESCOLARIDAD. Las tablas de frecuencia me permiten resumir el número de observaciones por categoría, y las tablas cruzadas muestran cómo se relacionan dos variables entre sí dentro del conjunto de datos, por lo que esto constituye la base de mi análisis descriptivo categórico en R.
library(dplyr)
library(tidyr)
## ---- TABLA DE FRECUENCIA UNIVARIADA ----
## Variable: SEDENTARIO (0 = No sedentario, 1 = Sedentario)
freq_sedentario <- Dataset %>%
count(SEDENTARIO) %>%
mutate(
porcentaje = round(100 * n / sum(n), 1)
)
freq_sedentario
Interpretación:
Esta tabla me resume la distribución del comportamiento sedentario, donde el número absoluto (n) indica cuántas personas son sedentarias y cuántas no. El porcentaje (%) expresa la proporción dentro del total de la muestra,por ejemplo, si el 60% se clasifica como sedentario, esto me dice que la mayoría de la población tiene baja actividad física, lo que podría tener implicaciones en la salud metabólica o cardiovascular.
Interpretación de la tabla de frecuencia de la variable SEDENTARIO:
Al ejecutar el código, obtuve una tabla con dos categorías:
Esto significa que, dentro de la población que he analizado, el 54% de los participantes se identifican como sedentarios, mientras que el 46% no lo son, es decir, existe una ligera predominancia de individuos con estilo de vida sedentario.
Desde un punto de vista descriptivo y epidemiológico, este resultado considero que indica que más de la mitad de la muestra presenta un nivel bajo de actividad física, lo que podría representar un factor de riesgo relevante para enfermedades crónicas no transmisibles (como hipertensión, obesidad o diabetes tipo 2).
Estadísticamente, esta tabla resume la frecuencia absoluta (n) y la frecuencia relativa (porcentaje), mostrando cómo se distribuye la variable categórica “SEDENTARIO” en la base de datos. Este tipo de tabla me parece importante para describir el comportamiento de las variables cualitativas y constituye la base para comparaciones posteriores (por ejemplo, mediante tablas cruzadas o pruebas de independencia Chi-cuadrado).
Entonces para resumir tengo en esta base de datos que: 1) La mayoría de los individuos son sedentarios (54%). 2) La diferencia con los no sedentarios (46%) es leve, pero me sugiere un patrón de predominio del sedentarismo en la población.
PASO 5A: Visualización de la distribución de sedentarismo mediante gráfico de sectores
Para complementar la tabla de frecuencias, construiré un gráfico de sectores (también conocido como gráfico de pastel o pie chart) que me permitirá visualizar de manera más intuitiva la proporción de personas sedentarias versus no sedentarias en la muestra.
library(ggplot2)
# Grafico de sectores para SEDENTARIO
Dataset %>%
count(SEDENTARIO) %>%
mutate(porcentaje = round(100 * n / sum(n), 1)) %>%
ggplot(aes(x = "", y = n, fill = SEDENTARIO)) +
geom_col(color = "white", size = 1) +
coord_polar(theta = "y") +
geom_text(aes(label = paste0(porcentaje, "%")),
position = position_stack(vjust = 0.5),
color = "white", size = 5, fontface = "bold") +
scale_fill_manual(values = c("pink", "lightgreen")) +
labs(
title = "Distribucion del sedentarismo en la poblacion estudiada",
fill = "Sedentarismo"
) +
theme_void() +
theme(
plot.title = element_text(face = "bold", hjust = 0.5, size = 14),
legend.position = "right"
)
Interpretación del gráfico de sectores:
El gráfico de sectores me proporciona una representación visual muy clara de la distribución del sedentarismo en la población estudiada. Observo que el sector correspondiente a las personas sedentarias (color verde) ocupa aproximadamente el 54% del círculo, mientras que el sector de personas no sedentarias (color rosa) representa el 46%.
Esta representación circular me permite apreciar de manera inmediata que existe una ligera predominancia del sedentarismo en la muestra, aunque la diferencia no es muy marcada, además la distribución casi equitativa (cerca del 50-50) me dice que esta población estudiada presenta una composición relativamente balanceada en términos de actividad física, por lo que me parece un hallazgo interesante desde el punto de vista epidemiológico.
El gráfico de sectores complementa perfectamente la tabla de frecuencias, ya que mientras la tabla me proporciona los valores exactos y porcentajes precisos, el gráfico me ofrece una interpretación visual que facilita mejor la comunicación de los resultados, especialmente cuando presento hallazgos a audiencias no especializadas en estadística.
Desde una perspectiva de salud pública, considero que este patrón de distribución del sedentarismo justifica la implementación de programas de promoción de actividad física dirigidos a la población general, dado que más de la mitad de los participantes presenta este factor de riesgo modificable,afortunadamente para enfermedades crónicas no transmisibles.
PASO 5B: Tabla cruzada entre SEDENTARIO y ESCOLARIDAD
En este paso analizaré cómo se distribuye el sedentarismo según el nivel educativo, pues esta relación me parece útil para observar posibles patrones de comportamiento o estilos de vida asociados con la escolaridad.
library(dplyr)
library(tidyr)
## Creo la tabla cruzada
tabla_cruzada <- Dataset %>%
count(SEDENTARIO, Escolaridad) %>%
pivot_wider(
names_from = Escolaridad,
values_from = n,
values_fill = 0
)
tabla_cruzada
Interpretación de la tabla cruzada SEDENTARIO × ESCOLARIDAD:
En esta tabla observo cómo se distribuye el sedentarismo (clasificado como “Sí” o “No”) según el nivel educativo de los participantes.
En total, noto que la mayor concentración de personas se encuentra en los niveles de secundaria y primaria, y dentro de quienes tienen nivel de secundaria, el número de personas sedentarias (28) es levemente superior al de no sedentarias (26), lo que indica que en este grupo predomina una ligera tendencia al sedentarismo.
En el grupo con nivel primaria, también hay más personas sedentarias (20) que no sedentarias (13), reforzando la idea por literatura, de que a menor nivel educativo puede presentarse una mayor frecuencia de sedentarismo,en cambio, en el grupo con nivel universitario, ocurre lo contrario, pues hay más personas no sedentarias (7) que sedentarias (4),lo cual podría asociarse con una mayor conciencia de autocuidado o acceso a estilos de vida saludables universitarios.
Finalmente, las personas sin estudios formales son pocas (2 sedentarias y 0 no sedentarias), por lo que este subgrupo tiene poco peso relativo en este análisis, pero debería de profundizarse para hallar mas información,
En conjunto, esta tabla me sugiere una posible relación entre el nivel educativo y el sedentarismo, pues a menor escolaridad, parece haber una mayor proporción de personas sedentarias, sin embargo,aunque esta observación es descriptiva y no implica causalidad directa,considero que sí aporta una pista útil para futuras hipótesis epidemiológicas o intervenciones en salud pública si se llevara a cabo en esta población analizada.
PASO 6: Visualización gráfica del sedentarismo según escolaridad
En este paso construyo un gráfico de barras agrupadas que muestra la relación entre el nivel educativo (Escolaridad) y el comportamiento sedentario (Sí / No),lo cual me permite identificar visualmente cómo se distribuye el sedentarismo entre los distintos niveles educativos.
library(ggplot2)
# Gráfico de barras agrupadas
ggplot(Dataset, aes(x = Escolaridad, fill = SEDENTARIO)) +
geom_bar(position = "dodge", color = "black") +
scale_fill_manual(values = c("purple", "yellow")) +
labs(title = "Distribucion del sedentarismo segun nivel educativo",
x = "Nivel educativo",
y = "Frecuencia de personas",
fill = "Sedentarismo") +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold", hjust = 0.5),
axis.text.x = element_text(angle = 15, vjust = 1, hjust = 1)
)
# Gráfico de barras apiladas (alternativo)
ggplot(Dataset, aes(x = Escolaridad, fill = SEDENTARIO)) +
geom_bar(position = "fill", color = "black") +
scale_y_continuous(labels = scales::percent) +
scale_fill_manual(values = c("lightpink", "lightblue")) +
labs(title = "Proporcion de sedentarismo por nivel educativo",
x = "Nivel educativo",
y = "Porcentaje (%)",
fill = "Sedentarismo") +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold", hjust = 0.5),
axis.text.x = element_text(angle = 15, vjust = 1, hjust = 1)
)
Interpretación de los gráficos:
1. Gráfico de barras agrupadas:
Este gráfico muestra las frecuencias absolutas de personas sedentarias (“Sí”) y no sedentarias (“No”) dentro de cada nivel educativo. Observo que las categorías con mayor número de participantes son la educación primaria y secundaria, por lo que en ambos grupos, las barras amarillas (sedentarios) superan levemente a las moradas (no sedentarios),sugiriendo que el sedentarismo es más común entre quienes tienen menor escolaridad.
En contraste, el grupo con educación universitaria presenta la tendencia inversa, pues predominan los individuos no sedentarios, lo cual podría estar asociado a un mayor nivel de conciencia sobre la importancia del autocuidado, acceso a información en salud o mejores condiciones laborales y sociales.
Este patrón respalda la evidencia de que la educación puede aveces actuar como un determinante social que influye en los hábitos de actividad física y, por tanto, en los estilos de vida saludables.
2. Gráfico de barras apiladas (proporciones):
En esta representación relativa, observo la misma tendencia, pero expresada en términos porcentuales, por ejemplo la proporción de personas sedentarias (zona azul) es mayor en los niveles de primaria y secundaria, alcanzando más del 50%, mientras que en el grupo universitario esa proporción desciende de forma notoria. En “sin estudios”, aunque el número es bajo,llama la atención que casi todos los casos son sedentarios lo cual refuerza la asociación entre menor educación y menor actividad física.
De forma integral, ambos gráficos reflejan una relación inversa entre el nivel educativo y el sedentarismo, pues a medida que aumenta la escolaridad disminuye la proporción de personas sedentarias, entonces este hallazgo, aunque descriptivo,lo considero de alta relevancia epidemiológica porque evidencia desigualdades sociales que podrían considerarse en programas de promoción de la salud y prevención de enfermedades crónicas no transmisibles.
PASO 7: Análisis descriptivo de la variable cuantitativa “GLUCOSA BASAL (GLUCB)” En este paso realizaré un análisis descriptivo de la variable GLUCB (glucosa basal), la cual me parece epidemiológicamente relevante porque es un marcador bioquímico fundamental para la detección de alteraciones del metabolismo de la glucosa, prediabetes y diabetes mellitus tipo 2. Esta variable es cuantitativa continua y me permitirá identificar el comportamiento metabólico de la población estudiada.
Calculare medidas de tendencia central, dispersión y forma:
library(dplyr)
library(e1071)
Dataset %>%
summarise(
media = mean(GLUCB, na.rm = TRUE),
mediana = median(GLUCB, na.rm = TRUE),
desviacion = sd(GLUCB, na.rm = TRUE),
minimo = min(GLUCB, na.rm = TRUE),
maximo = max(GLUCB, na.rm = TRUE),
rango = max(GLUCB, na.rm = TRUE) - min(GLUCB, na.rm = TRUE),
IQR = IQR(GLUCB, na.rm = TRUE),
CV = sd(GLUCB, na.rm = TRUE) / mean(GLUCB, na.rm = TRUE),
asimetria = skewness(GLUCB, type = 3, na.rm = TRUE),
curtosis = kurtosis(GLUCB, type = 3, na.rm = TRUE)
)
Interpretación de las medidas descriptivas de GLUCB:
La media de glucosa basal de 100.93 representa el promedio de glucemia en ayunas de toda la población estudiada, siendo este valor fundamental porque, según los criterios diagnósticos internacionales, valores de glucosa basal iguales o superiores a 100 mg/dL se consideran glucosa alterada en ayunas (prediabetes), y valores iguales o superiores a 126 mg/dL en dos mediciones confirman el diagnóstico de diabetes mellitus,referencia: Diabetes Care. 2023 doi: 10.2337/dc24-S002.
La mediana de 91 me indica el punto central de la distribución, es decir, el 50% de los participantes tiene valores de glucosa por debajo de este punto y el otro 50% por encima, por tanto la comparación entre media y mediana me permite evaluar si existe asimetría en los datos, por lo que si la media es notablemente superior a la mediana,en este caso aproximadamente 101 mg/dl sugiere la presencia de valores más altos (extremos) que elevan el promedio.
La desviación estándar de aproximadamente 29 me refleja la variabilidad de los niveles de glucosa en la población,siendo una desviación alta por lo que indica que existe gran heterogeneidad en el control glucémico de los participantes, lo cual podría deberse a la presencia tanto de individuos sanos como de personas con alteraciones metabólicas diversas.
El rango (máximo 223 y mínimo de 59) definitivamente muestra la amplitud total de los valores de glucosa observados, por lo que me parece útil para identificar si existen casos con hiperglucemia severa o, por el contrario, si toda la población se mantiene dentro de rangos relativamente normales.
El coeficiente de variación 0.29 aproximado (CV) me permite evaluar la dispersión relativa de la glucosa basal. Un CV elevado (mayor al 30%) me sugeriría que la variable presenta alta variabilidad en relación con su media, lo cual sería esperable en poblaciones con perfiles metabólicos heterogéneos, sin embargo está muy cerca.
La asimetría de 2.38 indica una distribución fuertemente sesgada hacia la derecha, lo cual considero que tiene relevancia epidemiológica significativa,pues este valor es muy elevado,aunque la mayoría de los participantes presenta niveles de glucosa basal dentro de rangos normales o cercanos a lo normal, existe un subgrupo minoritario pero importante de individuos con hiperglucemia marcada que extiende considerablemente la cola derecha de la distribución. Esta asimetría tan pronunciada me confirma que la población estudiada es metabólicamente heterogénea, con un claro contraste entre individuos con buen control glucémico y aquellos con alteraciones metabólicas severas, por lo cual me parece fundamental considerar análisis estratificados o la utilización de la mediana como medida de tendencia central más representativa del individuo típico, dado que la media se encuentra posiblemente inflada por los valores extremadamente altos de glucemia.
La curtosis de 6.10 me evalúa el grado de concentración de los valores alrededor de la media. Una curtosis negativa me indicaría una distribución platicúrtica (aplanada),mientras que una curtosis positiva como en este caso,sugiere una distribución leptocúrtica (más puntiaguda), con valores muy concentrados alrededor del promedio.
En conjunto, estos indicadores me permiten caracterizar el perfil glucémico de la población, lo que considero fundamental para identificar la prevalencia de alteraciones metabólicas y orientar intervenciones preventivas o terapéutica,por lo cual, me parece que este análisis descriptivo de la glucosa basal complementa de manera coherente el estudio endocrino-metabólico que estoy desarrollando.
Visualización gráfica de la glucosa basal:
# Histograma de GLUCB
ggplot(Dataset, aes(x = GLUCB)) +
geom_histogram(bins = 12, fill = "lightblue", color = "black", alpha = 0.7) +
geom_vline(xintercept = 100, color = "purple", linetype = "dashed", size = 1) +
geom_vline(xintercept = 126, color = "lightgreen", linetype = "dashed", size = 1) +
annotate("text", x = 100, y = Inf, label = "Prediabetes (100 mg/dL)",
vjust = 1.5, hjust = -0.1, color = "blue", size = 3) +
annotate("text", x = 126, y = Inf, label = "Diabetes (126 mg/dL)",
vjust = 3, hjust = -0.1, color = "darkred", size = 3) +
labs(
title = "Distribucion de la glucosa basal en la poblacion estudiada",
x = "Glucosa basal (mg/dL)",
y = "Frecuencia"
) +
theme_minimal()
# Boxplot de GLUCB
ggplot(Dataset, aes(y = GLUCB)) +
geom_boxplot(fill = "lightgreen", color = "red", outlier.color = "darkred",
outlier.size = 3) +
geom_hline(yintercept = 100, color = "blue", linetype = "dashed", size = 1) +
geom_hline(yintercept = 126, color = "lightblue", linetype = "dashed", size = 1) +
labs(
title = "Diagrama de caja de la glucosa basal",
y = "Glucosa basal (mg/dL)"
) +
theme_minimal()
Interpretación de los gráficos de glucosa basal:
Histograma:
El histograma muestra la distribución de frecuencias de la glucosa basal,allí observo que la mayoría de los participantes se concentra en valores por debajo de 100 mg/dL, lo cual me indica que gran parte de la población tiene niveles de glucosa dentro del rango norma, sin embargo, también identifico la presencia de algunos individuos con valores superiores a 100 mg/dL (línea morada punteada), lo que me sugiere la existencia de casos con glucosa alterada en ayunas o prediabetes.
Además, noto que existen participantes con valores superiores a 126 mg/dL (línea verde punteada), lo cual me confirma la presencia de casos con diabetes mellitus en la muestra.
Esta distribución me parece coherente con el perfil epidemiológico de poblaciones adultas, donde las alteraciones del metabolismo de la glucosa son cada vez más prevalentes, especialmente en contextos de sedentarismo y factores de riesgo metabólicos. Diabetes Care. 2023 doi: 10.2337/dc24-S002.
Boxplot:
El diagrama de caja me permite identificar la posición de la mediana de 91, el rango intercuartílico y la presencia de valores atípicos, por lo que observo que la mediana de glucosa basal se encuentra por debajo de 100 mg/dL, lo que me indica que al menos el 50% de los participantes tiene niveles normales de glucemia en ayunas.
La caja del boxplot me muestra el rango en el que se concentra el 50% central de los datos, por tanto si esta caja se encuentra completamente por debajo de la línea de 100 mg/dL, me sugiere que la mayoría de la población tiene un buen control glucémico, sin embargo, la presencia de outliers (puntos rojos oscuros) por encima de las líneas de referencia me confirma la existencia de casos con hiperglucemia por lo que considero que estos individuos si requieren seguimiento clínico y posiblemente intervención terapéutica.
En síntesis, el análisis descriptivo de la glucosa basal me revela que, aunque la mayor parte de la población estudiada presenta niveles de glucemia dentro de rangos normales, existe un subgrupo de individuos con alteraciones metabólicas que podría beneficiarse de intervenciones preventivas o terapéuticas,por lo cual, me parece fundamental integrar estos hallazgos con las demás variables del estudio (edad, sedentarismo, escolaridad) para comprender mejor los determinantes de la salud metabólica en esta población.
Gráfico de dispersión entre Peso y Talla
Este gráfico me explora la relación entre el peso y la talla de los participantes y me permite identificar tendencias de proporcionalidad y posibles valores atípicos.
ggplot(Dataset, aes(x = PESO, y = TALLA)) +
geom_point(color = "darkred", size = 2) +
labs(title = "Relacion entre Peso y Talla",
x = "Peso (kg)",
y = "Talla (cm)") +
theme_minimal(base_size = 13)
Interpretación del gráfico de dispersión:
Tipo de gráfico:
Este es un gráfico de dispersión (scatter plot), diseñado para representar visualmente la relación entre dos variables cuantitativas, como en este caso, el peso (kg) y la talla (cm) de los participantes. Cada punto del gráfico corresponde a un individuo en la muestra, ubicando su valor de peso en el eje X y su talla en el eje Y, por lo que este tipo de gráfico es apropiado porque explora asociaciones lineales o patrones de tendencia entre variables continuas.
Observo una tendencia ascendente en la nube de puntos rojos a nivel central, donde se agrupa la mayoría de los participantes, lo cual me sugiere que a medida que aumenta la talla, también tiende a aumentar el peso, por tanto esto me indica una relación directamente proporcional entre ambas variables, lo que es fisiológicamente esperable dado que la estatura se asocia con una mayor masa corporal.
Sin embargo, identifico varios puntos extremos o atípicos que me merecen atención desde una perspectiva epidemiológica, pues noto individuos con tallas superiores a 185 cm, los cuales se encuentran notablemente alejados del grupo principal de la distribución, por lo que me parece que representan casos de estatura excepcionalmente alta dentro de esta población adulta.
También identifico participantes con tallas inferiores a 155 cm, especialmente algunos casos alrededor de 150 cm, que se separan visualmente de la tendencia central, lo cual considero que refleja la variabilidad natural de la estatura en poblaciones adultas, aunque también podría ser por la presencia de individuos con condiciones que afectan el crecimiento.
Particularmente, detecto un punto extremo en el rango de peso cercano a 127 kg, que se encuentra considerablemente alejado tanto horizontal como verticalmente del patrón general, por lo que me sugiere la presencia de obesidad severa o condiciones metabólicas importantes en ese individuo específico.
La presencia de estos valores atípicos me indican que, aunque la relación peso-talla sigue un patrón coherente en la mayoría de los casos, existe heterogeneidad en la composición corporal de la población.
Desde una perspectiva epidemiológica, considero que estos casos extremos podrían representar perfiles de riesgo diferenciados que merecerían análisis específicos, especialmente en el contexto de un estudio endocrino-metabólico donde las alteraciones antropométricas pueden asociarse con factores de riesgo cardiovascular.