Ordinal <- read.csv("~/Especializacion2024/Carpeta nueva/Ordinal.csv")
View(Ordinal)Regreción Logística Ordinal
Introducción
Primero, cargamos la base de datos y examinamos su estructura
Visualizar la estructura y un resumen de los datos.
str(Ordinal)'data.frame': 95 obs. of 5 variables:
$ sub : int 1 2 3 4 5 6 7 9 10 11 ...
$ Age : int 18 25 28 29 20 20 28 21 18 19 ...
$ Sex : int 2 1 1 2 2 2 2 2 2 2 ...
$ Stupidity : num 3 2.2 1.8 2.4 2.8 1.6 2.2 2.4 2.6 2 ...
$ Coldplay_cat: int 0 0 1 2 1 2 2 0 2 0 ...
summary(Ordinal) sub Age Sex Stupidity
Min. : 1.00 Min. :18.00 Min. :1.000 Min. :1.600
1st Qu.: 26.50 1st Qu.:20.00 1st Qu.:1.000 1st Qu.:2.200
Median : 52.00 Median :21.00 Median :2.000 Median :2.400
Mean : 52.12 Mean :22.65 Mean :1.621 Mean :2.526
3rd Qu.: 77.50 3rd Qu.:23.00 3rd Qu.:2.000 3rd Qu.:2.800
Max. :104.00 Max. :58.00 Max. :2.000 Max. :4.000
Coldplay_cat
Min. :0.000
1st Qu.:1.000
Median :2.000
Mean :1.968
3rd Qu.:3.000
Max. :3.000
Antes de ajustar el modelo, realizamos una exploración inicial de los datos para entender la estructura y las variables involucradas.
library(ordinal)Warning: package 'ordinal' was built under R version 4.3.3
table(Ordinal$Coldplay_cat)
0 1 2 3
13 14 31 37
Ajuste del Modelo de Regresión Logística Ordinal.
Tomaremos la variable “Coldplay_cat” como la variable dependiente ordinal y las otras variables como “Stupidity”, “Age” y “Sex” son las independientes, ajustamos el modelo con la función clm.
modelo_ordinal <- clm(factor(Coldplay_cat) ~ Age + Sex + Stupidity, data = Ordinal)Resumen del modelo
summary(modelo_ordinal)formula: factor(Coldplay_cat) ~ Age + Sex + Stupidity
data: Ordinal
link threshold nobs logLik AIC niter max.grad cond.H
logit flexible 95 -112.56 237.12 4(0) 9.58e-07 1.8e+05
Coefficients:
Estimate Std. Error z value Pr(>|z|)
Age -0.12730 0.04626 -2.751 0.00593 **
Sex -0.36881 0.41240 -0.894 0.37116
Stupidity 1.37869 0.54737 2.519 0.01178 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Threshold coefficients:
Estimate Std. Error z value
0|1 -2.1065 2.0387 -1.033
1|2 -1.0531 2.0288 -0.519
2|3 0.5393 2.0293 0.266
El modelo se ajustó utilizando 95 observaciones, con un valor de log-likelihood de -112.56 y un AIC de 237.12. Estos valores indican el ajuste del modelo; un AIC más bajo generalmente sugiere un mejor modelo en comparación con otros modelos.
Evaluación del Modelo.
Una vez que el modelo está ajustado, es importante evaluar su rendimiento y significancia:
# Extraer coeficientes y errores estándar
coeficientes <- coef(summary(modelo_ordinal))# Calcular los valores t
t_values <- coeficientes[, "Estimate"] / coeficientes[, "Std. Error"]# Calcular los p-values
p_values <- 2 * pnorm(abs(t_values), lower.tail = FALSE)# Añadir los valores t y p-values a la tabla de coeficientes
coeficientes <- cbind(coeficientes, "t value" = t_values, "p value" = p_values)
coeficientes Estimate Std. Error z value Pr(>|z|) t value p value
0|1 -2.1065407 2.03871067 -1.0332710 0.301477086 -1.0332710 0.301477086
1|2 -1.0531332 2.02882226 -0.5190860 0.603700783 -0.5190860 0.603700783
2|3 0.5392777 2.02928905 0.2657471 0.790433998 0.2657471 0.790433998
Age -0.1272979 0.04626496 -2.7514972 0.005932353 -2.7514972 0.005932353
Sex -0.3688115 0.41239731 -0.8943111 0.371155463 -0.8943111 0.371155463
Stupidity 1.3786923 0.54737098 2.5187531 0.011777121 2.5187531 0.011777121
Calcular e interpretar los odds ratios
library(ordinal)
exp(coef(modelo_ordinal)) 0|1 1|2 2|3 Age Sex Stupidity
0.1216581 0.3488430 1.7147678 0.8804713 0.6915558 3.9697072
AIC del modelo
AIC(modelo_ordinal)[1] 237.1207
names(Ordinal)[1] "sub" "Age" "Sex" "Stupidity" "Coldplay_cat"
Interpretación de los Coeficientes
Age (Edad): El coeficiente estimado para Age es -0.12730 con un error estándar de 0.04626. El valor de z es -2.751 y el valor p es 0.00593, que es estadísticamente significativo a un nivel del 1% (p < 0.01). Esto sugiere que a medida que la edad aumenta, la probabilidad de estar en una categoría más alta de Coldplay_cat disminuye. En otras palabras, las personas más jóvenes tienen una mayor probabilidad de estar en una categoría más alta de la variable dependiente.
Sex (Sexo): El coeficiente estimado para Sex es -0.36881 con un error estándar de 0.41240. El valor de z es -0.894 y el valor p es 0.37116, lo que indica que no es estadísticamente significativo (p > 0.05). Esto sugiere que el sexo no tiene un efecto estadísticamente significativo sobre las probabilidades de las diferentes categorías de Coldplay_cat.
Stupidity (Estupidez): El coeficiente estimado para Stupidity es 1.37869 con un error estándar de 0.54737. El valor de z es 2.519 y el valor p es 0.01178, que es estadísticamente significativo a un nivel del 5% (p < 0.05). Esto indica que a medida que aumenta el nivel de “estupidez”, la probabilidad de estar en una categoría más alta de Coldplay_cat también aumenta.
Interpretación de los Resultados.
En este apartado, interpretamos los resultados obtenidos del modelo:
Coeficientes Los coeficientes estimados para cada predictor indican la dirección y la magnitud del efecto de las variables independientes en la probabilidad de la variable dependiente (Coldplay_cat).
Significancia Los valores p asociados a los coeficientes nos permiten evaluar si estos efectos son estadísticamente significativos.
Odds Ratios Podemos calcular los odds ratios para interpretar los coeficientes en términos de probabilidades.
Calcular e interpretar los odds ratios
exp(coef(modelo_ordinal)) Evaluación del Modelo Finalmente, evaluamos el ajuste del modelo utilizando varias métricas como el AIC (Criterio de Información de Akaike) y las tablas de contingencia.