1 Resumen

1.0.1 Modelo de Logit Adyacente

El Modelo de Logit Adyacente es una extensión de la regresión logística diseñada para analizar variables de respuesta con categorías ordinales. A diferencia de otros modelos ordinales, este enfoque compara categorías consecutivas, permitiendo estudiar cómo las variables explicativas influyen en la transición entre niveles adyacentes de la escala.

Si la variable respuesta posee categorías ordenadas
\[ 1 < 2 < 3 < \cdots < J, \]
el modelo estima \(J - 1\) ecuaciones, cada una correspondiente a la comparación entre dos categorías vecinas. La forma funcional del modelo para cada par \((j, j+1)\) es:

\[ \log\left(\frac{P(Y = j+1 \mid X)}{P(Y = j \mid X)}\right) = \alpha_j + \beta^\top X, \]

donde:
- \(\alpha_j\) es el intercepto asociado al punto de corte entre las categorías \(j\) y \(j+1\),
- \(\beta\) es el vector de coeficientes comunes para todas las transiciones,
- \(X\) representa las variables explicativas.

Este modelo es especialmente útil cuando interesa evaluar cómo ciertos factores afectan el paso de un nivel de satisfacción (o cualquier atributo ordinal) al siguiente, proporcionando una interpretación clara y detallada sobre los cambios entre categorías consecutivas.

2 Introducción

El objetivo de este análisis es evaluar el nivel de satisfacción que tienen los egresados de la Universidad del Norte respecto al acceso a oportunidades laborales después de su graduación. La variable de interés, denominada AOL (Acceso a Oportunidades Laborales), se encuentra estructurada en tres categorías ordinales:

  • Insatisfecho
  • Satisfecho
  • Muy satisfecho

Dado que estas categorías poseen un orden natural, es adecuado utilizar un enfoque estadístico que conserve esta jerarquía y permita modelar la transición entre niveles de satisfacción.

Para este propósito se emplea el Modelo de Logit Adyacente (Adjacent Category Logit Model), una técnica de regresión ordinal que compara categorías consecutivas de la variable respuesta. Si las categorías se representan como:

\[ 1 < 2 < 3 < \cdots < J, \]

el modelo estima \(J - 1\) ecuaciones del tipo:

\[ \log \left( \frac{P(Y = j + 1)}{P(Y = j)} \right) = \alpha_j + \beta^\top X, \]

donde cada ecuación evalúa la razón de probabilidades entre dos niveles adyacentes de satisfacción. Esto permite analizar cómo variables explicativas influyen en el paso de un nivel al siguiente.

En este estudio se consideran como predictores:

  • División Académica, asociada al programa de pregrado del egresado.
  • Estrato socioeconómico, registrado como variable numérica.
  • Situación laboral actual (Slaboral), categorizada como Activo o Inactivo.

El uso del Modelo de Logit Adyacente es especialmente apropiado porque permite interpretar los cambios entre categorías vecinas de satisfacción y detectar si factores académicos, socioeconómicos o laborales alteran significativamente la probabilidad de mejorar o empeorar el nivel de percepción sobre las oportunidades laborales posteriores al grado.

2.1 Objetivos

2.1.1 Objetivo General

Evaluar cómo factores académicos, socioeconómicos y laborales influyen en el nivel de satisfacción de los egresados de la Universidad del Norte respecto al acceso a oportunidades laborales después de su graduación, mediante la aplicación del Modelo de Logit Adyacente.

2.1.2 Objetivos Específicos

  1. Describir la distribución del nivel de satisfacción (AOL) en la población de egresados.
  2. Explorar la relación entre la satisfacción y variables explicativas como la División Académica, el Estrato socioeconómico y la Situación laboral actual.
  3. Ajustar un Modelo de Logit Adyacente que permita analizar comparaciones entre categorías consecutivas de satisfacción.
  4. Interpretar los coeficientes del modelo para determinar la influencia de cada predictor en las probabilidades de transición entre niveles adyacentes de satisfacción.
  5. Identificar los factores que aumentan o disminuyen la probabilidad de que un egresado se ubique en niveles superiores de satisfacción respecto a las oportunidades laborales.
  6. Generar conclusiones que permitan orientar decisiones institucionales sobre empleabilidad y bienestar de los egresados.

2.2 Formulación Matemática del Modelo

Sea \(Y\) una variable respuesta ordinal con categorías ordenadas:

