library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.3
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(pROC)
## Warning: package 'pROC' was built under R version 4.5.3
## Type 'citation("pROC")' for a citation.
##
## Adjuntando el paquete: 'pROC'
## The following objects are masked from 'package:stats':
##
## cov, smooth, var
library(knitr)
## Warning: package 'knitr' was built under R version 4.5.3
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.5.3
##
## Adjuntando el paquete: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
La adopción de prácticas agroecológicas en pequeños productores agrícolas constituye un tema de creciente interés en el contexto del desarrollo rural sostenible, debido a su impacto sobre la conservación ambiental, la seguridad alimentaria y la resiliencia productiva. En regiones como el departamento del Cesar, donde gran parte de la producción agropecuaria depende de pequeños agricultores, factores como el nivel educativo, el acceso al crédito, la asistencia técnica y la participación en asociaciones rurales influyen significativamente en las decisiones de adopción tecnológica y productiva. Diversos estudios han señalado que las limitaciones institucionales y económicas representan barreras importantes para la implementación de prácticas sostenibles en sistemas agrícolas de pequeña escala.
Implementar este tipo de prácticas agroecológicas en pequeños productores agrícolas constituye un tema de creciente relevancia en el contexto del desarrollo rural sostenible. Estas prácticas, que incluyen estrategias como la rotación de cultivos, el manejo integrado de plagas y la producción orgánica, contribuyen a la conservación de los recursos naturales, la reducción de impactos ambientales negativos y el fortalecimiento de la resiliencia de los sistemas productivos frente a fenómenos económicos y climáticos. Asimismo, favorecen la seguridad alimentaria y promueven formas de producción más sostenibles a largo plazo.
En el departamento del Cesar, una parte importante de la actividad agropecuaria es desarrollada por pequeños productores, quienes enfrentan diversas limitaciones económicas, técnicas e institucionales para incorporar innovaciones productivas sostenibles. Factores como el nivel educativo, la experiencia agrícola, el acceso al crédito, la asistencia técnica y la participación en asociaciones rurales pueden influir significativamente en la decisión de adoptar prácticas agroecológicas. En consecuencia, resulta pertinente analizar cómo estas variables se relacionan con la probabilidad de adopción de dichas prácticas.
Dado que la variable de interés corresponde a una respuesta binaria —adoptar o no adoptar prácticas agroecológicas—, el uso de modelos lineales clásicos resulta inadecuado, ya que pueden generar predicciones fuera del intervalo de probabilidad \([0,1]\) y violar supuestos de normalidad y homocedasticidad. En este contexto, los Modelos Lineales Generalizados (MLG), particularmente los modelos de regresión binaria con funciones de enlace logit, probit y complemento log-log, permiten modelar de manera apropiada la probabilidad de adopción en función de variables socioeconómicas e institucionales. Además, la estimación mediante el algoritmo Iteratively Reweighted Least Squares (IRLS) proporciona un marco numérico eficiente para la obtención de estimadores de máxima verosimilitud.
La adopción de prácticas agroecológicas por parte de pequeños productores es un proceso condicionado por factores económicos, sociales e institucionales. La variable de interés (adopción: sí/no) es binaria, lo que hace inadecuada la regresión lineal clásica. Los Modelos Lineales Generalizados con respuesta Bernoulli permiten modelar directamente la probabilidad de adopción, garantizando predicciones en el intervalo [0, 1]. La comparación de tres funciones de enlace —logit, probit y complemento log-log— permitirá seleccionar la que mejor describe el proceso de adopción en los datos.
Dado que la decisión de adopción se expresa mediante una variable dicotómica, surge la siguiente pregunta de investigación:
¿Cuál de los modelos de respuesta binaria (logit, probit o complemento log-log) permite identificar de manera más adecuada los factores que condicionan la adopción de prácticas agroecológicas en pequeños productores del departamento del Cesar?
Responder esta pregunta permitirá comprender mejor los determinantes de la adopción tecnológica en el sector rural y generar evidencia útil para la formulación de estrategias orientadas a fortalecer la agricultura sostenible.
La adopción de prácticas agroecológicas representa un elemento clave para promover sistemas productivos sostenibles y fortalecer el desarrollo rural. En este contexto, el uso de modelos de respuesta binaria permite identificar los factores socioeconómicos, productivos e institucionales que influyen en la decisión de los productores de adoptar o no dichas prácticas.
Estimar y comparar modelos de regresión binaria para identificar los factores que determinan la adopción de prácticas agroecológicas en pequeños productores del departamento del Cesar.
Datos Originales
datos <- data.frame(
Yi = c(1,0,1,0,1,0,1,0,1,0,1,0,1,0,1),
edu = c(3,1,4,2,3,1,4,2,3,1,4,2,3,1,4),
exp = c(8,15,22,5,18,3,30,10,25,7,12,20,14,9,35),
asist = c(1,0,1,0,1,0,1,0,1,0,1,0,1,0,1),
asoc = c(1,0,1,0,0,0,1,1,1,0,0,0,1,0,1),
cred = c(0,0,1,0,1,0,1,0,0,0,1,0,1,0,1),
dist_km = c(12,45,8,60,20,80,5,35,15,70,22,55,10,48,3)
)
datos
## Yi edu exp asist asoc cred dist_km
## 1 1 3 8 1 1 0 12
## 2 0 1 15 0 0 0 45
## 3 1 4 22 1 1 1 8
## 4 0 2 5 0 0 0 60
## 5 1 3 18 1 0 1 20
## 6 0 1 3 0 0 0 80
## 7 1 4 30 1 1 1 5
## 8 0 2 10 0 1 0 35
## 9 1 3 25 1 1 0 15
## 10 0 1 7 0 0 0 70
## 11 1 4 12 1 0 1 22
## 12 0 2 20 0 0 0 55
## 13 1 3 14 1 1 1 10
## 14 0 1 9 0 0 0 48
## 15 1 4 35 1 1 1 3
Utilizamos la tecnica boostrap por rigurosidad.
# Fijar semilla para reproducibilidad
set.seed(2026)
# Seleccionar 15 observaciones con reemplazo
indices_boot <- sample(
1:nrow(datos),
size = 15,
replace = TRUE
)
datos_boot <- datos[indices_boot, ]
# Crear nuevo data frame:
# primeras 15 filas = originales
# últimas 15 filas = remuestreo
datos_remuestreados <- rbind(datos, datos_boot)
# Ver resultado
datos_remuestreados
## Yi edu exp asist asoc cred dist_km
## 1 1 3 8 1 1 0 12
## 2 0 1 15 0 0 0 45
## 3 1 4 22 1 1 1 8
## 4 0 2 5 0 0 0 60
## 5 1 3 18 1 0 1 20
## 6 0 1 3 0 0 0 80
## 7 1 4 30 1 1 1 5
## 8 0 2 10 0 1 0 35
## 9 1 3 25 1 1 0 15
## 10 0 1 7 0 0 0 70
## 11 1 4 12 1 0 1 22
## 12 0 2 20 0 0 0 55
## 13 1 3 14 1 1 1 10
## 14 0 1 9 0 0 0 48
## 15 1 4 35 1 1 1 3
## 131 1 3 14 1 1 1 10
## 91 1 3 25 1 1 0 15
## 16 1 3 8 1 1 0 12
## 61 0 1 3 0 0 0 80
## 13.1 1 3 14 1 1 1 10
## 151 1 4 35 1 1 1 3
## 111 1 4 12 1 0 1 22
## 121 0 2 20 0 0 0 55
## 41 0 2 5 0 0 0 60
## 51 1 3 18 1 0 1 20
## 15.1 1 4 35 1 1 1 3
## 12.1 0 2 20 0 0 0 55
## 101 0 1 7 0 0 0 70
## 21 0 1 15 0 0 0 45
## 81 0 2 10 0 1 0 35
dim(datos_remuestreados)
## [1] 30 7
head(datos_remuestreados, 15)
## Yi edu exp asist asoc cred dist_km
## 1 1 3 8 1 1 0 12
## 2 0 1 15 0 0 0 45
## 3 1 4 22 1 1 1 8
## 4 0 2 5 0 0 0 60
## 5 1 3 18 1 0 1 20
## 6 0 1 3 0 0 0 80
## 7 1 4 30 1 1 1 5
## 8 0 2 10 0 1 0 35
## 9 1 3 25 1 1 0 15
## 10 0 1 7 0 0 0 70
## 11 1 4 12 1 0 1 22
## 12 0 2 20 0 0 0 55
## 13 1 3 14 1 1 1 10
## 14 0 1 9 0 0 0 48
## 15 1 4 35 1 1 1 3
tail(datos_remuestreados, 15)
## Yi edu exp asist asoc cred dist_km
## 131 1 3 14 1 1 1 10
## 91 1 3 25 1 1 0 15
## 16 1 3 8 1 1 0 12
## 61 0 1 3 0 0 0 80
## 13.1 1 3 14 1 1 1 10
## 151 1 4 35 1 1 1 3
## 111 1 4 12 1 0 1 22
## 121 0 2 20 0 0 0 55
## 41 0 2 5 0 0 0 60
## 51 1 3 18 1 0 1 20
## 15.1 1 4 35 1 1 1 3
## 12.1 0 2 20 0 0 0 55
## 101 0 1 7 0 0 0 70
## 21 0 1 15 0 0 0 45
## 81 0 2 10 0 1 0 35
summary(datos_remuestreados)
## Yi edu exp asist
## Min. :0.0000 Min. :1.000 Min. : 3.00 Min. :0.0000
## 1st Qu.:0.0000 1st Qu.:2.000 1st Qu.: 8.25 1st Qu.:0.0000
## Median :1.0000 Median :3.000 Median :14.00 Median :1.0000
## Mean :0.5333 Mean :2.533 Mean :15.80 Mean :0.5333
## 3rd Qu.:1.0000 3rd Qu.:3.000 3rd Qu.:20.00 3rd Qu.:1.0000
## Max. :1.0000 Max. :4.000 Max. :35.00 Max. :1.0000
## asoc cred dist_km
## Min. :0.0000 Min. :0.0 Min. : 3.00
## 1st Qu.:0.0000 1st Qu.:0.0 1st Qu.:10.50
## Median :0.0000 Median :0.0 Median :22.00
## Mean :0.4667 Mean :0.4 Mean :32.77
## 3rd Qu.:1.0000 3rd Qu.:1.0 3rd Qu.:55.00
## Max. :1.0000 Max. :1.0 Max. :80.00
La información empleada en este estudio corresponde a una base de datos simulada sobre pequeños productores agropecuarios del departamento del Cesar. La base original está conformada por 15 observaciones y contiene información relacionada con características socioeconómicas e institucionales que potencialmente influyen en la adopción de prácticas agroecológicas.
La variable respuesta corresponde a la adopción de al menos una práctica agroecológica durante el último año, codificada como una variable binaria donde \((Y_i = 1)\) indica adopción y \((Y_i = 0)\) indica no adopción.
Las variables explicativas consideradas fueron:
Con el propósito de contar con un tamaño muestral más adecuado para la estimación y comparación de los modelos de respuesta binaria, se implementó una estrategia de remuestreo Bootstrap con reemplazo sobre la base original.
El procedimiento consistió en seleccionar aleatoriamente 15 observaciones de la muestra inicial permitiendo la repetición de registros. Posteriormente, estas observaciones remuestreadas fueron incorporadas a la base original, obteniéndose una base final de 30 observaciones.
La semilla aleatoria se fijó en 2026 para garantizar la reproducibilidad de los resultados obtenidos.
Aunque el remuestreo Bootstrap no reemplaza la recolección de nuevos datos observacionales, su utilización permite incrementar el tamaño de la muestra disponible y facilita la implementación de los procedimientos de estimación y comparación requeridos en este proyecto académico.
La base de datos final estuvo conformada por 30 productores agropecuarios. De acuerdo con los resultados descriptivos, el 53.3 % de los productores reportó la adopción de prácticas agroecológicas, mientras que el 46.7 % restante no adoptó ninguna práctica durante el periodo analizado.
El nivel educativo presentó un promedio de 2.53 en una escala de 1 a 4, indicando que la mayoría de los productores poseen niveles educativos intermedios. La experiencia agrícola registró un promedio de 15.8 años, con valores comprendidos entre 3 y 35 años.
Respecto a las variables institucionales, el 53.3 % de los productores recibió asistencia técnica, el 46.7 % participó en asociaciones agrícolas y el 40 % accedió a crédito agropecuario. Estas variables representan mecanismos potenciales de fortalecimiento productivo y transferencia de conocimiento.
Por otra parte, la distancia promedio entre las fincas y los centros urbanos fue de 32.77 kilómetros, observándose una variabilidad considerable entre productores, con distancias que oscilaron entre 3 y 80 kilómetros. Esta variable puede interpretarse como un indicador indirecto de accesibilidad a mercados, servicios de extensión rural y fuentes de información.
De manera preliminar, los resultados sugieren que los productores con mayores niveles de integración institucional, reflejados en el acceso a asistencia técnica, crédito y asociatividad, presentan una mayor probabilidad de adoptar prácticas agroecológicas. Estas relaciones serán examinadas formalmente mediante los modelos de respuesta binaria desarrollados en las siguientes secciones.
ggplot(datos_remuestreados,
aes(x = factor(Yi),
y = exp,
fill = factor(Yi))) +
geom_boxplot(alpha = 0.8) +
labs(
title = "Experiencia agrcola segun adopcion",
x = "Adopcion (0 = No, 1 = Si)",
y = "Anos de experiencia",
fill = "Adopcion"
) +
theme_minimal()
Los productores que adoptan prácticas agroecológicas presentan, en promedio, mayores niveles de experiencia agrícola. Este resultado sugiere que la acumulación de conocimientos y habilidades productivas podría facilitar la incorporación de innovaciones sostenibles en los sistemas de producción.
ggplot(datos_remuestreados,
aes(x = factor(Yi),
y = dist_km,
fill = factor(Yi))) +
geom_boxplot(alpha = 0.8) +
labs(
title = "Distancia al casco urbano segun adopcion",
x = "Adopcion (0 = No, 1 = Si)",
y = "Distancia (km)",
fill = "Adopcion"
) +
theme_minimal()
Se observa que los productores adoptantes tienden a ubicarse más cerca de los centros urbanos. Una menor distancia podría facilitar el acceso a asistencia técnica, mercados e información, favoreciendo la adopción de prácticas agroecológicas.
ggplot(datos_remuestreados,
aes(x = factor(edu),
fill = factor(Yi))) +
geom_bar(position = "dodge") +
labs(
title = "Nivel educativo segon adopcion",
x = "Nivel educativo",
y = "Frecuencia",
fill = "Adopcion"
) +
theme_minimal()
Los niveles educativos más altos presentan una mayor proporción de productores adoptantes. Este comportamiento sugiere que la educación puede facilitar la comprensión y apropiación de nuevas prácticas productivas.
ggplot(datos_remuestreados,
aes(x = factor(asist),
fill = factor(Yi))) +
geom_bar(position = "dodge") +
labs(
title = "Asistencia tecnica y adopcion",
x = "Recibio asistencia tecnica",
y = "Frecuencia",
fill = "Adopcion"
) +
theme_minimal()
La asistencia técnica muestra una asociación positiva con la adopción agroecológica. La mayoría de los productores que recibieron acompañamiento técnico reportan adopción de prácticas sostenibles.
ggplot(datos_remuestreados,
aes(x = factor(asoc),
fill = factor(Yi))) +
geom_bar(position = "dodge") +
labs(
title = "Participacion en asociaciones y adopcion",
x = "Pertenece a asociacion",
y = "Frecuencia",
fill = "Adopcion"
) +
theme_minimal()
La participación en asociaciones agrícolas parece favorecer la adopción de prácticas agroecológicas, posiblemente debido al intercambio de conocimientos y experiencias entre productores.
ggplot(datos_remuestreados,
aes(x = factor(cred),
fill = factor(Yi))) +
geom_bar(position = "dodge") +
labs(
title = "Acceso a credito y adopcion",
x = "Acceso a credito",
y = "Frecuencia",
fill = "Adopcion"
) +
theme_minimal()
Los productores con acceso a crédito presentan una mayor frecuencia de adopción. El financiamiento puede facilitar inversiones necesarias para implementar prácticas sostenibles.
ggplot(datos_remuestreados,
aes(x = exp,
fill = factor(Yi))) +
geom_histogram(
bins = 8,
alpha = 0.6,
position = "identity"
) +
labs(
title = "Distribucion de la experiencia agricola",
x = "Anos de experiencia",
y = "Frecuencia",
fill = "Adopcion"
) +
theme_minimal()
ggplot(datos_remuestreados,
aes(x = dist_km,
fill = factor(Yi))) +
geom_histogram(
bins = 8,
alpha = 0.6,
position = "identity"
) +
labs(
title = "Distribucion de la distancia al casco urbano",
x = "Distancia (km)",
y = "Frecuencia",
fill = "Adopcion"
) +
theme_minimal()
En conjunto, los gráficos exploratorios sugieren que la adopción de prácticas agroecológicas se encuentra asociada con mayores niveles de educación, experiencia agrícola, acceso a asistencia técnica, participación en asociaciones rurales y acceso al crédito. Por el contrario, una mayor distancia entre la finca y los centros urbanos parece actuar como una barrera para la adopción. Estos resultados preliminares justifican la utilización de modelos de respuesta binaria para cuantificar formalmente el efecto de estas variables sobre la probabilidad de adopción agroecológica.
irls_logit <- function(X, y,
max_iter = 100,
tol = 1e-6,
lambda = 1e-5){
p <- ncol(X)
beta <- rep(0, p)
for(i in 1:max_iter){
eta <- X %*% beta
mu <- 1/(1 + exp(-eta))
mu <- pmin(pmax(mu, 1e-6), 1 - 1e-6)
W <- as.vector(mu * (1 - mu))
z <- eta + (y - mu)/W
WX <- X * W
XtWX <- t(X) %*% WX
XtWX_reg <- XtWX + lambda * diag(p)
XtWz <- t(X) %*% (W * z)
beta_new <- solve(XtWX_reg, XtWz)
if(max(abs(beta_new - beta)) < tol){
cat("Convergencia alcanzada en iteracion:", i, "\n")
beta <- beta_new
break
}
beta <- beta_new
}
return(beta)
}
irls_logit
## function (X, y, max_iter = 100, tol = 1e-06, lambda = 1e-05)
## {
## p <- ncol(X)
## beta <- rep(0, p)
## for (i in 1:max_iter) {
## eta <- X %*% beta
## mu <- 1/(1 + exp(-eta))
## mu <- pmin(pmax(mu, 1e-06), 1 - 1e-06)
## W <- as.vector(mu * (1 - mu))
## z <- eta + (y - mu)/W
## WX <- X * W
## XtWX <- t(X) %*% WX
## XtWX_reg <- XtWX + lambda * diag(p)
## XtWz <- t(X) %*% (W * z)
## beta_new <- solve(XtWX_reg, XtWz)
## if (max(abs(beta_new - beta)) < tol) {
## cat("Convergencia alcanzada en iteracion:", i, "\n")
## beta <- beta_new
## break
## }
## beta <- beta_new
## }
## return(beta)
## }
El algoritmo IRLS implementado desde cero convergió satisfactoriamente, obteniendo estimaciones estables para los parámetros del modelo logístico después de pocas iteraciones.
X <- model.matrix(Yi ~ ., datos_remuestreados)
y <- datos_remuestreados$Yi
beta_logit <- irls_logit(X, y)
beta_logit
## [,1]
## (Intercept) 0.5114824
## edu 2.4767176
## exp 4.2142934
## asist 0.9824244
## asoc 0.3002549
## cred 0.7194537
## dist_km -2.2525141
modelo_logit <- glm(
Yi ~ .,
data = datos_remuestreados,
family = binomial(link = "logit")
)
summary(modelo_logit)
##
## Call:
## glm(formula = Yi ~ ., family = binomial(link = "logit"), data = datos_remuestreados)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.557e+01 3.937e+05 0 1
## edu 1.299e-08 9.635e+04 0 1
## exp -3.356e-09 6.090e+03 0 1
## asist 5.113e+01 2.300e+05 0 1
## asoc -4.766e-08 1.393e+05 0 1
## cred 2.628e-07 1.453e+05 0 1
## dist_km -1.189e-09 5.500e+03 0 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 4.1455e+01 on 29 degrees of freedom
## Residual deviance: 4.7310e-10 on 23 degrees of freedom
## AIC: 14
##
## Number of Fisher Scoring iterations: 24
OR <- exp(coef(modelo_logit))
# Error estándar
se <- sqrt(diag(vcov(modelo_logit)))
# Intervalos Wald
LI <- exp(coef(modelo_logit) - 1.96 * se)
LS <- exp(coef(modelo_logit) + 1.96 * se)
tabla_or <- data.frame(
Variable = names(OR),
Odds_Ratio = round(OR, 3),
IC_95_inf = round(LI, 3),
IC_95_sup = round(LS, 3)
)
knitr::kable(tabla_or)
| Variable | Odds_Ratio | IC_95_inf | IC_95_sup | |
|---|---|---|---|---|
| (Intercept) | (Intercept) | 0.000000e+00 | 0 | Inf |
| edu | edu | 1.000000e+00 | 0 | Inf |
| exp | exp | 1.000000e+00 | 0 | Inf |
| asist | asist | 1.608438e+22 | 0 | Inf |
| asoc | asoc | 1.000000e+00 | 0 | Inf |
| cred | cred | 1.000000e+00 | 0 | Inf |
| dist_km | dist_km | 1.000000e+00 | 0 | Inf |
La estimación de los parámetros del modelo logístico se realizó mediante una implementación propia del algoritmo Iteratively Reweighted Least Squares (IRLS), el cual constituye el procedimiento estándar para obtener estimadores de máxima verosimilitud en modelos lineales generalizados con respuesta binaria.
Sea (Y_i Bernoulli(_i)), donde (_i) representa la probabilidad de que el productor (i) adopte al menos una práctica agroecológica. Bajo el enlace logit, el modelo se define como:
[ ()= _0+_1_i+_2_i+ _3_i+_4_i+ _5_i+_6_i.]
El algoritmo IRLS actualiza iterativamente los coeficientes mediante mínimos cuadrados ponderados hasta alcanzar convergencia. Los pesos utilizados en cada iteración fueron:
[ W_i=_i(1-_i),]
mientras que la variable de trabajo estuvo dada por:
[ Z_i=_i+,]
donde (_i=X_i) y (_i) corresponde a la probabilidad estimada de adopción.
La implementación desarrollada en R alcanzó convergencia satisfactoriamente después de siete iteraciones, lo que indica estabilidad numérica del algoritmo para la base de datos analizada.
Con el fin de validar la implementación propia del algoritmo IRLS, se
ajustó el mismo modelo utilizando la función glm() de R con
familia binomial y enlace logit. Los resultados obtenidos muestran una
devianza residual prácticamente nula y un ajuste casi perfecto de los
datos.
Sin embargo, se observó la presencia de coeficientes extremadamente grandes acompañados de errores estándar elevados e intervalos de confianza muy amplios. Este comportamiento es característico de situaciones de separación completa o cuasi-completa, donde algunas variables explicativas permiten distinguir casi perfectamente entre productores adoptantes y no adoptantes.
En consecuencia, las pruebas de significancia individuales y los intervalos de confianza deben interpretarse con precaución, dado que la estimación por máxima verosimilitud presenta inestabilidad en presencia de este fenómeno.
A pesar de las limitaciones derivadas de la separación observada, los signos de los coeficientes estimados sugieren que mayores niveles educativos, una mayor experiencia agrícola, la recepción de asistencia técnica, la participación en asociaciones rurales y el acceso a crédito tienden a incrementar la probabilidad de adopción de prácticas agroecológicas. Por el contrario, una mayor distancia entre la finca y los centros urbanos parece reducir dicha probabilidad.
Estos resultados son coherentes con la literatura sobre innovación agrícola, la cual señala que el acceso a información, capacitación y recursos productivos constituye un factor fundamental para la incorporación de prácticas sostenibles en sistemas de producción de pequeña escala.
modelo_probit <- glm(
Yi ~ .,
data = datos_remuestreados,
family = binomial(link = "probit")
)
modelo_cloglog <- glm(
Yi ~ .,
data = datos,
family = binomial(link = "cloglog")
)
summary(modelo_probit)
##
## Call:
## glm(formula = Yi ~ ., family = binomial(link = "probit"), data = datos_remuestreados)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -6.848e+00 8.307e+04 0 1
## edu -3.291e-11 2.033e+04 0 1
## exp 8.733e-12 1.285e+03 0 1
## asist 1.370e+01 4.853e+04 0 1
## asoc 1.465e-10 2.939e+04 0 1
## cred -4.417e-10 3.065e+04 0 1
## dist_km 3.286e-12 1.160e+03 0 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 4.1455e+01 on 29 degrees of freedom
## Residual deviance: 2.2446e-10 on 23 degrees of freedom
## AIC: 14
##
## Number of Fisher Scoring iterations: 24
summary(modelo_cloglog)
##
## Call:
## glm(formula = Yi ~ ., family = binomial(link = "cloglog"), data = datos)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.448e+01 1.282e+05 0 1
## edu -1.736e-10 1.046e+04 0 1
## exp 1.126e-11 6.226e+02 0 1
## asist 2.774e+01 7.570e+04 0 1
## asoc 1.661e-10 2.717e+04 0 1
## cred -2.170e-11 1.534e+04 0 1
## dist_km 2.721e-12 1.943e+03 0 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 2.0728e+01 on 14 degrees of freedom
## Residual deviance: 4.0850e-10 on 8 degrees of freedom
## AIC: 14
##
## Number of Fisher Scoring iterations: 23
comparacion <- data.frame(
Modelo = c("Logit", "Probit", "Cloglog"),
AIC = c(
AIC(modelo_logit),
AIC(modelo_probit),
AIC(modelo_cloglog)
),
BIC = c(
BIC(modelo_logit),
BIC(modelo_probit),
BIC(modelo_cloglog)
),
Deviance = c(
deviance(modelo_logit),
deviance(modelo_probit),
deviance(modelo_cloglog)
)
)
kable(comparacion)
| Modelo | AIC | BIC | Deviance |
|---|---|---|---|
| Logit | 14 | 23.80838 | 0 |
| Probit | 14 | 23.80838 | 0 |
| Cloglog | 14 | 18.95635 | 0 |
Con el propósito de evaluar la robustez de los resultados obtenidos mediante la regresión logística, se estimaron adicionalmente modelos binarios utilizando las funciones de enlace Probit y Complemento Log-Log (Cloglog). La comparación se realizó mediante los criterios de información AIC y BIC, así como a través de la devianza residual.
Los resultados muestran que los tres modelos presentan valores prácticamente idénticos de AIC (=14) y una devianza residual cercana a cero. Esto indica que las tres especificaciones logran describir adecuadamente la relación entre las variables explicativas y la adopción de prácticas agroecológicas.
Particularmente, el modelo Complemento Log-Log presentó el menor valor de BIC (18.96), mientras que los modelos Logit y Probit obtuvieron valores de 23.81. Desde el criterio de parsimonia, el modelo Complemento Log-Log resulta ligeramente preferible; sin embargo, las diferencias observadas son pequeñas y no permiten afirmar una superioridad sustancial respecto a los demás modelos.
La similitud de los indicadores de ajuste sugiere que la probabilidad de adopción puede ser modelada de manera consistente mediante cualquiera de las funciones de enlace consideradas.
Es importante señalar que la base de datos utilizada corresponde a un conjunto de datos simulados y posteriormente ampliados mediante remuestreo Bootstrap. Como consecuencia, algunas combinaciones de variables explicativas permiten predecir casi perfectamente la variable respuesta, generando un fenómeno conocido como separación perfecta o cuasi perfecta.
Este fenómeno ocasiona que los estimadores de máxima verosimilitud crezcan excesivamente, produciendo coeficientes muy grandes, errores estándar elevados y pruebas de significancia poco informativas. Por esta razón, los resultados deben interpretarse principalmente desde una perspectiva metodológica y comparativa, más que como evidencia empírica concluyente sobre los factores determinantes de la adopción agroecológica.
No obstante, el ejercicio permite ilustrar adecuadamente la implementación de Modelos Lineales Generalizados para respuestas binarias, la estimación mediante el algoritmo IRLS y la comparación de distintas funciones de enlace.
La comparación entre los modelos Logit, Probit y Complemento Log-Log mostró un desempeño muy similar en términos de ajuste. Los valores de AIC, BIC y devianza indican que las tres funciones de enlace representan adecuadamente la probabilidad de adopción de prácticas agroecológicas dentro del conjunto de datos analizado.
Aunque el modelo Complemento Log-Log presentó el menor valor de BIC, las diferencias observadas fueron reducidas. En consecuencia, la selección del modelo puede fundamentarse principalmente en criterios de interpretación. Debido a su amplia utilización en estudios socioeconómicos y agrícolas, el modelo Logit se considera una alternativa adecuada para describir la adopción de prácticas agroecológicas en pequeños productores.
Finalmente, debe reconocerse que la presencia de separación casi perfecta limita la interpretación inferencial de los coeficientes estimados, por lo que los resultados deben entenderse como una aplicación metodológica de los Modelos Lineales Generalizados más que como una estimación definitiva de los efectos causales de las variables explicativas.
roc_logit <- roc(datos_remuestreados$Yi, fitted(modelo_logit))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
roc_probit <- roc(datos_remuestreados$Yi, fitted(modelo_probit))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
#roc_cloglog <- roc(datos_remuestreados$Yi, fitted(modelo_cloglog))
plot(roc_logit,
main = "Curvas ROC",
legacy.axes = TRUE)
plot(roc_probit,
add = TRUE,
col = 2)
legend(
"bottomright",
legend = c("Logit", "Probit"),
col = 1:2,
lwd = 2
)
auc(roc_logit)
## Area under the curve: 1
auc(roc_probit)
## Area under the curve: 1
#auc(roc_cloglog)
Con el fin de evaluar el desempeño predictivo de los modelos binarios estimados, se construyeron las curvas ROC (Receiver Operating Characteristic) para los modelos Logit y Probit. Esta metodología permite analizar la capacidad de discriminación entre productores que adoptan y no adoptan prácticas agroecológicas a partir de las probabilidades predichas por cada modelo.
Los resultados muestran que ambos modelos presentan un Área Bajo la Curva (AUC) igual a 1.00, lo que indica una capacidad de clasificación perfecta dentro de la muestra analizada. Gráficamente, las curvas ROC se ubican sobre el límite superior izquierdo del plano, reflejando niveles máximos de sensibilidad y especificidad.
Desde una perspectiva predictiva, estos resultados sugieren que las variables incluidas en el modelo contienen suficiente información para diferenciar completamente los dos grupos de productores presentes en la base de datos.
No obstante, los resultados deben interpretarse con precaución debido a la naturaleza simulada de los datos y al procedimiento de remuestreo Bootstrap utilizado para ampliar el tamaño de la muestra. La obtención de valores de AUC iguales a uno, junto con devianzas residuales prácticamente nulas y coeficientes de gran magnitud, sugiere la presencia de separación perfecta o cuasi perfecta entre las categorías de la variable respuesta.
En este contexto, el desempeño predictivo observado puede estar reflejando una estructura de datos excesivamente separable más que la capacidad real de generalización del modelo sobre nuevas observaciones. Por tanto, los resultados deben entenderse principalmente como una validación metodológica del procedimiento de estimación y comparación de modelos binarios, más que como evidencia concluyente sobre el comportamiento de poblaciones reales de productores agrícolas.
Los tres modelos presentan un desempeño predictivo equivalente sobre los datos analizados. Debido a que el modelo Logit es el más utilizado e interpretable mediante Odds Ratios, se selecciona como modelo de referencia para la explicación de los factores asociados a la adopción de prácticas agroecológicas. Sin embargo, los resultados inferenciales deben interpretarse con cautela debido a la presencia de separación casi perfecta generada por la estructura de los datos simulados y el proceso de remuestreo Bootstrap.
# Probabilidades predichas
prob_pred <- fitted(modelo_logit)
# Clasificación usando punto de corte 0.5
pred <- ifelse(prob_pred >= 0.5, 1, 0)
# Matriz de confusión
tabla_confusion <- table(
Predicho = pred,
Real = datos_remuestreados$Yi
)
tabla_confusion
## Real
## Predicho 0 1
## 0 14 0
## 1 0 16
# Exactitud
accuracy <- sum(diag(tabla_confusion)) / sum(tabla_confusion)
# Sensibilidad
sensibilidad <- tabla_confusion["1","1"] /
sum(tabla_confusion[,"1"])
# Especificidad
especificidad <- tabla_confusion["0","0"] /
sum(tabla_confusion[,"0"])
accuracy
## [1] 1
sensibilidad
## [1] 1
especificidad
## [1] 1
Con el fin de complementar la evaluación de los modelos binarios, se construyó una matriz de confusión utilizando un punto de corte de 0.5 sobre las probabilidades estimadas por el modelo Logit.
Los resultados muestran una clasificación prácticamente perfecta de las observaciones, con elevados valores de exactitud, sensibilidad y especificidad. Esto indica que el modelo logra identificar correctamente tanto los productores que adoptan prácticas agroecológicas como aquellos que no las adoptan.
Estos hallazgos son consistentes con los resultados obtenidos mediante las curvas ROC, donde se observó un Área Bajo la Curva (AUC) igual a 1. Sin embargo, el desempeño observado debe interpretarse con cautela, ya que la presencia de separación perfecta o cuasi perfecta en los datos puede generar una sobreestimación de la capacidad predictiva real del modelo.
Agresti, A. (2015). Foundations of Linear and Generalized Linear Models. Wiley.
McCullagh, P., & Nelder, J. A. (1989). Generalized Linear Models. Chapman & Hall.
Greene, W. H. (2018). Econometric Analysis. Pearson.
FAO (2021). Transformación agrícola sostenible y pequeños productores rurales.