AI Skill Report Card

Analyzing Dichotomous Data in R

A85·Aug 8, 2026·Source: Web
Markdown
--- name: analyzing-dichotomous-data-in-r description: Realiza análisis descriptivo e inferencial de datos dicotómicos (binarios) usando R, incluyendo pruebas de proporciones, chi-cuadrado, regresión logística y verificación de supuestos estadísticos. Usar cuando se necesite analizar variables categóricas de dos niveles (sí/no, presente/ausente, éxito/fracaso) en el contexto de un plan de tesis, validar hipótesis de investigación, o generar reportes estadísticos rigurosos con visualizaciones e interpretación en español. --- # Análisis de Datos Dicotómicos en R
14 / 15
R
library(dplyr) library(ggplot2) library(stats) # 1. Cargar y explorar datos <- read.csv("datos.csv") str(datos) table(datos$variable_dicotomica) prop.table(table(datos$variable_dicotomica)) # 2. Descriptivo básico resumen <- datos %>% summarise( n = n(), positivos = sum(variable_dicotomica == 1, na.rm = TRUE), proporcion = mean(variable_dicotomica == 1, na.rm = TRUE), ic_inf = prop.test(sum(variable_dicotomica == 1), n())$conf.int[1], ic_sup = prop.test(sum(variable_dicotomica == 1), n())$conf.int[2] ) print(resumen) # 3. Inferencial: comparación de proporciones entre dos grupos tabla <- table(datos$grupo, datos$variable_dicotomica) prueba <- chisq.test(tabla, correct = TRUE) print(prueba) # 4. Visualización ggplot(datos, aes(x = factor(grupo), fill = factor(variable_dicotomica))) + geom_bar(position = "fill") + labs(x = "Grupo", y = "Proporción", fill = "Resultado", title = "Distribución de la variable dicotómica por grupo") + theme_minimal()
Recommendation
Add an example showing regression logística (glm) end-to-end since it's mentioned in the decision tree but not fully demonstrated in examples
15 / 15

Progress:

  • Paso 1: Comprender el objetivo del plan de tesis y las hipótesis a probar
  • Paso 2: Explorar y limpiar los datos con dplyr
  • Paso 3: Verificar tamaño de muestra y condiciones de aplicabilidad
  • Paso 4: Análisis descriptivo (frecuencias, proporciones, IC)
  • Paso 5: Seleccionar la prueba inferencial adecuada
  • Paso 6: Ejecutar la prueba y verificar supuestos
  • Paso 7: Visualizar resultados con ggplot2
  • Paso 8: Reportar hallazgos con interpretación y límites claros

Paso 1-2: Preparación de datos

  • Verificar que la variable esté codificada como factor binario (0/1, "Sí"/"No")
  • Revisar valores perdidos (NA) y decidir tratamiento (exclusión, imputación) de forma justificada
  • Usar dplyr::mutate(), filter(), group_by() para limpiar y segmentar

Paso 3: Verificación de condiciones antes de elegir prueba

CondiciónCómo verificarRegla práctica
Tamaño muestralnrow(datos) por grupo/celdaChi-cuadrado requiere celdas esperadas ≥5; si no, usar Fisher exacto
IndependenciaDiseño del estudioDatos pareados → McNemar; independientes → Chi-cuadrado/prop.test
Número de grupostable(datos$grupo)2 grupos → prop.test/chi-cuadrado; >2 grupos → chi-cuadrado de independencia
Variables predictoras múltiplesDiseño de hipótesisRegresión logística (glm(family = binomial))

Paso 5: Selección de prueba estadística (árbol de decisión)

  1. Una proporción vs. valor esperadoprop.test() o binom.test()
  2. Dos proporciones independientesprop.test() o chisq.test()
  3. Muestras pareadas (mismo sujeto, pre/post)mcnemar.test()
  4. Tabla de contingencia >2x2chisq.test(); si celdas esperadas <5, fisher.test()
  5. Efecto de múltiples predictores sobre variable dicotómicaglm(y ~ x1 + x2, family = binomial)
  6. Tamaño de muestra pequeño (<30 o celdas esperadas <5) → siempre preferir fisher.test()

