El investigador elige los casos que considera más
representativos o informativos.
Se usa en estudios cualitativos o en investigaciones donde se busca un
perfil específico.
Participantes
De la poblacion total de 3.102 pacientes que ingresaron con traumatismo craneoencefálico(TCE) al Hospital Universitario Hernando Moncaleano Perdomo de Neiva, se tomo como muestra unicamente los pacientes con traumatismo moderado y severo, que participan en el Estudio “Secuelas cognitivas, comportamentales y emocionales con relación a la funcionalidad endocrina en el paciente con TCE ocasionado por accidentes de tránsito”, este estudio complementa la limitación respecto a la validación en esta condición clínica.
Un total de 104 participantes: - 34 con diagnóstico de TCE y 70 controles cognitivamente sanos, se tuvieron en cuenta los siguientes criterios clínicos:
Criterios de exclusión para los dos grupos TCE y controles:
Mujeres en estado de gestación.
Consumo activo de sustancias psicoactivas (SPA).
Historial neurológico y/o psiquiátrico.
Comorbilidades (diabetes, hipertensión arterial, dislipidemia) y/o alteraciones hormonales.
Historia clínica pre-mórbida de aprendizaje (se tendrá en cuenta la resistencia escolar).
Trastornos perceptivos visuales, auditivos o motores que imposibilitan el desarrollo de la evaluación.
Criterios de inclusión grupo clínico TCE - Hombres y mujeres entre los 18 a 50 años de edad.
Traumatismo craneoencefálico (TCE) secundario a accidente de tránsito, con puntuación en la escala de Glasgow en el rango moderado a severo.
Criterios de inclusión grupo control
Hombres y mujeres entre los 18 a 50 años de edad.
# Leer el archivo datos.csv
datos <- read.csv("datos.csv",
sep = ";",
fileEncoding = "latin1",
header = TRUE)
Es importante dejar claro que, para este ejercicio únicamente haremos uso del grupo clínico.
TCE = 34 participantes, grupo clínico con TCE moderado y severo
Variables a trabajar:
Edad
Sexo
Escolaridad
Clasificación TCE
edad <- datos$edad
media_estimada <- mean(edad)
media_estimada
## [1] 29.5
escolaridad <- datos$escolaridad
media_estimada <- mean(escolaridad)
media_estimada
## [1] 8.794118
La edad media de los participantes con traumatismo craneoencefálico y su promedio de años de escolaridad se muestran en los resultados anteriores.
varianza_estimada <- var(edad)
desviacion_estandar <- sd(edad)
cat("Varianza de la edad:", varianza_estimada, "años²\n")
## Varianza de la edad: 87.04545 años²
cat("Desviación estándar:", desviacion_estandar, "años\n")
## Desviación estándar: 9.329815 años
La varianza de la edad muestra qué tan dispersos están los datos respecto a la media. La desviación estándar indica que, en promedio, las edades de los participantes se alejan de la media en aproximadamente la cantidad mostrada arriba.
proporcion_por_Sexo <- table(datos$sexo) / nrow(datos)
proporcion_por_Sexo
##
## Femenino Masculino
## 0.2058824 0.7941176
De acuerdo con los resultados, la mayoría de los participantes con TCE son de sexo masculino, mientras que una menor proporción corresponde al sexo femenino.
proporcion_por_Clasificación_TCE <- table(datos$clasificacion_tce) / nrow(datos)
proporcion_por_Clasificación_TCE
##
## Moderado Severo
## 0.5588235 0.4411765
De los participantes con TCE, una mayor proporción fueron clasificados como casos moderados, mientras que el resto correspondieron a casos severos, según la Escala de Coma de Glasgow (GCS).
proporcion_declive_moderado <- sum(datos$clasificacion_tce == "Moderado" &
datos$deterioro_clinico == "S?") /
sum(datos$clasificacion_tce == "Moderado")
proporcion_declive_moderado
## [1] 0
Algunos pacientes con TCE moderado presentaron deterioro clínico y pasaron a clasificarse como TCE severo, según la GCS.
media_moderado <- mean(datos$edad[datos$clasificacion_tce == "Moderado"], na.rm = TRUE)
media_severo <- mean(datos$edad[datos$clasificacion_tce == "Severo"], na.rm = TRUE)
diferencia_medias <- media_moderado - media_severo
media_moderado
## [1] 28.78947
media_severo
## [1] 30.4
diferencia_medias
## [1] -1.610526
Los resultados muestran las edades promedio de los pacientes con TCE moderado y severo. La diferencia de edad entre ambos grupos es pequeña, siendo los casos severos ligeramente mayores que los moderados.
media_moderado <- mean(datos$escolaridad
[datos$clasificacion_tce == "Moderado"], na.rm = TRUE)
media_severo <- mean(datos$escolaridad
[datos$clasificacion_tce == "Severo"], na.rm = TRUE)
diferencia_medias <- media_moderado - media_severo
media_moderado
## [1] 9.263158
media_severo
## [1] 8.2
diferencia_medias
## [1] 1.063158
Los resultados muestran que los pacientes con TCE moderado tienen, en promedio, más años de escolaridad que aquellos con TCE severo. Esta diferencia podría sugerir una posible relación entre el nivel educativo y la gravedad del TCE.
hombres_moderado <- sum(datos$clasificacion_tce == "Moderado" & datos$sexo == "Masculino", na.rm = TRUE)
hombres_severo <- sum(datos$clasificacion_tce == "Severo" & datos$sexo == "Masculino", na.rm = TRUE)
total_moderado <- sum(datos$clasificacion_tce == "Moderado", na.rm = TRUE)
total_severo <- sum(datos$clasificacion_tce == "Severo", na.rm = TRUE)
p1 <- hombres_moderado / total_moderado
p2 <- hombres_severo / total_severo
diferencia_p <- p1 - p2
# Mostrar proporciones
cat("Proporción de hombres en TCE moderado:", p1, "\n")
## Proporción de hombres en TCE moderado: 0.7368421
cat("Proporción de hombres en TCE severo:", p2, "\n")
## Proporción de hombres en TCE severo: 0.8666667
cat("Diferencia de proporciones (p1 - p2):", diferencia_p, "\n\n")
## Diferencia de proporciones (p1 - p2): -0.1298246
# Crear tabla de contingencia
tabla <- matrix(c(hombres_moderado, total_moderado - hombres_moderado,
hombres_severo, total_severo - hombres_severo),
nrow = 2, byrow = TRUE,
dimnames = list(c("Moderado", "Severo"), c("Masculino", "Femenino")))
print(tabla)
## Masculino Femenino
## Moderado 14 5
## Severo 13 2
# Test Exacto de Fisher (más apropiado para muestras pequeñas)
fisher.test(tabla)
##
## Fisher's Exact Test for Count Data
##
## data: tabla
## p-value = 0.4263
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.03600613 3.30318204
## sample estimates:
## odds ratio
## 0.4411833
En el análisis de la distribución por sexo, se observó que la proporción de hombres fue mayor entre los casos severos que en los moderados. Sin embargo, el test estadístico indica que esta diferencia no es significativa. Esto significa que, en esta muestra, la distribución por sexo es similar entre los pacientes con TCE moderado y severo.
Variable: Estado_Civil
estado_civil <- as.factor(datos$estado_civil)
table(estado_civil)
## estado_civil
## Casados Solteros Unión_libre
## 3 21 10
Un estimador insesgado de una proporción p es la proporción muestral (p̂ = x/n)
prop_civil <- prop.table(table(estado_civil))
cat("\n=== INSESGADEZ ===\n")
##
## === INSESGADEZ ===
cat("Proporciones muestrales por categoría:\n")
## Proporciones muestrales por categoría:
print(prop_civil)
## estado_civil
## Casados Solteros Unión_libre
## 0.08823529 0.61764706 0.29411765
cat("→ Las proporciones muestrales son estimadores insesgados de las proporciones poblacionales.\n")
## → Las proporciones muestrales son estimadores insesgados de las proporciones poblacionales.
Las proporciones calculadas de Estado_Civil no tienen sesgo, es decir, no sobreestiman ni subestiman las proporciones reales de la población. Los resultados de la muestra reflejan correctamente la realidad.
En variables categóricas, la eficiencia se evalúa por la varianza del estimador de proporción: Var(p̂) = [p * (1 - p)] / n
n <- length(estado_civil)
varianza_prop <- prop_civil * (1 - prop_civil) / n
cat("\n=== EFICIENCIA ===\n")
##
## === EFICIENCIA ===
cat("Varianza de los estimadores de proporción (menor = más eficiente):\n")
## Varianza de los estimadores de proporción (menor = más eficiente):
print(varianza_prop)
## estado_civil
## Casados Solteros Unión_libre
## 0.002366171 0.006945858 0.006106249
cat("→ Las categorías con proporciones extremas tienen menor varianza.\n")
## → Las categorías con proporciones extremas tienen menor varianza.
Las categorías con proporciones más altas o más bajas tienen menor varianza, lo que significa que son estimaciones más precisas y estables.
La proporción muestral es consistente: al aumentar n, se aproxima a p real.
set.seed(123)
n_vals <- seq(10, n, by = 10)
prop_evol <- sapply(n_vals, function(k) {
muestra <- sample(estado_civil, k, replace = TRUE)
prop.table(table(muestra))["Solteros"]
})
plot(n_vals, prop_evol, type = "b", pch = 19, col = "darkblue",
main = "Consistencia del estimador de proporción (Solteros)",
xlab = "Tamaño de muestra", ylab = "Proporción estimada de Solteros")
abline(h = prop_civil["Solteros"], col = "red", lty = 2)
cat("\n=== CONSISTENCIA ===\n")
##
## === CONSISTENCIA ===
cat("Observa el gráfico: la proporción estimada de Solteros se estabiliza conforme aumenta n.\n")
## Observa el gráfico: la proporción estimada de Solteros se estabiliza conforme aumenta n.
El gráfico muestra que cuando aumenta el tamaño de la muestra, la proporción estimada se acerca al valor real. Esto demuestra que el estimador es consistente.
En una distribución binomial/multinomial, el conteo de éxitos (o frecuencias) es un estimador suficiente para p.
cat("\n=== SUFICIENCIA ===\n")
##
## === SUFICIENCIA ===
cat("Para una variable categórica (multinomial), las frecuencias observadas son suficientes para estimar las proporciones poblacionales.\n")
## Para una variable categórica (multinomial), las frecuencias observadas son suficientes para estimar las proporciones poblacionales.
cat("→ La tabla de frecuencias contiene toda la información necesaria sobre p.\n")
## → La tabla de frecuencias contiene toda la información necesaria sobre p.
La tabla de frecuencias contiene toda la información necesaria para estimar las proporciones. No necesitamos datos adicionales para hacer estas estimaciones.
Para categorías, la robustez se interpreta como estabilidad frente a errores de clasificación.
cat("\n=== Robustez ===\n")
##
## === Robustez ===
cat("La proporción muestral es moderadamente robusta.\n")
## La proporción muestral es moderadamente robusta.
cat("Si existen pocos errores de clasificación en 'Estado_Civil', las proporciones cambian poco.\n")
## Si existen pocos errores de clasificación en 'Estado_Civil', las proporciones cambian poco.
El estimador de proporciones es robusto cuando pequeños errores en la clasificación no cambian mucho los resultados.
set.seed(123)
estado_mod <- estado_civil
indices <- sample(1:n, size = 0.05*n)
estado_mod[indices] <- sample(levels(estado_civil), length(indices), replace = TRUE)
prop_original <- prop.table(table(estado_civil))
prop_modificada <- prop.table(table(estado_mod))
cat("\nProporciones originales:\n")
##
## Proporciones originales:
print(prop_original)
## estado_civil
## Casados Solteros Unión_libre
## 0.08823529 0.61764706 0.29411765
cat("Proporciones con 5% de errores:\n")
## Proporciones con 5% de errores:
print(prop_modificada)
## estado_mod
## Casados Solteros Unión_libre
## 0.08823529 0.61764706 0.29411765
cat("→ Cambios pequeños indican robustez del estimador.\n")
## → Cambios pequeños indican robustez del estimador.
Al introducir 5% de errores aleatorios, se puede observar si el estimador es robusto. Si las proporciones cambian poco, el estimador es robusto; si cambian mucho, no lo es. En este caso, los cambios observados permiten evaluar la estabilidad del estimador frente a errores de clasificación.
Un intervalo de confianza (IC) es un rango de valores construido a partir de una muestra que se utiliza para estimar un parámetro poblacional desconocido. Incorpora la variabilidad inherente al muestreo.
Un solo valor (como la media muestral) da una estimación puntual, pero no informa cuánta incertidumbre existe. El intervalo de confianza incorpora esa incertidumbre y nos da un rango razonable donde podría estar el parámetro poblacional.
Si construimos muchos intervalos de confianza del 95%, aproximadamente 95 de cada 100 contendrán al verdadero valor del parámetro poblacional. No podemos saber si el intervalo concreto obtenido en nuestra muestra es uno que contiene o no el verdadero parámetro.
Para esta sección, analizaremos la escolaridad (años de educación formal) de los pacientes con TCE, construyendo un intervalo de confianza del 95% para la media poblacional.
# Extraer la variable escolaridad
escolaridad_vec <- datos$escolaridad
# Calcular estadísticas descriptivas
n_escol <- length(escolaridad_vec)
media_escol <- mean(escolaridad_vec, na.rm = TRUE)
sd_escol <- sd(escolaridad_vec, na.rm = TRUE)
min_escol <- min(escolaridad_vec, na.rm = TRUE)
max_escol <- max(escolaridad_vec, na.rm = TRUE)
cat("=== ESTADÍSTICAS DESCRIPTIVAS: Escolaridad ===\n")
## === ESTADÍSTICAS DESCRIPTIVAS: Escolaridad ===
cat("Tamaño de muestra:", n_escol, "\n")
## Tamaño de muestra: 34
cat("Media:", round(media_escol, 2), "años\n")
## Media: 8.79 años
cat("Desviación estándar:", round(sd_escol, 2), "años\n")
## Desviación estándar: 4.15 años
cat("Mínimo:", min_escol, "años\n")
## Mínimo: 2 años
cat("Máximo:", max_escol, "años\n")
## Máximo: 16 años
Los resultados muestran el promedio de años de escolaridad de los pacientes con TCE, así como la variabilidad de estos datos.
# Nivel de confianza del 95%
nivel_confianza <- 0.95
alpha <- 1 - nivel_confianza
# Error estándar de la media
error_estandar <- sd_escol / sqrt(n_escol)
# Valor crítico de la distribución t-Student
valor_critico <- qt(1 - alpha/2, df = n_escol - 1)
# Margen de error
margen_error <- valor_critico * error_estandar
# Límites del intervalo de confianza
limite_inferior <- media_escol - margen_error
limite_superior <- media_escol + margen_error
cat("\n=== INTERVALO DE CONFIANZA DEL 95% PARA LA MEDIA ===\n")
##
## === INTERVALO DE CONFIANZA DEL 95% PARA LA MEDIA ===
cat("Media muestral:", round(media_escol, 2), "años\n")
## Media muestral: 8.79 años
cat("Error estándar:", round(error_estandar, 2), "\n")
## Error estándar: 0.71
cat("Valor crítico (t):", round(valor_critico, 3), "\n")
## Valor crítico (t): 2.035
cat("Margen de error:", round(margen_error, 2), "años\n")
## Margen de error: 1.45 años
cat("IC 95%: [", round(limite_inferior, 2), ",", round(limite_superior, 2), "] años\n")
## IC 95%: [ 7.35 , 10.24 ] años
El intervalo de confianza del 95% nos indica que estamos 95% confiados de que la media poblacional de años de escolaridad de pacientes con TCE se encuentra entre los límites calculados.
Con un 95% de confianza, podemos afirmar que la media poblacional de años de escolaridad de pacientes con Trauma Craneoencefálico moderado y severo se encuentra dentro del intervalo calculado. Esto significa que si repitiéramos este estudio muchas veces con diferentes muestras, aproximadamente el 95% de los intervalos construidos contendrían la verdadera media poblacional.
Para comprender mejor la interpretación del IC, realizaremos una simulación que muestra cómo diferentes muestras generan diferentes intervalos de confianza.
set.seed(456)
# Parámetros de la simulación
n_muestra <- n_escol # tamaño de cada muestra (34 pacientes)
mu_estimado <- media_escol # usamos la media muestral como estimación de la media poblacional
sigma_estimado <- sd_escol # usamos la desviación estándar muestral
# Número de simulaciones a realizar
Nsim <- 15 # número de intervalos a simular
cat("Número de simulaciones a realizar:", Nsim, "\n")
## Número de simulaciones a realizar: 15
# Crear dataframe para almacenar resultados
resultados_sim <- data.frame(
iteracion = 1:Nsim,
limite_inf = NA,
limite_sup = NA,
contiene_media = NA
)
# Simulación de múltiples muestras e intervalos
for (i in 1:Nsim) {
# Generar una muestra aleatoria (asumiendo distribución normal)
muestra_sim <- rnorm(n_muestra, mean = mu_estimado, sd = sigma_estimado)
# Calcular media y desviación estándar de la muestra
media_sim <- mean(muestra_sim)
sd_sim <- sd(muestra_sim)
se_sim <- sd_sim / sqrt(n_muestra)
# Valor crítico t
t_crit <- qt(0.975, df = n_muestra - 1)
# Calcular límites del IC
L <- media_sim - t_crit * se_sim
U <- media_sim + t_crit * se_sim
# Guardar resultados
resultados_sim$limite_inf[i] <- L
resultados_sim$limite_sup[i] <- U
resultados_sim$contiene_media[i] <- (L <= mu_estimado & U >= mu_estimado)
}
# Calcular porcentaje de intervalos que contienen la media
porcentaje_cobertura <- sum(resultados_sim$contiene_media) / Nsim * 100
cat("\n=== RESULTADOS DE LA SIMULACIÓN ===\n")
##
## === RESULTADOS DE LA SIMULACIÓN ===
cat("Número de intervalos simulados:", Nsim, "\n")
## Número de intervalos simulados: 15
cat("Intervalos que contienen la media:", sum(resultados_sim$contiene_media), "\n")
## Intervalos que contienen la media: 14
cat("Porcentaje de cobertura:", round(porcentaje_cobertura, 1), "%\n")
## Porcentaje de cobertura: 93.3 %
# Crear gráfico de los intervalos de confianza
plot(NA,
xlim = c(min(resultados_sim$limite_inf), max(resultados_sim$limite_sup)),
ylim = c(1, Nsim),
xlab = "Años de Escolaridad",
ylab = "Número de Intervalo",
main = paste0(Nsim, " Intervalos de Confianza del 95% para Escolaridad"))
# Dibujar cada intervalo
for (i in 1:Nsim) {
color_linea <- ifelse(resultados_sim$contiene_media[i], "blue", "red")
segments(resultados_sim$limite_inf[i], i,
resultados_sim$limite_sup[i], i,
col = color_linea, lwd = 2)
}
# Línea vertical en la media estimada
abline(v = mu_estimado, col = "darkgreen", lwd = 3, lty = 2)
# Leyenda
legend("topright",
legend = c("Contiene la media", "No contiene la media", "Media estimada"),
col = c("blue", "red", "darkgreen"),
lwd = c(2, 2, 3),
lty = c(1, 1, 2),
cex = 0.8)
El gráfico muestra múltiples intervalos de confianza del 95%, cada uno calculado a partir de muestras simuladas:
Este gráfico ilustra que, aunque construimos intervalos con 95% de confianza, algunos intervalos (aproximadamente el 5%) no contendrán el verdadero valor del parámetro poblacional. Sin embargo, en la práctica, solo disponemos de un intervalo (el calculado con nuestra muestra real) y no sabemos si es uno de los que contiene o no el valor verdadero.
Finalmente, comparemos los intervalos de confianza de escolaridad entre pacientes con TCE moderado y severo.
# Separar datos por clasificación
escol_moderado <- datos$escolaridad[datos$clasificacion_tce == "Moderado"]
escol_severo <- datos$escolaridad[datos$clasificacion_tce == "Severo"]
# Función para calcular IC del 95%
calcular_ic <- function(x, nivel = 0.95) {
n <- length(x)
media <- mean(x, na.rm = TRUE)
sd_x <- sd(x, na.rm = TRUE)
se <- sd_x / sqrt(n)
t_crit <- qt((1 + nivel)/2, df = n - 1)
margen <- t_crit * se
return(c(media = media,
limite_inf = media - margen,
limite_sup = media + margen,
n = n))
}
# Calcular IC para ambos grupos
ic_moderado <- calcular_ic(escol_moderado)
ic_severo <- calcular_ic(escol_severo)
cat("\n=== INTERVALOS DE CONFIANZA POR CLASIFICACIÓN TCE ===\n\n")
##
## === INTERVALOS DE CONFIANZA POR CLASIFICACIÓN TCE ===
cat("TCE MODERADO:\n")
## TCE MODERADO:
cat(" n =", ic_moderado["n"], "\n")
## n = 19
cat(" Media =", round(ic_moderado["media"], 2), "años\n")
## Media = 9.26 años
cat(" IC 95% = [", round(ic_moderado["limite_inf"], 2), ",",
round(ic_moderado["limite_sup"], 2), "] años\n\n")
## IC 95% = [ 7.3 , 11.23 ] años
cat("TCE SEVERO:\n")
## TCE SEVERO:
cat(" n =", ic_severo["n"], "\n")
## n = 15
cat(" Media =", round(ic_severo["media"], 2), "años\n")
## Media = 8.2 años
cat(" IC 95% = [", round(ic_severo["limite_inf"], 2), ",",
round(ic_severo["limite_sup"], 2), "] años\n")
## IC 95% = [ 5.82 , 10.58 ] años
Los resultados permiten comparar el nivel educativo entre pacientes con TCE moderado y severo. Las diferencias en escolaridad pueden influir en el pronóstico y rehabilitación cognitiva.
# Crear gráfico comparativo
par(mar = c(5, 6, 4, 2))
plot(1:2, c(ic_moderado["media"], ic_severo["media"]),
xlim = c(0.5, 2.5),
ylim = c(0, max(c(ic_moderado["limite_sup"], ic_severo["limite_sup"])) * 1.1),
xlab = "", ylab = "Años de Escolaridad",
main = "Comparación de IC 95% de Escolaridad por Clasificación de TCE",
pch = 19, cex = 2, col = c("steelblue", "coral"),
xaxt = "n")
# Añadir intervalos de confianza
arrows(1, ic_moderado["limite_inf"],
1, ic_moderado["limite_sup"],
angle = 90, code = 3, length = 0.1, lwd = 2, col = "steelblue")
arrows(2, ic_severo["limite_inf"],
2, ic_severo["limite_sup"],
angle = 90, code = 3, length = 0.1, lwd = 2, col = "coral")
# Etiquetas del eje x
axis(1, at = 1:2, labels = c("TCE Moderado", "TCE Severo"))
# Añadir valores de las medias
text(1, ic_moderado["media"],
labels = round(ic_moderado["media"], 1),
pos = 4, cex = 0.9)
text(2, ic_severo["media"],
labels = round(ic_severo["media"], 1),
pos = 4, cex = 0.9)
# Línea de referencia en cero
abline(h = 0, lty = 3, col = "gray")
El gráfico muestra las medias y sus intervalos de confianza del 95% para ambos grupos. Los puntos representan las medias muestrales y las barras verticales representan los intervalos de confianza. Si los intervalos no se solapan, esto sugiere una diferencia significativa en los años de escolaridad entre ambos grupos.
Ahora analizaremos el ACER Total (Addenbrooke’s Cognitive Examination-Revised), que es una prueba cognitiva estandarizada con puntuación de 0 a 100 puntos. Esta variable es fundamental para evaluar el estado cognitivo de los pacientes con TCE, siendo más sensible que el MMSE para detectar deterioro cognitivo leve.
# Extraer la variable ACER total
acer_vec <- datos$hacer_total_100
# Calcular estadísticas descriptivas
n_acer <- length(acer_vec)
media_acer <- mean(acer_vec, na.rm = TRUE)
sd_acer <- sd(acer_vec, na.rm = TRUE)
min_acer <- min(acer_vec, na.rm = TRUE)
max_acer <- max(acer_vec, na.rm = TRUE)
cat("=== ESTADÍSTICAS DESCRIPTIVAS: ACER Total (sobre 100 puntos) ===\n")
## === ESTADÍSTICAS DESCRIPTIVAS: ACER Total (sobre 100 puntos) ===
cat("Tamaño de muestra:", n_acer, "\n")
## Tamaño de muestra: 34
cat("Media:", round(media_acer, 2), "puntos\n")
## Media: 62.79 puntos
cat("Desviación estándar:", round(sd_acer, 2), "puntos\n")
## Desviación estándar: 19.67 puntos
cat("Mínimo:", min_acer, "puntos\n")
## Mínimo: 15 puntos
cat("Máximo:", max_acer, "puntos\n")
## Máximo: 92 puntos
El ACER es una herramienta de evaluación cognitiva ampliamente utilizada en neuropsicología. Puntuaciones más bajas indican mayor deterioro cognitivo. Un punto de corte típico es 88 puntos para detectar deterioro cognitivo.
# Nivel de confianza del 95%
nivel_confianza <- 0.95
alpha <- 1 - nivel_confianza
# Error estándar de la media
error_estandar_acer <- sd_acer / sqrt(n_acer)
# Valor crítico de la distribución normal estándar (Z)
valor_critico_acer <- qnorm(1 - alpha/2)
# Margen de error
margen_error_acer <- valor_critico_acer * error_estandar_acer
# Límites del intervalo de confianza
limite_inferior_acer <- media_acer - margen_error_acer
limite_superior_acer <- media_acer + margen_error_acer
cat("\n=== INTERVALO DE CONFIANZA DEL 95% PARA ACER ===\n")
##
## === INTERVALO DE CONFIANZA DEL 95% PARA ACER ===
cat("Media muestral:", round(media_acer, 2), "puntos\n")
## Media muestral: 62.79 puntos
cat("Error estándar:", round(error_estandar_acer, 2), "\n")
## Error estándar: 3.37
cat("Valor crítico (Z):", round(valor_critico_acer, 4), "\n")
## Valor crítico (Z): 1.96
cat("Margen de error:", round(margen_error_acer, 2), "puntos\n")
## Margen de error: 6.61 puntos
cat("IC 95%: [", round(limite_inferior_acer, 2), ",", round(limite_superior_acer, 2), "] puntos\n")
## IC 95%: [ 56.18 , 69.4 ] puntos
El intervalo de confianza del 95% para el ACER nos indica el rango en el que se encuentra la media poblacional del rendimiento cognitivo de pacientes con TCE.
Comparemos el rendimiento cognitivo (ACER) entre pacientes con TCE moderado y severo.
# Separar datos por clasificación
acer_moderado <- datos$hacer_total_100[datos$clasificacion_tce == "Moderado"]
acer_severo <- datos$hacer_total_100[datos$clasificacion_tce == "Severo"]
# Función para calcular IC del 95% usando distribución normal (Z)
calcular_ic_z <- function(x, nivel = 0.95) {
n <- length(x)
media <- mean(x, na.rm = TRUE)
sd_x <- sd(x, na.rm = TRUE)
se <- sd_x / sqrt(n)
z_crit <- qnorm((1 + nivel)/2)
margen <- z_crit * se
return(c(media = media,
limite_inf = media - margen,
limite_sup = media + margen,
n = n))
}
# Calcular IC para ambos grupos
ic_acer_moderado <- calcular_ic_z(acer_moderado)
ic_acer_severo <- calcular_ic_z(acer_severo)
cat("\n=== INTERVALOS DE CONFIANZA ACER POR CLASIFICACIÓN TCE ===\n\n")
##
## === INTERVALOS DE CONFIANZA ACER POR CLASIFICACIÓN TCE ===
cat("TCE MODERADO:\n")
## TCE MODERADO:
cat(" n =", ic_acer_moderado["n"], "\n")
## n = 19
cat(" Media =", round(ic_acer_moderado["media"], 2), "puntos\n")
## Media = 67.32 puntos
cat(" IC 95% = [", round(ic_acer_moderado["limite_inf"], 2), ",",
round(ic_acer_moderado["limite_sup"], 2), "] puntos\n\n")
## IC 95% = [ 59.73 , 74.9 ] puntos
cat("TCE SEVERO:\n")
## TCE SEVERO:
cat(" n =", ic_acer_severo["n"], "\n")
## n = 15
cat(" Media =", round(ic_acer_severo["media"], 2), "puntos\n")
## Media = 57.07 puntos
cat(" IC 95% = [", round(ic_acer_severo["limite_inf"], 2), ",",
round(ic_acer_severo["limite_sup"], 2), "] puntos\n")
## IC 95% = [ 45.95 , 68.19 ] puntos
Los resultados permiten comparar el rendimiento cognitivo entre ambos grupos. Se espera que los pacientes con TCE severo presenten puntuaciones más bajas en el ACER, reflejando mayor deterioro cognitivo.
# Crear gráfico comparativo
par(mar = c(5, 6, 4, 2))
plot(1:2, c(ic_acer_moderado["media"], ic_acer_severo["media"]),
xlim = c(0.5, 2.5),
ylim = c(0, 100), # Escala del ACER es 0-100
xlab = "", ylab = "ACER Total (puntos)",
main = "Comparación de IC 95% de ACER por Clasificación de TCE",
pch = 19, cex = 2, col = c("steelblue", "coral"),
xaxt = "n")
# Añadir intervalos de confianza
arrows(1, ic_acer_moderado["limite_inf"],
1, ic_acer_moderado["limite_sup"],
angle = 90, code = 3, length = 0.1, lwd = 2, col = "steelblue")
arrows(2, ic_acer_severo["limite_inf"],
2, ic_acer_severo["limite_sup"],
angle = 90, code = 3, length = 0.1, lwd = 2, col = "coral")
# Etiquetas del eje x
axis(1, at = 1:2, labels = c("TCE Moderado", "TCE Severo"))
# Añadir valores de las medias
text(1, ic_acer_moderado["media"],
labels = round(ic_acer_moderado["media"], 1),
pos = 4, cex = 0.9)
text(2, ic_acer_severo["media"],
labels = round(ic_acer_severo["media"], 1),
pos = 4, cex = 0.9)
# Línea de referencia en 88 (punto de corte común para deterioro cognitivo)
abline(h = 88, lty = 2, col = "red", lwd = 1.5)
text(2.3, 88, "Punto de corte (88)", pos = 3, cex = 0.8, col = "red")
# Línea de referencia en cero
abline(h = 0, lty = 3, col = "gray")
El gráfico compara las puntuaciones del ACER entre ambos grupos. La línea roja marca el punto de corte típico (88 puntos) que se utiliza para identificar deterioro cognitivo. Puntuaciones por debajo de 88 sugieren deterioro. Las diferencias entre grupos son relevantes para entender el impacto de la severidad del TCE en la función cognitiva.
Hipótesis Nula (H₀): No existe una relación estadísticamente significativa entre el nivel escolar y los resultados obtenidos en el Addenbrooke’s Cognitive Examination Revised (ACE-R) en pacientes con Traumatismo Craneoencefálico (TCE).
Hipótesis Alternativa (H₁): Existe una relación positiva estadísticamente significativa entre el nivel escolar y los resultados obtenidos en el ACE-R en pacientes con TCE. Es decir, los pacientes con mayor nivel escolar obtendrán, en promedio, mayores puntuaciones en el ACE-R.
Primero, examinaremos visualmente la relación entre ambas variables mediante un diagrama de dispersión.
# Extraer las variables
escolaridad_test <- datos$escolaridad
acer_test <- datos$hacer_total_100
# Crear diagrama de dispersión
plot(escolaridad_test, acer_test,
xlab = "Años de Escolaridad",
ylab = "Puntuación ACE-R (sobre 100)",
main = "Relación entre Escolaridad y ACE-R en Pacientes con TCE",
pch = 19, col = "steelblue", cex = 1.5)
# Añadir línea de regresión
abline(lm(acer_test ~ escolaridad_test), col = "red", lwd = 2)
# Añadir línea de referencia del punto de corte ACE-R
abline(h = 88, lty = 2, col = "gray")
text(max(escolaridad_test) * 0.9, 88, "Punto de corte (88)", pos = 3, cex = 0.8)
# Calcular correlación preliminar
cor_preliminar <- cor(escolaridad_test, acer_test, use = "complete.obs")
text(min(escolaridad_test) + 2, max(acer_test) - 5,
paste0("r = ", round(cor_preliminar, 3)),
cex = 1.2, col = "darkred")
El diagrama de dispersión permite visualizar la tendencia de la relación entre ambas variables. La línea roja representa la tendencia lineal.
Dado que el diagrama de dispersión muestra datos considerablemente dispersos con posibles valores atípicos, utilizaremos el test de correlación de Spearman en lugar de Pearson. Spearman es más robusto ante:
# Test de normalidad Shapiro-Wilk
shapiro_escolaridad <- shapiro.test(escolaridad_test)
shapiro_acer <- shapiro.test(acer_test)
cat("=== PRUEBAS DE NORMALIDAD ===\n\n")
## === PRUEBAS DE NORMALIDAD ===
cat("Escolaridad (Shapiro-Wilk):\n")
## Escolaridad (Shapiro-Wilk):
cat(" W =", round(shapiro_escolaridad$statistic, 4), "\n")
## W = 0.9276
cat(" p-valor =", round(shapiro_escolaridad$p.value, 4), "\n")
## p-valor = 0.0266
cat(" Interpretación:", ifelse(shapiro_escolaridad$p.value > 0.05,
"Los datos parecen seguir una distribución normal",
"Los datos NO siguen una distribución normal"), "\n\n")
## Interpretación: Los datos NO siguen una distribución normal
cat("ACE-R (Shapiro-Wilk):\n")
## ACE-R (Shapiro-Wilk):
cat(" W =", round(shapiro_acer$statistic, 4), "\n")
## W = 0.9537
cat(" p-valor =", round(shapiro_acer$p.value, 4), "\n")
## p-valor = 0.1582
cat(" Interpretación:", ifelse(shapiro_acer$p.value > 0.05,
"Los datos parecen seguir una distribución normal",
"Los datos NO siguen una distribución normal"), "\n\n")
## Interpretación: Los datos parecen seguir una distribución normal
cat("=== DECISIÓN: Usar correlación de Spearman ===\n")
## === DECISIÓN: Usar correlación de Spearman ===
cat("Debido a la dispersión de los datos observada en el gráfico y la presencia\n")
## Debido a la dispersión de los datos observada en el gráfico y la presencia
cat("de posibles valores atípicos, se utilizará el coeficiente de correlación\n")
## de posibles valores atípicos, se utilizará el coeficiente de correlación
cat("de Spearman (rho), que evalúa la correlación de rangos en lugar de valores\n")
## de Spearman (rho), que evalúa la correlación de rangos en lugar de valores
cat("directos, siendo más robusto ante estas condiciones.\n")
## directos, siendo más robusto ante estas condiciones.
Realizaremos la prueba de correlación de Spearman con una alternativa unilateral (cola derecha), ya que nuestra hipótesis alternativa establece que ρ > 0. Spearman evalúa la correlación basándose en los rangos de los datos, lo que lo hace más robusto ante datos dispersos y valores atípicos.
# Test de correlación de Spearman (una cola, alternativa "greater")
test_correlacion <- cor.test(escolaridad_test, acer_test,
method = "spearman",
alternative = "greater",
exact = FALSE)
cat("\n=== PRUEBA DE CORRELACIÓN DE SPEARMAN (UNA COLA) ===\n\n")
##
## === PRUEBA DE CORRELACIÓN DE SPEARMAN (UNA COLA) ===
cat("Coeficiente de correlación de rangos (rho):", round(test_correlacion$estimate, 4), "\n")
## Coeficiente de correlación de rangos (rho): 0.6451
cat("Estadístico S:", round(test_correlacion$statistic, 4), "\n")
## Estadístico S: 2322.863
cat("p-valor (una cola):", round(test_correlacion$p.value, 4), "\n\n")
## p-valor (una cola): 0
cat("Nota: Spearman evalúa la correlación entre los RANGOS de las variables,\n")
## Nota: Spearman evalúa la correlación entre los RANGOS de las variables,
cat("no los valores directos, lo que lo hace robusto ante datos dispersos.\n")
## no los valores directos, lo que lo hace robusto ante datos dispersos.
# Nivel de significancia
alpha <- 0.05
cat("=== DECISIÓN ESTADÍSTICA (α = 0.05) ===\n\n")
## === DECISIÓN ESTADÍSTICA (α = 0.05) ===
if (test_correlacion$p.value < alpha) {
cat("✓ RECHAZAMOS H₀\n\n")
cat("Conclusión: Existe evidencia estadística suficiente para afirmar que hay una\n")
cat("relación monótona positiva significativa entre el nivel escolar y las puntuaciones\n")
cat("del ACE-R en pacientes con TCE (rho =", round(test_correlacion$estimate, 3),
", p =", round(test_correlacion$p.value, 4), ").\n\n")
cat("Interpretación: A pesar de la dispersión en los datos, existe una tendencia\n")
cat("significativa donde pacientes con mayor escolaridad tienden a obtener mejores\n")
cat("puntuaciones en el ACE-R. Esto sugiere que la educación puede tener un efecto\n")
cat("protector sobre el funcionamiento cognitivo en pacientes con TCE, aunque la\n")
cat("variabilidad individual es considerable.\n")
} else {
cat("✗ NO RECHAZAMOS H₀\n\n")
cat("Conclusión: No existe evidencia estadística suficiente para afirmar que hay una\n")
cat("relación monótona positiva significativa entre el nivel escolar y las puntuaciones\n")
cat("del ACE-R en pacientes con TCE (rho =", round(test_correlacion$estimate, 3),
", p =", round(test_correlacion$p.value, 4), ").\n\n")
cat("Interpretación: Aunque pudiera existir cierta tendencia, la alta dispersión\n")
cat("en los datos y la variabilidad individual no permiten concluir que el nivel\n")
cat("educativo está significativamente relacionado con el rendimiento cognitivo en el ACE-R.\n")
}
## ✓ RECHAZAMOS H₀
##
## Conclusión: Existe evidencia estadística suficiente para afirmar que hay una
## relación monótona positiva significativa entre el nivel escolar y las puntuaciones
## del ACE-R en pacientes con TCE (rho = 0.645 , p = 0 ).
##
## Interpretación: A pesar de la dispersión en los datos, existe una tendencia
## significativa donde pacientes con mayor escolaridad tienden a obtener mejores
## puntuaciones en el ACE-R. Esto sugiere que la educación puede tener un efecto
## protector sobre el funcionamiento cognitivo en pacientes con TCE, aunque la
## variabilidad individual es considerable.
cat("\n=== MAGNITUD DE LA CORRELACIÓN ===\n\n")
##
## === MAGNITUD DE LA CORRELACIÓN ===
r_valor <- abs(test_correlacion$estimate)
if (r_valor < 0.3) {
magnitud <- "débil"
} else if (r_valor < 0.5) {
magnitud <- "moderada"
} else if (r_valor < 0.7) {
magnitud <- "fuerte"
} else {
magnitud <- "muy fuerte"
}
cat("El coeficiente de correlación de Spearman (rho) =", round(test_correlacion$estimate, 3),
"indica una relación monótona", magnitud, "entre las variables.\n\n")
## El coeficiente de correlación de Spearman (rho) = 0.645 indica una relación monótona fuerte entre las variables.
cat("Nota importante: A diferencia del coeficiente de Pearson, el de Spearman evalúa\n")
## Nota importante: A diferencia del coeficiente de Pearson, el de Spearman evalúa
cat("la fuerza de la relación monótona (creciente o decreciente) entre los rangos\n")
## la fuerza de la relación monótona (creciente o decreciente) entre los rangos
cat("de las variables, sin asumir una relación lineal perfecta. Esto es especialmente\n")
## de las variables, sin asumir una relación lineal perfecta. Esto es especialmente
cat("útil cuando los datos presentan dispersión y posibles valores atípicos.\n")
## útil cuando los datos presentan dispersión y posibles valores atípicos.
cat("\n", rep("=", 70), "\n", sep = "")
##
## ======================================================================
cat(" RESUMEN DE LA PRUEBA DE HIPÓTESIS\n")
## RESUMEN DE LA PRUEBA DE HIPÓTESIS
cat(rep("=", 70), "\n\n", sep = "")
## ======================================================================
cat("Variables analizadas:\n")
## Variables analizadas:
cat(" • Variable independiente: Escolaridad (años de educación)\n")
## • Variable independiente: Escolaridad (años de educación)
cat(" • Variable dependiente: ACE-R Total (puntuación cognitiva)\n\n")
## • Variable dependiente: ACE-R Total (puntuación cognitiva)
cat("Tamaño de muestra: n =", nrow(na.omit(cbind(escolaridad_test, acer_test))), "\n\n")
## Tamaño de muestra: n = 34
cat("Prueba estadística: Correlación de Spearman (una cola)\n")
## Prueba estadística: Correlación de Spearman (una cola)
cat("Nivel de significancia: α = 0.05\n\n")
## Nivel de significancia: α = 0.05
cat("Resultados:\n")
## Resultados:
cat(" • rho (Spearman) =", round(test_correlacion$estimate, 4), "\n")
## • rho (Spearman) = 0.6451
cat(" • p-valor =", round(test_correlacion$p.value, 4), "\n")
## • p-valor = 0
cat(" • Decisión:", ifelse(test_correlacion$p.value < 0.05,
"Se rechaza H₀", "No se rechaza H₀"), "\n\n")
## • Decisión: Se rechaza H₀
cat(rep("=", 70), "\n", sep = "")
## ======================================================================
Esta prueba de hipótesis evalúa específicamente si existe una relación monótona positiva entre el nivel educativo y el rendimiento cognitivo en pacientes con TCE. El uso de Spearman permite obtener resultados más robustos dada la dispersión observada en los datos. Los resultados tienen implicaciones importantes para entender el papel de la reserva cognitiva (asociada a mayor escolaridad) en el pronóstico de pacientes con lesiones cerebrales, aunque la variabilidad individual sugiere que otros factores también influyen en el rendimiento cognitivo post-TCE.