Descripción de la tarea Se utilizan datos inspirados en la encuesta del Proyecto de Opinión Pública de América Latina (LAPOP) 2025, cuyo objetivo es analizar las experiencias de los ciudadanos con las instituciones públicas en América Latina. En particular, se estudia la probabilidad de que una persona sea víctima de extorsión por parte de un agente de policía. La base contiene información de 1,000 personas encuestadas con variables sociodemográficas y de interacción con la policía. Estas variables pueden ayudar a explicar diferencias en la probabilidad de sufrir extorsión.

Descripción de los datos

Identificación de variables

data1 <- read_csv("LAPOP.csv")

# Preparación de variables categóricas como factor
# Variable respuesta: 0 = No sufrió extorsión, 1 = Sí sufrió extorsión
data1$extorsion <- factor(data1$extorsion,
                          levels = c(0, 1),
                          labels = c("No", "Sí"))

# Nivel de referencia para genero: "Mujer"
data1$genero <- factor(data1$genero,
                       levels = c("Mujer", "Hombre"))

# Nivel de referencia para educacion: "Primaria"
data1$educacion <- factor(data1$educacion,
                          levels = c("Primaria",
                                     "Secundaria",
                                     "Universitaria"))

# Verificar que los factores quedaron correctamente definidos
str(data1)
## spc_tbl_ [1,000 × 7] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ edad                 : num [1:1000] 63 20 46 52 56 35 37 60 40 51 ...
##  $ genero               : Factor w/ 2 levels "Mujer","Hombre": 2 2 1 2 2 1 1 2 2 2 ...
##  $ educacion            : Factor w/ 3 levels "Primaria","Secundaria",..: 3 3 1 1 2 3 3 2 1 2 ...
##  $ ingreso_mensual      : num [1:1000] 2470 400 1654 2396 2486 ...
##  $ contactos_policia    : num [1:1000] 1 2 3 4 4 4 0 2 2 3 ...
##  $ percepcion_corrupcion: num [1:1000] 2 5 3 1 2 2 3 3 5 1 ...
##  $ extorsion            : Factor w/ 2 levels "No","Sí": 2 2 2 2 2 1 1 1 2 2 ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   edad = col_double(),
##   ..   genero = col_character(),
##   ..   educacion = col_character(),
##   ..   ingreso_mensual = col_double(),
##   ..   contactos_policia = col_double(),
##   ..   percepcion_corrupcion = col_double(),
##   ..   extorsion = col_double()
##   .. )
##  - attr(*, "problems")=<externalptr>

La base de datos contiene 1,000 observaciones y 7 variables. Su clasificación es la siguiente:

Variable Tipo estadístico Tipo en R Rol en el modelo
extorsion Cualitativa nominal dicotómica factor Variable respuesta
edad Cuantitativa continua numeric Predictor numérico
ingreso_mensual Cuantitativa continua numeric Predictor numérico
contactos_policia Cuantitativa discreta numeric Predictor numérico
percepcion_corrupcion Cuantitativa ordinal (1–5) numeric Predictor numérico
genero Cualitativa nominal factor Predictor categórico
educacion Cualitativa ordinal factor Predictor categórico

tabla_gen <- data.frame(
  Género     = names(table(data1$genero)),
  n          = as.integer(table(data1$genero)),
  Porcentaje = paste0(round(prop.table(table(data1$genero)) * 100, 1), "%")
)
knitr::kable(tabla_gen, align = "lcc",
             caption = "**Distribución de encuestados por género**")
Distribución de encuestados por género
Género n Porcentaje
Mujer 493 49.3%
Hombre 507 50.7%
tabla_educ <- data.frame(
  Educación  = names(table(data1$educacion)),
  n          = as.integer(table(data1$educacion)),
  Porcentaje = paste0(round(prop.table(table(data1$educacion)) * 100, 1), "%")
)
knitr::kable(tabla_educ, align = "lcc",
             caption = "**Distribución de encuestados por nivel educativo**")
Distribución de encuestados por nivel educativo
Educación n Porcentaje
Primaria 364 36.4%
Secundaria 370 37%
Universitaria 266 26.6%
tabla_ext <- data.frame(
  Extorsión  = names(table(data1$extorsion)),
  n          = as.integer(table(data1$extorsion)),
  Porcentaje = paste0(round(prop.table(table(data1$extorsion)) * 100, 1), "%")
)
knitr::kable(tabla_ext, align = "lcc",
             caption = "**Distribución de la variable respuesta: Extorsión**")
Distribución de la variable respuesta: Extorsión
Extorsión n Porcentaje
No 196 19.6%
804 80.4%

Extorsión (variable respuesta): El 80.4% de los encuestados (n = 804) reportó haber sido víctima de extorsión policial, mientras que solo el 19.6% (n = 196) no lo fue. Esta marcada asimetría es un dato central del análisis: la extorsión es el resultado predominante en la muestra, lo que tendrá implicaciones directas en la interpretación de los odds.