\[ 1 < 2 < \cdots < J. \]

El Modelo de Logit Adyacente especifica, para cada par de categorías consecutivas \((j, j+1)\), la siguiente relación:

\[ \log \left( \frac{P(Y = j+1 \mid X)}{P(Y = j \mid X)} \right) = \alpha_j + \boldsymbol{\beta}^\top \mathbf{X}, \]

donde:

  • \(\alpha_j\) es el intercepto específico para la comparación \(j \leftrightarrow j+1\),
  • \(\boldsymbol{\beta}\) es el vector de coeficientes comunes a todas las ecuaciones (modelo paralelo),
  • \(\mathbf{X}\) es el vector de predictores.

2.3 Vector de parámetros logísticos

Si la variable \(Y\) tiene \(J\) categorías, entonces existen \(J - 1\) ecuaciones adyacentes.
Por tanto, el vector completo de parámetros logísticos se escribe como:

\[ \boldsymbol{\theta} = \begin{pmatrix} \alpha_1 \\ \alpha_2 \\ \vdots \\ \alpha_{J-1} \\ \boldsymbol{\beta} \end{pmatrix}. \]

Si \(\boldsymbol{\beta}\) tiene \(p\) coeficientes, entonces:

\[ \boldsymbol{\theta} \in \mathbb{R}^{(J-1) + p}. \]


2.4 Vector de estimadores

Los estimadores de máxima verosimilitud obtenidos del modelo se expresan como:

\[ \widehat{\boldsymbol{\theta}} = \begin{pmatrix} \widehat{\alpha}_1 \\ \widehat{\alpha}_2 \\ \vdots \\ \widehat{\alpha}_{J-1} \\ \widehat{\boldsymbol{\beta}} \end{pmatrix}. \]

Donde:

  • \(\widehat{\alpha}_j\) son los interceptos estimados para cada comparación adyacente,
  • \(\widehat{\boldsymbol{\beta}}\) es el vector de coeficientes estimados asociado a los predictores del modelo.

En el caso de tu análisis, con tres niveles de satisfacción (Insatisfecho, Satisfecho, Muy satisfecho), se tienen:

\[ J = 3, \quad J - 1 = 2 \text{ ecuaciones} \]

por lo que:

\[ \boldsymbol{\theta} = \begin{pmatrix} \alpha_1 \\ \alpha_2 \\ \beta_{\text{Division}} \\ \beta_{\text{Estrato}} \\ \beta_{\text{Slaboral}} \end{pmatrix}. \]

y su vector de estimadores:

\[ \widehat{\boldsymbol{\theta}} = \begin{pmatrix} \widehat{\alpha}_1 \\ \widehat{\alpha}_2 \\ \widehat{\beta}_{\text{Division}} \\ \widehat{\beta}_{\text{Estrato}} \\ \widehat{\beta}_{\text{Slaboral}} \end{pmatrix}. \]

3 Análisis

3.1 Descripción de la Base de Datos

La base de datos utilizada en este estudio corresponde a una muestra recopilada durante el año 2024, conformada por egresados de los últimos cinco años pertenecientes a los distintos programas de pregrado de la institución. El objetivo de esta recolección es obtener información actualizada sobre características académicas, laborales y de percepción de los egresados, permitiendo analizar su nivel de satisfacción y explorar factores asociados a sus resultados profesionales.

La información fue obtenida mediante el proceso institucional de seguimiento a egresados, utilizando criterios uniformes para todos los programas. La base de datos incluye variables de tipo sociodemográfico, académico y de percepción, entre ellas:

  • satisfacción con la formación recibida,
  • percepción de oportunidades laborales,
  • inserción en el mercado laboral,
  • y otros indicadores relevantes para la evaluación de calidad educativa.

La muestra resultante es representativa de la población reciente de egresados y permite realizar análisis estadísticos inferenciales, incluyendo el modelo logístico ordinal de categorías adyacentes aplicado en este informe.

