Carga de Librerías

dir.create(Sys.getenv("R_LIBS_USER"), recursive = TRUE, showWarnings = FALSE)
.libPaths(c(Sys.getenv("R_LIBS_USER"), .libPaths()))

paquetes <- c("tidyverse", "ggplot2", "knitr", "kableExtra")

instalar_si_falta <- function(pkgs) {
  ok <- sapply(pkgs, require, character.only = TRUE, quietly = TRUE)
  faltan <- names(ok)[!ok]
  if (length(faltan)) {
    try(install.packages(faltan, dependencies = TRUE), silent = TRUE)
  }
  invisible(lapply(pkgs, require, character.only = TRUE))
}

instalar_si_falta(paquetes)

Problema 1: Relaciones Internacionales y Cambio Climático

Un investigador en Relaciones Internacionales desea analizar si existe una relación entre el nivel de desarrollo económico de un país y su apertura frente a un acuerdo internacional sobre cambio climático (a favor o En contra)

Datos

problema1 <- data.frame(
  Desarrollo = c("Bajo", "Bajo", "Medio", "Medio", "Alto", "Alto"),
  Posicion = c("A favor", "En contra", "A favor", "En contra", "A favor", "En contra"),
  Frecuencia = c(35, 15, 45, 25, 50, 10)
)

tabla_p1 <- xtabs(Frecuencia ~ Desarrollo + Posicion, data = problema1)

print(tabla_p1)
          Posicion
Desarrollo A favor En contra
     Alto       50        10
     Bajo       35        15
     Medio      45        25

Prueba Chi-Cuadrado

chi_p1 <- chisq.test(tabla_p1)