Visualización de los datos

# Gráfico 1: Edad vs. Ingreso mensual coloreado por Extorsión

ggplot(data1, aes(x = ingreso_mensual, y = edad,
                  color = extorsion)) +
  geom_point(size = 3, alpha = 0.6) +
  scale_color_manual(values = c("red", "green3"),
                     labels = c("No sufrió extorsión",
                                "Sí sufrió extorsión"),
                     name = "Extorsión") +
  labs(title   = "Encuestados según edad e ingreso mensual",
       x       = "Ingreso mensual (en dólares)",
       y       = "Edad (años)") +
  theme_minimal(base_size = 12)

Hallazgos — Gráfico 1
El diagrama de dispersión muestra que los casos de extorsión (verde) están distribuidos en prácticamente todos los rangos de edad e ingreso, sin una separación clara entre grupos. No se aprecia un patrón lineal evidente que sugiera que la edad o el ingreso por sí solos expliquen bien la extorsión, lo que es consistente con la naturaleza multivariable del fenómeno. La densidad de puntos verdes supera ampliamente a los rojos en todas las regiones del gráfico, reflejando la alta prevalencia de extorsión observada (80.4%).
# Gráfico 2: Contactos con la policía vs. Percepción de corrupción

ggplot(data1, aes(x = contactos_policia,
                  y = percepcion_corrupcion,
                  color = extorsion)) +
  geom_point(size = 3, alpha = 0.6) +
  scale_color_manual(values = c("red", "green3"),
                     labels = c("No sufrió extorsión",
                                "Sí sufrió extorsión"),
                     name = "Extorsión") +
  labs(title   = "Contactos con la policía vs. Percepción de corrupción",
       x       = "Número de contactos con la policía (último año)",
       y       = "Percepción de corrupción (1 = baja, 5 = alta)") +
  theme_minimal(base_size = 12)

Hallazgos — Gráfico 2
Se observa que, a medida que aumentan los contactos con la policía, la proporción de víctimas de extorsión (verde) tiende a ser mayor. Del mismo modo, los encuestados con mayor percepción de corrupción (valores 4 y 5) concentran una mayor presencia de casos de extorsión. Estas tendencias visuales anticipan que ambas variables serán predictores relevantes en el modelo logístico, una hipótesis que será confirmada formalmente en la sección siguiente.

Pregunta 1: Odds de extorsión

Pregunta 1 — Calcule la razón de probabilidades (odds) de extorsión e interprete su valor.
# Proporciones de la variable respuesta
prop1 <- prop.table(table(data1$extorsion))
prop1
## 
##    No    Sí 
## 0.196 0.804
# Probabilidades
p1 <- prop1["Sí"]   # Probabilidad de haber sufrido extorsión
q1 <- prop1["No"]   # Probabilidad de NO haber sufrido extorsión

# Odds de extorsión: cuántas veces es más probable
# sufrir extorsión que no sufrirla
odds1 <- p1 / q1
odds1
##       Sí 
## 4.102041
knitr::kable(
  data.frame(
    Categoría     = c("No sufrió extorsión", "Sí sufrió extorsión"),
    n             = c(196, 804),
    Probabilidad  = c("0.1960 (19.6%)", "0.8040 (80.4%)"),
    Odds          = c("—", "4.1020")
  ),
  align   = "lccc",
  caption = "**Razón de probabilidades (odds) de extorsión policial**"
)
Razón de probabilidades (odds) de extorsión policial
Categoría n Probabilidad Odds
No sufrió extorsión 196 0.1960 (19.6%)
Sí sufrió extorsión 804 0.8040 (80.4%) 4.1020
Interpretación
En la muestra, la probabilidad de haber sufrido extorsión policial es p = 0.804 (80.4%), mientras que la probabilidad de no haberla sufrido es 1 − p = 0.196 (19.6%).

El odds de extorsión es:

Odds = p / (1 − p) = 0.804 / 0.196 ≈ 4.10

Esto significa que por cada persona que no fue víctima de extorsión policial, aproximadamente 4 personas sí lo fueron. La extorsión es notablemente más frecuente que su ausencia en esta muestra.

Pregunta 2: Ajuste del modelo

Pregunta 2 — Ajuste un modelo de regresión logística con las variables disponibles.
# Se usa family = binomial porque la variable respuesta
# es dicotómica (Sí / No). El enlace por defecto es logit.
mod_data1 <- glm(extorsion ~ edad + genero + educacion +
                   ingreso_mensual + contactos_policia +
                   percepcion_corrupcion,
                 data   = data1,
                 family = binomial)