# Instalación y librerías
library(VGAM)
## Warning: package 'VGAM' was built under R version 4.4.3
## Cargando paquete requerido: stats4
## Cargando paquete requerido: splines
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.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(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
# Exploración inicial de los datos
datos_e <- read_excel("C:/Users/LUIS PINO/Documents/P_final_estrato.xlsx")  
head(datos_e)
## # A tibble: 6 × 5
##   Usuario          AOL          Division   Estrato Slaboral
##   <chr>            <chr>        <chr>        <dbl> <chr>   
## 1 fcamilo          Insatisfecho DCPRI            6 Activo  
## 2 gutierrezvaleria Insatisfecho DCPRI            3 Inactivo
## 3 hcarbal          Insatisfecho OTRAS            4 Activo  
## 4 daiderl          Insatisfecho INGENIERÍA       1 Inactivo
## 5 yinetho          Insatisfecho NEGOCIOS         4 Activo  
## 6 rcceledon        Insatisfecho NEGOCIOS         4 Activo
datos <- read_excel("C:/Users/LUIS PINO/Documents/dataset5.xlsx")        
head(datos)
## # A tibble: 6 × 16
##   Timestamp           PM2.5 Temperature Humidity Soil_Moisture
##   <dttm>              <dbl>       <dbl>    <dbl>         <dbl>
## 1 2018-01-01 00:00:00 120.         21.9     54.0          22.5
## 2 2018-01-01 01:00:00  74.7        19.8     54.3          24.0
## 3 2018-01-01 02:00:00  69.1        26.7     99.0          11.6
## 4 2018-01-01 03:00:00  69.1        20.2     36.4          36.1
## 5 2018-01-01 04:00:00 232.         21.9     79.4          43.5
## 6 2018-01-01 05:00:00 143.         15.2     96.3          37.9
## # ℹ 11 more variables: Biodiversity_Index <dbl>, Nutrient_Level <dbl>,
## #   Water_Quality <dbl>, Air_Quality_Index <dbl>, Pollution_Level <chr>,
## #   Soil_pH <dbl>, Dissolved_Oxygen <dbl>, Chemical_Oxygen_Demand <dbl>,
## #   Biochemical_Oxygen_Demand <dbl>, Total_Dissolved_Solids <dbl>,
## #   Ecological_Health_Label <chr>

3.2 Descripción de las Variables

La base de datos contiene un conjunto de variables sociodemográficas, académicas y laborales que permiten caracterizar a los egresados y analizar sus niveles de satisfacción. A continuación se presenta una descripción general de las principales variables incluidas:

  • SituacionLaboral (Slaboral): Categoría que identifica la situación laboral actual (empleado, independiente, desempleado, etc.).
  • Estrato: Estrato socioeconómico reportado.
  • AOL: Nivel de satisfacción frente a las oportunidades laborales.
  • Division: División académica a la que pertenece el programa del egresado.
# Variable respuesta ordenada correctamente
datos_e$AOL <- factor(datos_e$AOL,
                      levels = c("Insatisfecho", "Satisfecho", "Muy_satisfecho"),
                      ordered = TRUE)

# División académica (nominal)
datos_e$Division <- factor(datos_e$Division)

# Estrato socioeconomico
datos_e$Estrato <- factor(datos_e$Estrato)

str(datos_e)
## tibble [1,925 × 5] (S3: tbl_df/tbl/data.frame)
##  $ Usuario : chr [1:1925] "fcamilo" "gutierrezvaleria" "hcarbal" "daiderl" ...
##  $ AOL     : Ord.factor w/ 3 levels "Insatisfecho"<..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ Division: Factor w/ 7 levels "AD","DCPRI","HUMANIDADES",..: 2 2 6 4 5 5 2 2 2 5 ...
##  $ Estrato : Factor w/ 6 levels "1","2","3","4",..: 6 3 4 1 4 4 5 5 4 3 ...
##  $ Slaboral: chr [1:1925] "Activo" "Inactivo" "Activo" "Inactivo" ...
ggplot(datos_e, aes(x = AOL)) +
  geom_bar(aes(y = (..count..) / sum(..count..)),
           fill = "steelblue") +
  geom_text(
    aes(label = scales::percent((..count..) / sum(..count..), accuracy = 1),
        y = ((..count..) / sum(..count..)) + 0.02),
    stat = "count"
  ) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
  labs(title = "Distribución porcentual de satisfacción sobre oportunidades laborales",
       x = "Nivel de satisfacción",
       y = "Porcentaje") +
  theme_minimal()
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

# Gráfico exploratorio 2: Satisfacción por División Académica
df_prop <- datos_e %>%
  group_by(Division, AOL) %>%
  summarise(n = n(), .groups = "drop") %>%
  group_by(Division) %>%
  mutate(prop = n / sum(n))

ggplot(df_prop, aes(x = Division, y = prop, fill = AOL)) +
  geom_col(position = "fill") +
  geom_text(aes(label = scales::percent(prop, accuracy = 1)),
            position = position_fill(vjust = 0.5),
            color = "black",
            size = 3) +
  labs(title = "Proporción de satisfacción por División Académica",
       x = "División",
       y = "Proporción") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
  scale_fill_brewer(palette = "Blues") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

# Gráfico exploratorio 3: Satisfacción por Estrato

df_prop_est <- datos_e %>%
  group_by(Estrato, AOL) %>%
  summarise(n = n(), .groups = "drop") %>%
  group_by(Estrato) %>%
  mutate(prop = n / sum(n))

ggplot(df_prop_est, aes(x = factor(Estrato), y = prop, fill = AOL)) +
  geom_col(position = "fill") +
  geom_text(aes(label = scales::percent(prop, accuracy = 1)),
            position = position_fill(vjust = 0.5),
            color = "black",
            size = 3) +
  labs(title = "Proporción de satisfacción por Estrato socioeconómico",
       x = "Estrato",
       y = "Porcentaje") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
  scale_fill_brewer(palette = "Blues") +
  theme_minimal()

df_prop_sl <- datos_e %>%
  group_by(Slaboral, AOL) %>%
  summarise(n = n(), .groups = "drop") %>%
  group_by(Slaboral) %>%
  mutate(prop = n / sum(n))

# Gráfico exploratorio 4: Satisfacción según Situación Laboral
ggplot(df_prop_sl, aes(x = Slaboral, y = prop, fill = AOL)) +
  geom_col(position = position_dodge(width = 0.9)) +
  geom_text(aes(label = scales::percent(prop, accuracy = 1)),
            position = position_dodge(width = 0.9),
            vjust = -0.3,
            color = "black",
            size = 3) +
  labs(title = "Satisfacción según situación laboral actual",
       x = "Situación laboral",
       y = "Porcentaje") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1),
                     limits = c(0, 1)) +
  scale_fill_brewer(palette = "Blues") +
  theme_minimal()