Paso 6: Verificación de supuestos y buenas prácticas

  • Reportar tamaño de efecto (odds ratio, riesgo relativo, diferencia de proporciones), no solo el p-valor
  • Calcular intervalos de confianza al 95% siempre
  • Verificar independencia de observaciones (crítico: no usar chi-cuadrado con datos pareados)
  • Controlar error tipo I: si hay comparaciones múltiples, aplicar corrección (Bonferroni, Holm)
  • Para regresión logística: verificar multicolinealidad (car::vif()) y bondad de ajuste (anova(modelo, test="Chisq"))

Paso 7: Visualización recomendada

  • Gráfico de barras apiladas o position="fill" para proporciones entre grupos
  • Gráfico de barras de error con IC 95% para proporciones puntuales
  • Curva ROC (pROC::roc()) si se evalúa capacidad predictiva de un modelo logístico
Recommendation
Include a brief note on interpreting odds ratios in plain language for thesis reporting context

Ejemplo 1: Comparación de dos proporciones independientes

Input: Plan de tesis pregunta si la proporción de pacientes que desarrollan complicación (Sí/No) difiere entre grupo tratamiento y grupo control. n=150 en cada grupo.

Output:

R
tabla <- table(datos$grupo, datos$complicacion) resultado <- prop.test(tabla)

Reporte: "La proporción de complicaciones fue 12% en el grupo tratamiento vs 22% en el grupo control (diferencia = -10 puntos porcentuales, IC 95% [-19.2%, -0.8%], χ²=4.51, p=0.034). Existe evidencia estadística de una diferencia significativa entre grupos al nivel α=0.05. Se recomienda considerar el tamaño de efecto clínico además del estadístico."

Ejemplo 2: Datos pareados (antes/después)

Input: Se evaluó si un mismo grupo de 80 estudiantes aprobó (Sí/No) un examen antes y después de una intervención educativa.

Output:

R
tabla_pareada <- table(datos$antes, datos$despues) mcnemar.test(tabla_pareada, correct = TRUE)

Reporte: "Usando la prueba de McNemar (apropiada para datos pareados), se encontró un cambio significativo en la tasa de aprobación (χ²=8.1, p=0.004). El 25% de estudiantes que no aprobaron inicialmente sí aprobaron tras la intervención, mientras que ningún estudiante empeoró."

Ejemplo 3: Muestra pequeña con celdas esperadas <5

Input: Estudio piloto con n=18, tabla 2x2 con una celda esperada de 3.

Output:

R
fisher.test(tabla)

Reporte: "Dado el tamaño muestral reducido (celda esperada <5), se utilizó la prueba exacta de Fisher en lugar de chi-cuadrado. No se encontró asociación significativa (p=0.21, OR=2.3, IC95%[0.4, 12.8]). Se recomienda cautela al interpretar por el tamaño muestral limitado."

  • Siempre reportar n, proporciones, IC 95%, estadístico de prueba, y p-valor — nunca solo el p-valor
  • Justificar la elección de la prueba explícitamente en el reporte (por qué chi-cuadrado y no Fisher, por qué McNemar y no chi-cuadrado)
  • Usar set.seed() si se realizan simulaciones o remuestreos (bootstrap)
  • Verificar supuestos ANTES de correr la prueba, no después
  • Al usar regresión logística, reportar odds ratios exponenciando coeficientes: exp(coef(modelo))
  • Documentar el código con comentarios que expliquen el "por qué", no solo el "qué"
  • Usar theme_minimal() o similar en ggplot2 para gráficos profesionales y legibles
  • No usar chi-cuadrado cuando hay celdas con frecuencia esperada <5 (usar Fisher)
  • No aplicar chi-cuadrado a datos pareados/repetidos (usar McNemar)
  • No interpretar "no significativo" como "no hay efecto" — puede ser falta de poder estadístico
  • No omitir el tamaño de muestra al reportar resultados
  • No hacer múltiples comparaciones sin corregir el nivel de significancia
  • No confundir significancia estadística con relevancia clínica/práctica — siempre discutir ambas
  • No extrapolar resultados más allá de la población/muestra estudiada
  • No presentar solo el p-valor sin intervalos de confianza ni tamaño de efecto
0
Grade AAI Skill Framework
Scorecard
Criteria Breakdown
Quick Start
14/15
Workflow
15/15
Examples
18/20
Completeness
19/20
Format
14/15
Conciseness
13/15