cat("Hipótesis:
")
Hipótesis:
cat("H0: No existe relación entre nivel de desarrollo y posición
")
H0: No existe relación entre nivel de desarrollo y posición
cat("H1: Existe relación entre nivel de desarrollo y posición

")
H1: Existe relación entre nivel de desarrollo y posición
cat("Resultados:
")
Resultados:
cat("Chi-cuadrado =", round(chi_p1$statistic, 4), "
")
Chi-cuadrado = 6.0132 
cat("p-valor =", round(chi_p1$p.value, 4), "
")
p-valor = 0.0495 

Problema 2: Psicología Clínica - Ansiedad y Terapia

Un equipo de investigadores en Psicología Clínica quiere estudiar la asociación entre la ansiedad de los pacientes (Alto o Bajo) y su preferencia por el tipo de terapia psicológica (Terapia Cognitivo-Conductual o Terapia Humanista)

Datos

problema2 <- data.frame(
  Ansiedad = c("Alto", "Alto", "Bajo", "Bajo"),
  Terapia = c("TCC", "Humanista", "TCC", "Humanista"),
  Frecuencia = c(42, 28, 18, 32)
)

tabla_p2 <- xtabs(Frecuencia ~ Ansiedad + Terapia, data = problema2)

print(tabla_p2)
        Terapia
Ansiedad Humanista TCC
    Alto        28  42
    Bajo        32  18

Prueba Chi-Cuadrado

chi_p2 <- chisq.test(tabla_p2)

cat("Hipótesis:
")
Hipótesis:
cat("H0: No existe asociación entre ansiedad y preferencia de terapia
")
H0: No existe asociación entre ansiedad y preferencia de terapia
cat("H1: Existe asociación entre ansiedad y preferencia de terapia

")
H1: Existe asociación entre ansiedad y preferencia de terapia
cat("Resultados:
")
Resultados:
cat("Chi-cuadrado =", round(chi_p2$statistic, 4), "
")
Chi-cuadrado = 5.7943 
cat("p-valor =", round(chi_p2$p.value, 4), "
")
p-valor = 0.0161 

Problema 3: Comportamiento Electoral en América Latina

En un estudio de comportamiento electoral en América Latina, se desea investigar si existe relación entre la zona geográfica y su preferencia política (Izquierda, Centro o Derecha)

Datos

problema3 <- data.frame(
  Zona = c("Urbana", "Urbana", "Urbana", "Rural", "Rural", "Rural"),
  Preferencia = c("Izquierda", "Centro", "Derecha", "Izquierda", "Centro", "Derecha"),
  Frecuencia = c(85, 92, 78, 45, 62, 71)
)

tabla_p3 <- xtabs(Frecuencia ~ Zona + Preferencia, data = problema3)

print(tabla_p3)
        Preferencia
Zona     Centro Derecha Izquierda
  Rural      62      71        45
  Urbana     92      78        85

Prueba Chi-Cuadrado

chi_p3 <- chisq.test(tabla_p3)

cat("Hipótesis:
")
Hipótesis:
cat("H0: No existe relación entre zona geográfica y preferencia política
")
H0: No existe relación entre zona geográfica y preferencia política
cat("H1: Existe relación entre zona geográfica y preferencia política

")
H1: Existe relación entre zona geográfica y preferencia política
cat("Resultados:
")
Resultados:
cat("Chi-cuadrado =", round(chi_p3$statistic, 4), "
")
Chi-cuadrado = 4.9442 
cat("p-valor =", round(chi_p3$p.value, 4), "
")
p-valor = 0.0844 

Problema 4: Psicología - Comparación de Estrés

Un grupo de psicólogos desea comparar el nivel de estrés en tres tipos de trabajadores

Datos

set.seed(123)

estrés_admin <- c(4.2, 3.8, 5.1, 4.5, 3.9, 4.3, 4.7, 4.1, 3.6, 4.4)
estrés_docentes <- c(5.8, 6.2, 5.5, 6.0, 5.9, 6.1, 5.7, 5.4, 6.3, 5.6)
estrés_operarios <- c(3.5, 3.8, 3.2, 3.9, 3.4, 3.7, 3.6, 3.3, 3.8, 3.5)

datos_p4 <- data.frame(
  estrés = c(estrés_admin, estrés_docentes, estrés_operarios),
  tipo = rep(c("Administrativos", "Docentes", "Operarios"), each = 10)
)

cat("Estadísticas Descriptivas:

")
Estadísticas Descriptivas:
for(grupo in unique(datos_p4$tipo)) {
  vals <- datos_p4$estrés[datos_p4$tipo == grupo]
  cat(grupo, "- Media:", round(mean(vals), 3), 
      "DS:", round(sd(vals), 3), "N:", length(vals), "
")
}
Administrativos - Media: 4.26 DS: 0.445 N: 10 
Docentes - Media: 5.85 DS: 0.303 N: 10 
Operarios - Media: 3.57 DS: 0.231 N: 10 

ANOVA

anova_p4 <- aov(estrés ~ tipo, data = datos_p4)

cat("
Hipótesis:
")

Hipótesis:
cat("H0: No hay diferencia en estrés entre grupos
")
H0: No hay diferencia en estrés entre grupos
cat("H1: Al menos un grupo tiene diferente nivel de estrés

")
H1: Al menos un grupo tiene diferente nivel de estrés
print(summary(anova_p4))
            Df Sum Sq Mean Sq F value   Pr(>F)    
tipo         2  27.34  13.671   119.5 3.89e-14 ***
Residuals   27   3.09   0.114                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
f_stat <- summary(anova_p4)[[1]]$F[1]
p_valor <- summary(anova_p4)[[1]]$"Pr(>F)"[1]

cat("
F-estadístico:", round(f_stat, 4), "
")

F-estadístico: 119.4553 
cat("p-valor:", round(p_valor, 4), "
")
p-valor: 0 

Prueba Post-hoc de Tukey

tukey_p4 <- TukeyHSD(anova_p4)
print(tukey_p4)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = estrés ~ tipo, data = datos_p4)

$tipo
                           diff       lwr        upr     p adj
Docentes-Administrativos   1.59  1.214887  1.9651129 0.0000000
Operarios-Administrativos -0.69 -1.065113 -0.3148871 0.0002839
Operarios-Docentes        -2.28 -2.655113 -1.9048871 0.0000000
plot(tukey_p4, las = 1, col = "blue")
title(main = "Comparaciones de Tukey - Nivel de Estrés")


Problema 5: Relaciones Internacionales - Confianza Ciudadana

Un grupo de analistas en Relaciones Internacionales está interesado en estudiar si el nivel de confianza ciudadana en organismos internacionales varía según el bloque regional

Datos

set.seed(456)

confianza_latam <- c(5.2, 4.8, 5.5, 5.0, 4.9, 5.3, 5.1, 4.7, 5.4, 5.2)
confianza_asia <- c(6.5, 6.8, 6.3, 6.7, 6.4, 6.6, 6.2, 6.9, 6.5, 6.4)
confianza_africa <- c(4.1, 3.8, 4.3, 3.9, 4.2, 4.0, 4.4, 3.7, 4.1, 3.9)

datos_p5 <- data.frame(
  confianza = c(confianza_latam, confianza_asia, confianza_africa),
  bloque = rep(c("América Latina", "Asia", "África"), each = 10)
)

cat("Estadísticas Descriptivas:

")
Estadísticas Descriptivas:
for(región in unique(datos_p5$bloque)) {
  vals <- datos_p5$confianza[datos_p5$bloque == región]
  cat(región, "- Media:", round(mean(vals), 3), 
      "DS:", round(sd(vals), 3), "N:", length(vals), "
")
}
América Latina - Media: 5.11 DS: 0.26 N: 10 
Asia - Media: 6.53 DS: 0.221 N: 10 
África - Media: 4.04 DS: 0.222 N: 10 

ANOVA

anova_p5 <- aov(confianza ~ bloque, data = datos_p5)

cat("
Hipótesis:
")

Hipótesis:
cat("H0: No hay diferencia en confianza entre bloques
")
H0: No hay diferencia en confianza entre bloques
cat("H1: Al menos un bloque tiene diferente nivel de confianza

")
H1: Al menos un bloque tiene diferente nivel de confianza
print(summary(anova_p5))
            Df Sum Sq Mean Sq F value Pr(>F)    
bloque       2 31.205  15.602     282 <2e-16 ***
Residuals   27  1.494   0.055                   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
f_stat <- summary(anova_p5)[[1]]$F[1]
p_valor <- summary(anova_p5)[[1]]$"Pr(>F)"[1]

cat("
F-estadístico:", round(f_stat, 4), "
")

F-estadístico: 281.9699 
cat("p-valor:", round(p_valor, 4), "
")
p-valor: 0 

Prueba Post-hoc de Tukey

tukey_p5 <- TukeyHSD(anova_p5)
print(tukey_p5)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = confianza ~ bloque, data = datos_p5)

$bloque
                      diff       lwr     upr p adj
América Latina-África 1.07 0.8091697 1.33083     0
Asia-África           2.49 2.2291697 2.75083     0
Asia-América Latina   1.42 1.1591697 1.68083     0
plot(tukey_p5, las = 1, col = "green")
title(main = "Comparaciones de Tukey - Confianza Ciudadana")


Resumen

  • Problemas 1-3: Análisis de tablas de contingencia con prueba Chi-Cuadrado
  • Problemas 4-5: Comparación de medias con ANOVA y pruebas post-hoc de Tukey
  • Todas las pruebas utilizan nivel de significancia α = 0.05