3.3 Ajuste del Modelo Logit Adyacente

Ahora se ajusta un modelo Logit Adyacente usando la función vglm() de R.

# Ajuste del modelo con la variable Estrato
modelo_comp <- vglm(AOL ~ Division + Slaboral + Estrato,
                    family = acat(parallel = TRUE),
                    data = datos_e)

# Ver resumen del modelo
summary(modelo_comp)
## 
## Call:
## vglm(formula = AOL ~ Division + Slaboral + Estrato, family = acat(parallel = TRUE), 
##     data = datos_e)
## 
## Coefficients: 
##                     Estimate Std. Error z value Pr(>|z|)    
## (Intercept):1        0.41300    0.14844   2.782 0.005399 ** 
## (Intercept):2        0.25878    0.14395   1.798 0.072225 .  
## DivisionDCPRI        0.05859    0.12796   0.458 0.647044    
## DivisionHUMANIDADES  0.10049    0.12296   0.817 0.413796    
## DivisionINGENIERÍA   0.40793    0.11758   3.470 0.000521 ***
## DivisionNEGOCIOS     0.52284    0.11806   4.429 9.48e-06 ***
## DivisionOTRAS       -0.10423    0.13762  -0.757 0.448806    
## DivisionSALUD        0.83403    0.15213   5.482 4.20e-08 ***
## SlaboralInactivo    -0.32491    0.07627  -4.260 2.04e-05 ***
## Estrato2             0.01917    0.12277   0.156 0.875938    
## Estrato3            -0.08498    0.11249  -0.755 0.450005    
## Estrato4             0.08819    0.11529   0.765 0.444270    
## Estrato5            -0.06284    0.13624  -0.461 0.644609    
## Estrato6             0.20602    0.14927   1.380 0.167533    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Names of linear predictors: loglink(P[Y=2]/P[Y=1]), loglink(P[Y=3]/P[Y=2])
## 
## Residual deviance: 3758.625 on 3836 degrees of freedom
## 
## Log-likelihood: -1879.312 on 3836 degrees of freedom
## 
## Number of Fisher scoring iterations: 4 
## 
## No Hauck-Donner effect found in any of the estimates
## 
## 
## Exponentiated coefficients:
##       DivisionDCPRI DivisionHUMANIDADES  DivisionINGENIERÍA    DivisionNEGOCIOS 
##           1.0603405           1.1057101           1.5037021           1.6868177 
##       DivisionOTRAS       DivisionSALUD    SlaboralInactivo            Estrato2 
##           0.9010153           2.3025882           0.7225933           1.0193516 
##            Estrato3            Estrato4            Estrato5            Estrato6 
##           0.9185346           1.0922002           0.9390913           1.2287773
# Ajuste del modelo sin la variable Estrato - parallel = True
modelo_acat <- vglm(AOL ~ Division + Slaboral,
                    family = acat(parallel = TRUE),
                    data = datos_e)
