El presente trabajo se realizó con el fin de aplicar todos los conceptos y técnicas adquiridos y aprendidos en el curso de inferencial de la especialización de estadística de la universidad surcolombiana y su propósito es determinar el comportamiento de consumo de energía en la sede principal de la universidad surcolombiana.
Para el desarrollo de las habilidades prácticas en la manipulación y análisis de datos se empleó como herramienta el programa Rstudio, donde se aplicaron todas formulas necesaria para hacer un análisis inferencial de los datos de consumo de energía, a través del planteamiento de hipótesis sobre el comportamiento y su respectivo análisis. Los cuales, según su revisión, después de aplicar los intervalos de confianza, los estimadores como la media, la desviación estándar y las pruebas de hipótesis, sabemos que no guardan una distribución normal, por ende, se aplicó una prueba no paramétrica, como la prueba de Wilkoxon, Lo que permite establecer el rechazo de la hipótesis nula, al evidenciar diferencias significativas en el consumo de energía de la Universidad Surcolombiana durante los periodos analizados en este estudio.
Finalmente, los resultados nos indican que los periodos donde hay mayor consumo son los correspondiente al mes 10, 15 y 20, y la reducción más alta que se presenta en los datos analizados es en los meses del 30 al 40 que es el periodo de pandemia, donde se presenta un consumo bajo de energía en la sede principal de la universidad surcolombiana de la ciudad de Neiva.
En los últimos años el uso de energia a venido creciendo considerablemente, especialmente en las entidades o intituciones que agrupan un numero mayor de población. Así mismo, el auge de aparatos electronicos tanto en la población académica como en las actividades propias de administración de la universidad han llevado a un crecimiento de la demanda energetica, adicional el crecimiento en infraestructuras físicas inciden en la mayor demanda e incluso variaciones térmicas.
Es algo que se ve reflejado en las universidades en lo relacionado al consumo de energia, sin embargo, es dificil encontrar un estudio estadisto que permita hacer un analisis descriptivo del comportamiento en el consumo y en la Universidad Surcolombiana, simplemente se lleva un registro de consumos mes a mes pero no se hace una revisión de la evolución del consumo en el tiempo.
En este sentido, es indespensable hacer planteamientos o estudios que respondan a los altos consumos de energia, especificamente en instuciones de educación superior como la universidad surcolombiana en donde se debe analizar que posibles situaciones podrían estar incidiendo en un cosumo desmedido.
Para el presente analisis se considero la variable cuantitativa consumo de energia (Kwh/mes) para 5 años (2018-2022). Para ello se utilizo una fuente de datos suministrada por la Universidad Surcolombiana y se recurre a la aplicación de análisis a través de la estadística inferencial, a fin de comprobar la hipótesis si existe o no diferencias significativas en el consumo de energía eléctrica durante 60 meses en la Sede Central de la Institución.
El tipo de muestreo que se escogio para el ejercicio fue el muestreo por conveniencia teniendo en cuenta que se cuenta con una base de datos suministrada por la universidad.
H_0: No hay diferencia significativa del consumo de energía mensual de los años 2018 al 2022 en la sede central de la universidad surcolombiana.
H_1: Existencia diferencia significativa en el consumo de energía en los meses de los años 2018 al 2022 en la sede central de la universidad surcolombiana.
Para el analisis Se tomaron 60 datos del consumo de energia electrica (Kwh/mes) correspondientes a los meses desde enero de 2018 hasta diciembre de 2022 de la sede central de la Universidad Surcolombiana.
consumo <- c(76301, 159019, 161081, 164839, 179862, 113650, 94282, 186463, 192588, 172391, 118018, 75882, 108778, 176059, 138830, 157766, 192944, 137842, 159193, 125774, 193963, 179044, 142735, 116948, 105758, 142727, 125302, 37220, 37523, 37165, 40690, 39992, 42463, 46209, 47002, 46820, 40172, 47632, 46884, 52498, 48754, 43960, 49687, 69430, 87680, 86994, 90040, 78549, 73212, 99483, 100482, 113566, 145862, 108954, 120167, 95764, 144850, 132249, 139556, 100281)
mes <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60)
temperatura <- c(23,34,35,36,41,25,24,42,43,39,25,24,24,40,29,33,43,29,34,27,43,41,30,25,24,30,27,18,18,18,19,19,22,22,22,22,19,22,22,23,23,22,23,23,23,23,24,23,23,25,25,25,32,24,25,24,31,27,29,24)
población<-c(2380,6700,6580,6890,8271,3520,2350,9102,10510,8100,4100,2300,2400,8296,4652,6620,10320,5234,7982,3954,10640,7984,6400,3921,2400,5632,4421,670,678,650,890,786,1020,1062,1153,1236,898,1252,1078,1789,1398,1105,1500,1890,2300,2254,3008,1780,1560,2385,2450,2800,5800,2490,2750,2000,5790,4320,5200,2430)
binomial <- as.factor(c(0,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,1,1,1))
La presente grafica refleja el comportamiento del comsumo de energia por los 60 meses de los años 2018 a 2022.
# Estimaciones Media y Desviación Estandar
media_consumo<- mean(consumo)
media_consumo
## [1] 106497.1
desviacion_consumo <- sd(consumo)
desviacion_consumo
## [1] 49277.06
Con el fin de estimar el sesgo y la consistencia, se selecciono una muestra por conveniencia de 10 datos
consumo_conv <- c(76301, 159019, 161081, 164839, 179862, 113650, 94282, 186463, 192588, 172391)
media_consumo_conv<- mean(consumo_conv)
media_consumo_conv
## [1] 150047.6
desviacion_consumo_conv <- sd(consumo_conv)
desviacion_consumo_conv
## [1] 40576.47
Comprobamos si existe sesgo en el estimador
if (media_consumo != media_consumo_conv) {
print("Si hay sesgo en el estimador de Media de consumo")
} else {
print("El estimador de media de consumo es insesgado")
}
## [1] "Si hay sesgo en el estimador de Media de consumo"
Compromabos si exite consistencia, para ello tomo otra muestras por conveniencia de 30 datos.
consumo_conv_1 <- c(76301, 159019, 161081, 164839, 179862, 113650, 94282, 186463, 192588, 172391, 118018, 75882, 108778, 176059, 138830, 157766, 192944, 137842, 159193, 125774,193963, 179044, 142735, 116948, 105758, 142727, 125302, 37220, 37523, 37165)
Length1<-length(consumo_conv)
Length2<-length(consumo_conv_1)
Length3<-length(consumo)
media_consumo_conv_1<- mean(consumo_conv_1)
media_consumo_conv_1
## [1] 133664.9
cat("El promedio de consumo con:",Length1,"es igual a:" ,media_consumo_conv)
## El promedio de consumo con: 10 es igual a: 150047.6
cat("El promedio de consumo con:",Length2,"es igual a:" ,media_consumo_conv_1)
## El promedio de consumo con: 30 es igual a: 133664.9
cat("El promedio de consumo con:",Length3,"es igual a:" ,media_consumo)
## El promedio de consumo con: 60 es igual a: 106497.1
Se concluye que los datos no son consistentes, ya que al analizar la media con respecto a la media de una muestra de n=10 y otra muestra de n=30, hay variaciones importantes entre los resultados obtenidos. Esto se debe en primera medida, al tamaño de la población de estudio, la cual sólo cuenta con un total de 60 datos, adicional, se observa que los datos del consumo varían significativamente unos de otros, segundo, las muestras fueron seleccionadas por conveniencia.
varianza_total <- var(consumo)
varianza_total
## [1] 2428228789
varianza_estimador1 <- var(consumo_conv)
varianza_estimador1
## [1] 1646449872
varianza_estimador2 <- var(consumo_conv_1)
varianza_estimador2
## [1] 2179312053
if (varianza_estimador1 < varianza_estimador2) {
print("Es eficiente")
} else {
print("No es eficiente")
}
## [1] "Es eficiente"
Intervalo de Confianza para la media del consumo de energia en el periodo del 2018 al 2022, se tienen 60 datos y se desea construir un intervalo de confianza del 90% para el consumo medio.
#Nivel de confianza
nivel_confianza <- 0.90
# Cálculos
media_muestra <- mean(consumo)
error_estandar <- sd(consumo) / sqrt(length(consumo))
valor_critico <- qt((1 + nivel_confianza) / 2, df = length(consumo) - 1)
margen_error <- valor_critico * error_estandar
# Intervalo de confianza
intervalo_confianza <- c(media_muestra - margen_error, media_muestra + margen_error)
# Mostrar resultado
cat("Intervalo de confianza del", nivel_confianza * 100, "% para la media del consumo:", intervalo_confianza, "\n")
## Intervalo de confianza del 90 % para la media del consumo: 95866.26 117128
H_0: No hay diferencia significativa del consumo de energía mensual (Kwh/mes) en elperiodo comprendido entre el año 2018 al 2022 en la Sede Central de la Universidad Surcolombiana.
H_1: Existe diferencia significativa en el consumo de energía (Kwh/mes) mensual en el periodo comprendido entre el año 2018 al 2022 en la Sede Central de la Universidad Surcolombiana.
Teniendo en cuenta la H_0 y la H_a se realiza la verificación de la normalidad de los datos visualmente con Q-Q plot y la prueba Shapiro Wilk
shapiro.test(consumo)
##
## Shapiro-Wilk normality test
##
## data: consumo
## W = 0.93591, p-value = 0.00357
shapiro.test(mes)
##
## Shapiro-Wilk normality test
##
## data: mes
## W = 0.95523, p-value = 0.02761
De acuerdo a lo observado en la gráfica Q_Q plot en donde se evidencia que los puntos se encuentran distantes de la linea, es decir, existe cierta dipersion y según la prueba Shapiro Wilk el p-value corresponde a un valor de 0.00357. Por lo tanto, los datos no se distribuyen normalmente, en este sentido, se tiene un p-value > al 0.05, que nos indica que se debe rechazar la hipotesis nula y no rechazar la hipotesis alternativa. Para ello, realizamos una prueba de hipótesis no paramétrica: Aplicamos la prueba de Wilkoxon porque a través de ella se permite comparar las medianas de la muestra, y así mismo, determinar si existen diferencias entre los datos analizados.
Ahora se determina si hay diferencias significativas entre los datos de consumo de energia mensual (Kwh/mes) de la Sede Central de la Universidad Surcolombiana durante los meses correspondientes a los años 2018 al 2022.
# Realizar la prueba de Wilcoxon (Mann-Whitney U)
resultado_wilcoxon <- wilcox.test(consumo)
print(resultado_wilcoxon)
##
## Wilcoxon signed rank test with continuity correction
##
## data: consumo
## V = 1830, p-value = 1.671e-11
## alternative hypothesis: true location is not equal to 0
En nuestro caso las variables de análisis son: La variable independiente (x) corresponde al mes o periodo de consumo La variable dependiente (y) corresponde al consumo (Kwh/mes) Por consiguiente utilizamos el suguiente código para determinar la correlación entre ellas y el tipo de correlación existente.
# Correlación
conc <- cor(mes,consumo)
conc
## [1] -0.4071213
A partir del resultado de -0.4071213 de la correlación entre las variables de análisis (mes/consumo), se puede afirmar que es una correlación negativa con tendencia débil, por cuanto el valor se aleja del valor que la hace fuerte negativa (-1), se sugiere agregar una variable nueva u otr a diferente al mes con el fin de mejorar la correlación.
# Comportamiento de datos por variable
pairs(mes~consumo)
De acuerdo alos gráficos de cada variable se observa una alta dispersión de datos tanto en la variable independiente mes, como en la variable dependiente consumo, siendo un indicativo de poca normalidad de los datos.
# Análisis de resultados
if (resultado_wilcoxon$p.value < 0.05) {
cat("Hay diferencias significativas en el consumo de energia.")
} else {
cat("No hay suficiente evidencia para afirmar diferencias significativas.")
}
## Hay diferencias significativas en el consumo de energia.
A partir del análisis de los datos, se puede inferir que las diferencias significativas en el consumo de energía mensual en los años de estudio, se constituyen debido por factores como la asistencia de estudiantes al campus universitario, la cual no es continua en algunos meses en los diferentes años, especialmente en los meses de mitad de año (junio, julio) y de cierre e inicio de año (diciembre y enero) los cuales son periodos de vacaciones, adicionalmente en años como el 2019 hubo situaciones no controladas por la entidad como paro estudiantil prolongado por mas de dos meses y entre marzo de 2020 hasta septiembre de 2021 fue periodo de pandemia declarado por el gobierno nacional que inciden en cambios significativos de reducción en la demanda de energía, como se constata en los picos de la grafica.
# Análisis de resultados
consumo1 <- data.frame(mes, consumo)
Regconsumo1 <- lm(mes ~ consumo, data = consumo1)
Regconsumo1
##
## Call:
## lm(formula = mes ~ consumo, data = consumo1)
##
## Coefficients:
## (Intercept) consumo
## 45.8662156 -0.0001443
summary(Regconsumo1)
##
## Call:
## lm(formula = mes ~ consumo, data = consumo1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -33.86 -10.59 -3.09 12.01 33.27
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 45.8662156 4.9804159 9.209 6e-13 ***
## consumo -0.0001443 0.0000425 -3.395 0.00125 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 16.09 on 58 degrees of freedom
## Multiple R-squared: 0.1657, Adjusted R-squared: 0.1514
## F-statistic: 11.52 on 1 and 58 DF, p-value: 0.001245
# grafico de tendencia de datos en el modelo de regresión lineal
plot(Regconsumo1)
par(mfrow = c(2, 2))
library(ggplot2)
ggplot(data = consumo1, aes(x = mes, y = consumo)) + geom_point() + geom_smooth(method = "lm", se = TRUE, color = "firebrick")+theme_bw() + labs(x = "mes", y = "consumo")
## `geom_smooth()` using formula = 'y ~ x'
#Interprestanción de datos de analisis de regresión lineal simple
En primer lugar se determina que no hay normalidad porque los datos no tienen un tendencia lineal, confirmado con el valor del error estandar residual de 16.09, que representa la diferencia entre el valor observado real respecto a la recta estimada, es decir si hubiera normalidad el error sería mínimo o cerca de cero.
En cuanto a la homocedasticidad, según el gráfico obtenido, existen muchos datos que están fuera del area sombreada, por tanto, la dependencia directa de la variable Y=consumo no tiene representación lineal con respecto a la variable independiente X=mes, existiendo una relación débil negativa entre las variables.
Se presenta la ecuación de regresión lineal, en ella se muestran los parámetros del modelo que miden la influencia de la variable independiente sobre la variable dependiente, de ello se deduce que el beta 1 de -0.00014143 corresponde a la pendiente que en este caso es negativa con un nivel de significancia de -3.395 y el beta cero es de 45.8662, representa el intercepto en la variable dependiente Y con un nivel de significancia de 9.209, de acuerdo a la interpretación de esta ecuación y el gráfico, se observa que el consumo tiende a disminuír en el tiempo.
Y = -0.00014143x+ 45.8662+16.09
# Datos en el modelo de regresión lineal múltiple
modeloRM <- lm(`consumo` ~ `mes` + `temperatura` + `población`)
summary (modeloRM)
##
## Call:
## lm(formula = consumo ~ mes + temperatura + población)
##
## Residuals:
## Min 1Q Median 3Q Max
## -27403 -15186 1857 11577 30351
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 41072.84 24735.67 1.660 0.102
## mes 196.93 129.44 1.521 0.134
## temperatura -345.50 1341.37 -0.258 0.798
## población 17.95 3.35 5.359 1.63e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 15190 on 56 degrees of freedom
## Multiple R-squared: 0.9098, Adjusted R-squared: 0.905
## F-statistic: 188.4 on 3 and 56 DF, p-value: < 2.2e-16
Al ejercicio se agregaron además del consumo las variables de temperatura y población con el propósito de examinar la relación de linealidad entre la variable dependiente y estas tres variables independientes y determinar un modelo que pueda predecir el comportamiento de la variable dependiente consumo, de esta manera con los datos se aplica el modelo de regresión lineal múltiple y obtenemos la siguientes fórmula
Y= 41.072,84 + 196,93X1 - 345,5X2 + 17,95X3 + 15.190
Donde:
Intercepto = 41.072,84
B1 = 196,93
B2 = -345,5
B3 = 17,95
e = 15.190
De acuerdo al resultado de aplicar el modelo de regresión lineal múltiple, se puede inferir que la variable independiente que mayor aporta al modelo es la población, porque su nivel de significancia es el más alto con un valor de 5,36 respecto a las otras variables independientes agregadas al modelo y presenta el menor error, de tal forma que se puede inferir que a medida que aumenta la población en la Universidad el consumo de energía es mayor, y se da una relación directa positiva entre estas variables (población/consumo), mientras que las variables mes y temperatura no muestran una gran significancia en el consumo de energía.
Aquí realizaremos un análisis de la bondad del ajuste con la función anova y se genera predicciones basadas en un umbral de probabilidad de 0.5. Finalmente, se crea una matriz de confusión para evaluar el rendimiento del modelo.
# Generar el modelo de regresión logística
dataf <- data.frame(binomial,consumo)
dataf
## binomial consumo
## 1 0 76301
## 2 1 159019
## 3 1 161081
## 4 1 164839
## 5 1 179862
## 6 1 113650
## 7 0 94282
## 8 1 186463
## 9 1 192588
## 10 1 172391
## 11 0 118018
## 12 1 75882
## 13 1 108778
## 14 1 176059
## 15 1 138830
## 16 1 157766
## 17 1 192944
## 18 1 137842
## 19 1 159193
## 20 1 125774
## 21 1 193963
## 22 1 179044
## 23 1 142735
## 24 1 116948
## 25 1 105758
## 26 1 142727
## 27 0 125302
## 28 0 37220
## 29 0 37523
## 30 0 37165
## 31 0 40690
## 32 0 39992
## 33 0 42463
## 34 0 46209
## 35 0 47002
## 36 0 46820
## 37 0 40172
## 38 0 47632
## 39 0 46884
## 40 0 52498
## 41 0 48754
## 42 0 43960
## 43 0 49687
## 44 0 69430
## 45 0 87680
## 46 0 86994
## 47 0 90040
## 48 0 78549
## 49 0 73212
## 50 1 99483
## 51 1 100482
## 52 1 113566
## 53 1 145862
## 54 1 108954
## 55 0 120167
## 56 1 95764
## 57 1 144850
## 58 1 132249
## 59 1 139556
## 60 1 100281
modelo_logistica <- glm(binomial ~ consumo, data = dataf, family = "binomial")
modelo_logistica
##
## Call: glm(formula = binomial ~ consumo, family = "binomial", data = dataf)
##
## Coefficients:
## (Intercept) consumo
## -7.540e+00 7.706e-05
##
## Degrees of Freedom: 59 Total (i.e. Null); 58 Residual
## Null Deviance: 82.58
## Residual Deviance: 30.61 AIC: 34.61
residuos <- residuals(modelo_logistica, type = "deviance")
odds_predichos <- exp(predict(modelo_logistica, type = "link"))
# Imprimir los estadísticos descriptivos de los residuos deviance
print(summary(residuos))
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -2.111776 -0.199655 0.041618 0.002955 0.282637 1.929377
#mostrar los odds predichos
odds_predichos
## 1 2 3 4 5 6
## 1.901438e-01 1.115226e+02 1.307286e+02 1.746376e+02 5.557823e+02 3.380819e+00
## 7 8 9 10 11 12
## 7.600515e-01 9.243086e+02 1.481833e+03 3.125191e+02 4.733730e+00 1.841025e-01
## 13 14 15 16 17 18
## 2.322593e+00 4.146023e+02 2.353466e+01 1.012580e+02 1.523047e+03 2.180937e+01
## 19 20 21 22 23 24
## 1.130280e+02 8.605369e+00 1.647463e+03 5.218301e+02 3.179762e+01 4.359075e+00
## 25 26 27 28 29 30
## 1.840367e+00 3.177802e+01 8.297998e+00 9.357902e-03 9.578970e-03 9.318324e-03
## 31 32 33 34 35 36
## 1.222664e-02 1.158637e-02 1.401662e-02 1.870720e-02 1.988601e-02 1.960906e-02
## 37 38 39 40 41 42
## 1.174821e-02 2.087524e-02 1.970600e-02 3.037242e-02 2.276045e-02 1.573050e-02
## 43 44 45 46 47 48
## 2.445711e-02 1.119783e-01 4.569801e-01 4.334503e-01 5.481232e-01 2.261074e-01
## 49 50 51 52 53 54
## 1.498664e-01 1.134755e+00 1.225562e+00 3.359005e+00 4.046171e+01 2.354308e+00
## 55 56 57 58 59 60
## 5.586283e+00 8.520014e-01 3.742624e+01 1.417310e+01 2.488884e+01 1.206725e+00
#grafico diagrama de bigotes
library(ggplot2)
ggplot(data = dataf, aes(x = binomial, y = consumo, color = binomial)) +
geom_boxplot(outlier.shape = NA) + geom_jitter(width = 0.1) + theme_bw() + theme(legend.position = "none")
# Obtener los valores ajustados del modelo
valores_ajustados <- predict(modelo_logistica, type = "response")
summary(valores_ajustados)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.009232 0.028076 0.673481 0.550000 0.970626 0.999393
confint(object = modelo_logistica, level = 0.95 )
## Waiting for profiling to be done...
## 2.5 % 97.5 %
## (Intercept) -1.288479e+01 -4.2465537601
## consumo 4.481476e-05 0.0001296414
#Gráfico del modelo
# MEDIANTE BASE GRAPHICS SIN INTERVALOS DE CONFIANZA
# Codificación 0,1 de la variable respuesta
dataf$binomial <- as.character(dataf$binomial)
dataf$binomial <- as.numeric(dataf$binomial)
plot(binomial ~ consumo, dataf, col = "darkblue",
main = "Modelo regresión logística",
ylab = "P(binomial=1|consumo)",
xlab = "consumo", pch = "I")
# type = "response" devuelve las predicciones en forma de probabilidad en lugar de en log_ODDs
curve(predict(modelo_logistica, data.frame(consumo = x), type = "response"),
col = "firebrick", lwd = 2.5, add = TRUE)
# MEDIANTE GGPLOT2 INCLUYENDO INTERVALOS DE CONFIANZA
dataf$binomial <- as.character(dataf$binomial)
dataf$binomial <- as.numeric(dataf$binomial)
# Se crea un vector con nuevos valores interpolados en el rango de observaciones.
nuevos_puntos <- seq(from = min(dataf$consumo), to = max(dataf$consumo),
by = 0.5)
# Predicciones de los nuevos puntos según el modelo.
# Si se indica se.fit = TRUE se devuelve el error estándar de cada predicción
# junto con el valor de la predicción (fit).
predicciones <- predict(modelo_logistica, data.frame(consumo = nuevos_puntos),
se.fit = TRUE)
# Mediante la función logit se transforman los log_ODDs a probabilidades.
predicciones_logit <- exp(predicciones$fit) / (1 + exp(predicciones$fit))
# Se calcula el límite inferior y superior del IC del 95% sustrayendo e
# incrementando el logODDs de cada predicción 1.95*SE. Una vez calculados los
# logODDs del intervalo se transforman en probabilidades con la función logit.
limite_inferior <- predicciones$fit - 1.96 * predicciones$se.fit
limite_inferior_logit <- exp(limite_inferior) / (1 + exp(limite_inferior))
limite_superior <- predicciones$fit + 1.96 * predicciones$se.fit
limite_superior_logit <- exp(limite_superior) / (1 + exp(limite_superior))
# Se crea un dataframe con los nuevos puntos y sus predicciones
datos_curva <- data.frame(consumo = nuevos_puntos,
probabilidad_binomial = predicciones_logit,
limite_inferior_logit = limite_inferior_logit,
limite_superior_logit = limite_superior_logit)
ggplot(dataf, aes(x = consumo, y = binomial)) +
geom_point(aes(color = as.factor(binomial)), shape = "I", size = 3) +
geom_line(data = datos_curva, aes(y = probabilidad_binomial),
color = "firebrick") +
geom_line(data = datos_curva, aes(y = limite_inferior_logit),
linetype = "dashed") +
geom_line(data = datos_curva, aes(y = limite_superior_logit),
linetype = "dashed") +
theme_bw() +
labs(title = "Modelo regresión logística binomial ~ Consumos",
y = "P(binomial = 1 | consumo)", y = "consumo") +
theme(legend.position = "null") +
theme(plot.title = element_text(size = 10))
#Evaluación del modelo
# Diferencia de residuos
# En R, un objeto glm almacena la "deviance" del modelo, así como la "deviance"
# del modelo nulo.
dif_residuos <- modelo_logistica$null.deviance - modelo_logistica$deviance
# Grados libertad
df <- modelo_logistica$df.null - modelo_logistica$df.residual
# p-value
p_value <- pchisq(q = dif_residuos,df = df, lower.tail = FALSE)
paste("Diferencia de residuos:", round(dif_residuos, 4))
## [1] "Diferencia de residuos: 51.9704"
anova(modelo_logistica, test = "Chisq")
## Analysis of Deviance Table
##
## Model: binomial, link: logit
##
## Response: binomial
##
## Terms added sequentially (first to last)
##
##
## Df Deviance Resid. Df Resid. Dev Pr(>Chi)
## NULL 59 82.577
## consumo 1 51.97 58 30.606 5.634e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
paste("p-value:", p_value)
## [1] "p-value: 5.63429987055088e-13"
summary(modelo_logistica)
##
## Call:
## glm(formula = binomial ~ consumo, family = "binomial", data = dataf)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -7.540e+00 2.120e+00 -3.556 0.000377 ***
## consumo 7.706e-05 2.081e-05 3.704 0.000213 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 82.577 on 59 degrees of freedom
## Residual deviance: 30.606 on 58 degrees of freedom
## AIC: 34.606
##
## Number of Fisher Scoring iterations: 6
#Comparación de clasificación predicha y observaciones
#Para este estudio se va a emplear un threshold de 0.5. Si la probabilidad de que la variable adquiera el valor 1 (binomial) es superior a 0.5, se asigna a este nivel, si es menor se asigna al 0 (no binomial).
##install.packages("vcd")
library(vcd)
## Cargando paquete requerido: grid
predicciones <- ifelse(test = modelo_logistica$fitted.values > 0.5, yes = 1, no = 0)
matriz_confusion <- table(modelo_logistica$model$binomial, predicciones,
dnn = c("observaciones", "predicciones"))
matriz_confusion
## predicciones
## observaciones 0 1
## 0 24 3
## 1 2 31
##install.packages("tidyverse")
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ lubridate 1.9.3 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
##install.packages("ISLR")
library(ISLR)
##
## Adjuntando el paquete: 'ISLR'
##
## The following object is masked from 'package:vcd':
##
## Hitters
mosaic(matriz_confusion, shade = T, colorize = T,
gp = gpar(fill = matrix(c("green3", "red2", "red2", "green3"), 2, 2)))
Luego de aplicar el modelo en los ODDs, se observa en la gráfica de bigotes, se observa que los datos estan agrupados en bajo consumo con valor cero y alto consumo con valor 1. Es importante señalar, que la gráfica demuestra que en los odd de bajo consumo se acercan más a su media y los de alto consumo están más dispersos. Por tanto, estas observaciones son útilies para poder ajustar el modelo, es decir si la variable independendiente seleccionada (consumo bajo/alto) se relaciona o no con la variable respuesta consumo.
Al realizar la codificación de los ODDs originales y darles valor no como log-ODDs, sino como predictores en forma de probababilidad de que exista un consumo alto o bajo, se observa la gráfica del modelo de regresión logística, en la cual, la curva está determinada por un alto consumo, sin embargo, la probabilidad que exista una relacion positiva se establece a partir de la puntuación obtenida en consumo (coeficiente de regresión = 4.481476e-05).
Una vez ajustado el modelo de regresión logística se establecen nuevos datos con límites inferiores y superiores y en la gráfica “Modelo regresión logística binomial- Consumos, se observa efectivamente la tendencia de consumo alto por agrupación de las observaciones, la diferencia de residuos que corresponde a 51.97 y el p-value (5.634e-13 ) por tanto existe un nivel de significacia positivo.
En cuanto a la evaluación del modelo se puede afirmar que este es capaz de clasificar correctamente en 91% las observaciones cuando se emplean datos de entrenamiento, pero no es generalizable a nuevas observaciones.
Establecidas las hipótesis, se puedo comprobar que definitivamente la hipótesis nula se rechaza dado que el p-value está por debajo del 0.05 por tanto, no se rechaza la hipótesis alterna. Para obtener los resultados se aplico a los datos analizados, el grafico Q-Q Plot que nos indica el grado de dispersión y si están normalizados, posteriormente se utilizó la prueba de Shapiro que nos indicó el p-value, para después aplicar pruebas no paramétricas.
Una vez realizado el estudio sobre el consumo de energía (Kwh/mes) en la universidad surcolombiana de los meses correspondientes a los años 2018 al 2022, definidos para el análisis, como periodos del mes 1 al 60, partiendo de enero (periodo 1) de 2018 y finalizando en el mes de diciembre de 2022 (periodo 60), se pudo establecer que el comportamiento del consumo es no normalizado, debido a algunos factores identificados como la estacionalidad académica (periodos de vacaciones, paros estudiantiles) y la situación atípica de pandemia COVID-19, los que implicaron una reduccion en el consumo y por tanto generando las variaciones significativas en la demanda, la cual en periodos de operatividad al aumentar la afluencia de estudiantes el consumo se incrementa.
El estudio realizado es muy importante porque nos permite determinar ciertos tipos de comportamientos que en algunos meses (junio-julio y diciembre-enero) del año se hacen repetitivos y en ellos las diferencias en el consumo energético no es extrema. Así mismo se mantienen consumo relativamente similares en los periodos de operación de la Universidad, sin embargo, este análisis permite que la entidad comprenda este comportamiento y pueda tomar decisiones más acertadas a futuro para establecer políticas de consumo que incidan en mayor reducción en los periodos de actividad académica y determine posibles excesos en los consumos a través de auditorías y revisión periodica de sus instalaciones eléctricas o cambios de sistemas de la tecnología para el uso en los diferentes espacios del campus en su sede central en la ciudad de Neiva.
Con respecto a la correlación de las variables analizadas, se evidencia que no hay correlación fuerte entre ellas por lo tanto, se puede establecer que el consumo de energía en la Universidad Surcolombiana, no tiene una dependencia signicativa del periodo (mes) en que éste se realice, dado que existen otros factores que pueden tener mayor incidencia, implicando un análisis más amplio para determinar las otras posibles variables que tengan mayor correlación con la variable dependente.
Al validar el modelo de regresión lineal a partir de los parámetros del modelo para medir la influencia de la variable independiente sobre la variable dependiente, se establece que el modelo de regresión lineal no es el que más se ajusta para este estudio dada la poca correlación que hay entre las variables, a pesar que se mantiene una tendencia negativa del comportamiento de consumo de energía en el tiempo.
Aplicar el modelo de regresión logística simple, para predecir la probabilidad de que el consumo mensual de energía en la Universidad sea alto, es en conjunto significativo si se tiene en cuenta el índice de probabilidad (Likelihood ratio) con un p-value de 5.634e-13 y el P value del predictor consumo de 0.000213 igualmente es significativo.
Navidi, W. (2006). Estadística para Ingenieros y Científicos (García Hernández, Ana Elizabeth, Trad.). Mexico: McGraw-Hil.
Llinás Solano, H. (2020). Estadística inferencial. Colombia: Ediciones de la U.
ANDERSON, D. SWEENEY D. y Williams, T. (1982, 2005). Estadística para administración y economía. México: Thomson editores.