Interpretación
El modelo estima el log-odds de extorsión como función lineal de las variables. Esta es la especificación correcta porque la variable respuesta es dicotómica y los supuestos del modelo lineal ordinario no se cumplen.

Pregunta 3: Interpretación del modelo

Pregunta 3 — Interprete los resultados del modelo.
# Resumen completo del modelo
summary(mod_data1)
## 
## Call:
## glm(formula = extorsion ~ edad + genero + educacion + ingreso_mensual + 
##     contactos_policia + percepcion_corrupcion, family = binomial, 
##     data = data1)
## 
## Coefficients:
##                          Estimate Std. Error z value Pr(>|z|)    
## (Intercept)            -3.5658380  0.5394509  -6.610 3.84e-11 ***
## edad                    0.0133103  0.0063616   2.092 0.036414 *  
## generoHombre            0.5616247  0.1880508   2.987 0.002821 ** 
## educacionSecundaria    -0.3351646  0.2264445  -1.480 0.138842    
## educacionUniversitaria -0.7843997  0.2378409  -3.298 0.000974 ***
## ingreso_mensual         0.0005311  0.0001417   3.749 0.000177 ***
## contactos_policia       0.7033313  0.0791791   8.883  < 2e-16 ***
## percepcion_corrupcion   0.7975888  0.0792095  10.069  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 989.61  on 999  degrees of freedom
## Residual deviance: 733.49  on 992  degrees of freedom
## AIC: 749.49
## 
## Number of Fisher Scoring iterations: 6
# Interpretación de los Odds Ratios
# exp(coef) transforma los coeficientes del log-odds
# a la escala de razón de probabilidades (OR)
exp(coef(mod_data1))
##            (Intercept)                   edad           generoHombre 
##             0.02827328             1.01339926             1.75351920 
##    educacionSecundaria educacionUniversitaria        ingreso_mensual 
##             0.71522036             0.45639360             1.00053129 
##      contactos_policia  percepcion_corrupcion 
##             2.02047234             2.22018125

La siguiente tabla sintetiza la interpretación contextualizada de cada coeficiente:

Variable OR aprox. Interpretación
edad 1.013 Por cada año adicional de edad, los odds de extorsión aumentan aproximadamente un 1.3%, manteniendo constantes las demás variables.
generoHombre 1.754 Los hombres tienen aproximadamente 75% mayores odds de extorsión que las mujeres, ceteris paribus.
educacionSecundaria 0.715 Las personas con educación secundaria tienen odds de extorsión 28.5% menores que quienes tienen educación primaria.
educacionUniversitaria 0.456 Las personas con educación universitaria tienen odds de extorsión 54.4% menores que quienes tienen educación primaria.
ingreso_mensual 1.001 Por cada dólar adicional de ingreso mensual, los odds aumentan un 0.05%. El efecto es pequeño por unidad.
contactos_policia 2.020 Por cada contacto adicional con la policía, los odds de extorsión se duplican, manteniendo constantes las demás variables.
percepcion_corrupcion 2.220 Por cada punto adicional en la escala de percepción de corrupción, los odds de extorsión se multiplican por 2.22.
Hallazgo principal
Las dos variables con mayor impacto en el odds de extorsión son contactos con la policía (OR ≈ 2.02) y percepción de corrupción (OR ≈ 2.22). Esto es consistente con lo que sugiere la teoría: una mayor exposición a la institución policial y una visión más negativa de ella están fuertemente asociadas con un mayor riesgo de extorsión. Por el contrario, un mayor nivel educativo actúa como factor protector, reduciendo los odds de extorsión de forma progresiva.

Pregunta 4: Probabilidad estimada

Pregunta 4 — Calcule e interprete la probabilidad estimada de extorsión para el perfil dado.

El perfil de interés es: 35 años, mujer, educación secundaria, ingreso mensual de $1,500, 3 contactos con la policía en el último año y percepción de corrupción igual a 4.

# Definir el perfil de la persona a evaluar
nuevo_perfil <- data.frame(
  edad                  = 35,
  genero                = factor("Mujer",
                                 levels = levels(data1$genero)),
  educacion             = factor("Secundaria",
                                 levels = levels(data1$educacion)),
  ingreso_mensual       = 1500,
  contactos_policia     = 3,
  percepcion_corrupcion = 4
)

# type = "response" devuelve directamente P(Y = 1 | X),
# es decir, la probabilidad estimada de haber sufrido extorsión
prob_estimada <- predict(mod_data1,
                         newdata = nuevo_perfil,
                         type    = "response")
prob_estimada
##         1 
## 0.9347426
Interpretación
Probabilidad estimada ≈ 93.5% — probabilidad muy alta de haber sido víctima de extorsión. Esto refleja el efecto combinado de tener múltiples contactos con la policía y una percepción de corrupción elevada (4/5), que son los predictores con mayor peso en el modelo.