# Ver resumen del modelo
summary(modelo_acat)
## 
## Call:
## vglm(formula = AOL ~ Division + Slaboral, family = acat(parallel = TRUE), 
##     data = datos_e)
## 
## Coefficients: 
##                     Estimate Std. Error z value Pr(>|z|)    
## (Intercept):1        0.43249    0.11342   3.813 0.000137 ***
## (Intercept):2        0.28598    0.10708   2.671 0.007571 ** 
## DivisionDCPRI        0.04695    0.12742   0.368 0.712529    
## DivisionHUMANIDADES  0.08562    0.12246   0.699 0.484476    
## DivisionINGENIERÍA   0.39047    0.11679   3.343 0.000828 ***
## DivisionNEGOCIOS     0.51376    0.11772   4.364 1.28e-05 ***
## DivisionOTRAS       -0.12850    0.13642  -0.942 0.346209    
## DivisionSALUD        0.80799    0.15136   5.338 9.38e-08 ***
## SlaboralInactivo    -0.32047    0.07573  -4.232 2.32e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Names of linear predictors: loglink(P[Y=2]/P[Y=1]), loglink(P[Y=3]/P[Y=2])
## 
## Residual deviance: 3766.644 on 3841 degrees of freedom
## 
## Log-likelihood: -1883.322 on 3841 degrees of freedom
## 
## Number of Fisher scoring iterations: 4 
## 
## No Hauck-Donner effect found in any of the estimates
## 
## 
## Exponentiated coefficients:
##       DivisionDCPRI DivisionHUMANIDADES  DivisionINGENIERÍA    DivisionNEGOCIOS 
##           1.0480704           1.0893885           1.4776712           1.6715569 
##       DivisionOTRAS       DivisionSALUD    SlaboralInactivo 
##           0.8794108           2.2434018           0.7258088
# Ajuste del modelo sin la variable Estrato - parallel = false
modelo_acat_f <- vglm(AOL ~ Division + Slaboral,
                    family = acat(parallel = FALSE),
                    data = datos_e)


summary(modelo_acat_f)
## 
## Call:
## vglm(formula = AOL ~ Division + Slaboral, family = acat(parallel = FALSE), 
##     data = datos_e)
## 
## Coefficients: 
##                       Estimate Std. Error z value Pr(>|z|)    
## (Intercept):1          0.22018    0.20530   1.072 0.283515    
## (Intercept):2          0.44929    0.17838   2.519 0.011776 *  
## DivisionDCPRI:1        0.05086    0.27116   0.188 0.851217    
## DivisionDCPRI:2        0.04058    0.23446   0.173 0.862600    
## DivisionHUMANIDADES:1  0.34025    0.26103   1.303 0.192414    
## DivisionHUMANIDADES:2 -0.12105    0.22247  -0.544 0.586376    
## DivisionINGENIERÍA:1   0.69265    0.25679   2.697 0.006990 ** 
## DivisionINGENIERÍA:2   0.17759    0.20699   0.858 0.390915    
## DivisionNEGOCIOS:1     0.78317    0.26227   2.986 0.002826 ** 
## DivisionNEGOCIOS:2     0.32608    0.20638   1.580 0.114101    
## DivisionOTRAS:1       -0.28484    0.28551  -0.998 0.318438    
## DivisionOTRAS:2        0.02277    0.25973   0.088 0.930148    
## DivisionSALUD:1        0.65671    0.35234   1.864 0.062345 .  
## DivisionSALUD:2        0.83784    0.25213   3.323 0.000891 ***
## SlaboralInactivo:1     0.01371    0.16278   0.084 0.932856    
## SlaboralInactivo:2    -0.57444    0.13188  -4.356 1.33e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Names of linear predictors: loglink(P[Y=2]/P[Y=1]), loglink(P[Y=3]/P[Y=2])
## 
## Residual deviance: 3753.119 on 3834 degrees of freedom
## 
## Log-likelihood: -1876.559 on 3834 degrees of freedom
## 
## Number of Fisher scoring iterations: 4 
## 
## No Hauck-Donner effect found in any of the estimates
## 
## 
## Exponentiated coefficients:
##       DivisionDCPRI:1       DivisionDCPRI:2 DivisionHUMANIDADES:1 
##             1.0521752             1.0414110             1.4052932 
## DivisionHUMANIDADES:2  DivisionINGENIERÍA:1  DivisionINGENIERÍA:2 
##             0.8859935             1.9990145             1.1943382 
##    DivisionNEGOCIOS:1    DivisionNEGOCIOS:2       DivisionOTRAS:1 
##             2.1883895             1.3855295             0.7521336 
##       DivisionOTRAS:2       DivisionSALUD:1       DivisionSALUD:2 
##             1.0230289             1.9284387             2.3113740 
##    SlaboralInactivo:1    SlaboralInactivo:2 
##             1.0138087             0.5630187
lrtest(modelo_comp, modelo_acat)
## Likelihood ratio test
## 
## Model 1: AOL ~ Division + Slaboral + Estrato
## Model 2: AOL ~ Division + Slaboral
##    #Df  LogLik Df  Chisq Pr(>Chisq)
## 1 3836 -1879.3                     
## 2 3841 -1883.3  5 8.0194     0.1552

3.3.1 Prueba de Razón de Verosimilitud (Likelihood Ratio Test)

Para evaluar si la inclusión de la variable Estrato mejora significativamente el ajuste del modelo, se compararon los siguientes modelos anidados:

  • Modelo 1 (Completo):
    \[ \text{AOL} \sim \text{Division} + \text{Slaboral} + \text{Estrato} \]

  • Modelo 2 (Reducido):
    \[ \text{AOL} \sim \text{Division} + \text{Slaboral} \]

El test LRT analiza si la reducción en la log-verosimilitud al eliminar la variable Estrato es estadísticamente significativa.

Resultados:

Modelo Df LogLik
Modelo 1 3836 -1879.3
Modelo 2 3841 -1883.3

La diferencia en log-verosimilitud fue:

\[ \chi^2 = 8.02,\quad \text{gl} = 5,\quad p = 0.1552 \]

Interpretación:

El valor p = 0.1552 indica que no existe evidencia estadísticamente significativa para afirmar que el estrato socioeconómico mejora el ajuste del modelo.

En consecuencia, desde una perspectiva estadística, se podría trabajar con el modelo reducido, ya que eliminar Estrato no empeora significativamente el ajuste.

# Cálculo del estadístico de la prueba de razón de verosimilitudes
LRT_G <- deviance(modelo_acat) - deviance(modelo_acat_f)
# Grados de libertad (df)
df <- df.residual(modelo_acat) - df.residual(modelo_acat_f)
# p-valor del test LRT
p_value <- pchisq(LRT_G, df = df, lower.tail = FALSE)

data.frame(
  Estadistico_LRT = LRT_G,
  df = df,
  p_value = p_value
)
##   Estadistico_LRT df    p_value
## 1         13.5256  7 0.06029173

3.3.2 Prueba de Razón de Verosimilitudes para el supuesto de paralelismo

En el análisis se empleó un Modelo de Logit Adyacente con pendiente paralela (parallel = TRUE) para estudiar los factores asociados al nivel de satisfacción (AOL) con las oportunidades laborales percibidas por los egresados.

Se contrastaron dos modelos:

\[ H_0: \text{Las pendientes son paralelas (modelo restringido)} \\ H_1: \text{Las pendientes no son paralelas (modelo no restringido)} \]

Conclusión: El p-valor obtenido (0.0603) es mayor que 0.05, por lo que no se rechaza la hipótesis nula de que las pendientes son paralelas entre ecuaciones adyacentes.

El supuesto de paralelismo se cumple y el modelo con pendientes paralelas es adecuado.

3.3.3 Supuesto Independencia de las observaciones

Se evaluó si existía dependencia entre las observaciones debido a la estructura por División.
Se calculó la media de la variable dependiente (AOL) para cada División, encontrando que todas presentan el mismo valor promedio (AOL = 2). Esto implica ausencia total de variación entre grupos.

Dado que la varianza entre divisiones es igual a cero, la estimación del ICC no es posible (modelo singular), lo que indica que no existe dependencia agrupada.

Conclusión: El supuesto de independencia se cumple.

library(car)
## Warning: package 'car' was built under R version 4.4.3
## Cargando paquete requerido: carData
## 
## Adjuntando el paquete: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
## The following object is masked from 'package:VGAM':
## 
##     logit
X <- model.matrix(~ Division + Slaboral, data = datos_e)[, -1]  # quitar intercepto

# Crear un data.frame de predictores
preds <- as.data.frame(X)

# Función para calcular VIF por variable manualmente
calc_vif <- function(df){
  vif_vals <- numeric(ncol(df))
  names(vif_vals) <- colnames(df)
  
  for (i in seq_along(df)) {
    model <- lm(df[[i]] ~ ., data = df[-i])
    r2 <- summary(model)$r.squared
    vif_vals[i] <- 1 / (1 - r2)
  }
  
  return(vif_vals)
}

vif_manual <- calc_vif(preds)
vif_manual
##       DivisionDCPRI DivisionHUMANIDADES  DivisionINGENIERÍA    DivisionNEGOCIOS 
##            2.028764            2.221185            2.661267            2.712787 
##       DivisionOTRAS       DivisionSALUD    SlaboralInactivo 
##            1.773395            1.868838            1.009231

3.3.4 Ausencia de multicolinealidad

La función vif() no es compatible con objetos vglm, por lo que se realizó una estimación manual de los VIF ajustando modelos lineales auxiliares.

Todos los VIF se encuentran por debajo de 5 y muy por debajo del umbral crítico de 10.

Conclusión: No existe multicolinealidad problemática entre los predictores.

3.3.5 Ausencia de separación perfecta

OR <- exp(coef(modelo_acat))
OR
##       (Intercept):1       (Intercept):2       DivisionDCPRI DivisionHUMANIDADES 
##           1.5410929           1.3310657           1.0480704           1.0893885 
##  DivisionINGENIERÍA    DivisionNEGOCIOS       DivisionOTRAS       DivisionSALUD 
##           1.4776712           1.6715569           0.8794108           2.2434018 
##    SlaboralInactivo 
##           0.7258088

4 Resultados

4.0.1 Resultados del modelo ACAT

Se ajustó un modelo de regresión logística ordinal de categoría adyacente (ACAT) para evaluar los factores asociados con la satisfacción de los usuarios (AOL) en función de la división académica y la situación laboral. La variable respuesta fue tratada como ordinal con niveles: Insatisfecho, Satisfecho y Muy Satisfecho.

Previo al análisis, se verificaron los supuestos del modelo, incluyendo la paralelismo de las líneas (líneas paralelas) mediante un test de razón de verosimilitudes, el cual arrojó un p-valor = 0.0603, indicando que el supuesto se cumple. Por lo tanto, el modelo con líneas paralelas (modelo_acat) es adecuado para describir la relación entre los predictores y la satisfacción de los usuarios.

A continuación, se presentan los coeficientes del modelo y su interpretación en términos de odds ratios para cada variable independiente.

4.0.2 Resultados del modelo ACAT

Se ajustó un modelo de regresión logística ordinal (ACAT) para evaluar el efecto de la división académica y la situación laboral sobre la satisfacción de los usuarios.

Los coeficientes exponentiados (OR) indican lo siguiente:

  • Los usuarios de Ingeniería y Negocios presentan mayores probabilidades de reportar niveles más altos de satisfacción que la categoría de referencia (OR = 1.48 y OR = 1.67, respectivamente).
  • La división de Salud muestra un efecto positivo significativo (OR = 2.24).
  • Los usuarios inactivos laboralmente presentan menor probabilidad de estar en niveles superiores de satisfacción comparados con los activos (OR = 0.73), indicando un efecto negativo de la inactividad.
  • Otras divisiones, como DCPRI, Humanidades y Otras, muestran efectos menores o no significativos.

En general, estos resultados sugieren que tanto la división académica como la situación laboral influyen en la satisfacción de los usuarios.


5 Conclusiones

5.0.1 Conclusión

El análisis mediante el modelo ACAT muestra que la división académica y la situación laboral están significativamente asociadas con la satisfacción de los usuarios. Los usuarios de Ingeniería, Negocios y Salud tienen mayor probabilidad de reportar niveles altos de satisfacción, mientras que los inactivos presentan menor probabilidad de encontrarse en niveles superiores de satisfacción. Estos resultados permiten interpretar confiablemente el efecto de estas variables sobre la satisfacción.