setwd("~/INGENIERÍA AMBIENTAL/Semestre 3/Estadística y Probabilidad/Proyecto Eficiencia Energética Aragón/1.Datos")
library(readr)
<- read.csv("Edificios_Reales.csv", sep = ";", dec = ".") datos
Eficiencia energética de los edificios en Aragón
Estadística Inferencial
Consumo energético
Variable cuantitativa continua
Indica la cantidad de energía elecétrica utilizada por cada unidad de superficie del edificio durante un periodo de tiempo (hora y unidad de año).
Buscamos el directorio de trabajo y cargamos la tabla de datos o el dataset:
Verificamos que rstudio nos lea correctamente los datos
str(datos)
'data.frame': 167479 obs. of 17 variables:
$ Día_Emisión : int 29 26 26 12 27 17 13 8 7 16 ...
$ Mes_Emisión : int 6 9 2 6 6 6 2 4 4 12 ...
$ Año_Emisión : int 2013 2013 2014 2013 2013 2013 2014 2014 2014 2013 ...
$ Emision_CO2 : num 30.1 46.1 20.3 39.2 103.8 ...
$ Clasificacion_Emisiones: chr "E" "E" "D" "E" ...
$ Demanda_energética : num 142.3 174.4 94.2 187.7 409 ...
$ Clasificacion_consumo : chr "E" "E" "D" "E" ...
$ Tipo_edificio : chr "Vivienda individual" "Vivienda individual" "Vivienda individual" "Vivienda individual" ...
$ Estado_edificio : chr "Existente" "Existente" "Existente" "Existente" ...
$ Anio_construccion : int 1962 1974 1999 1970 1965 1968 1966 1963 2006 1970 ...
$ Superficie_m2 : num 49 81 72 65 46 ...
$ Municipio : chr "ZARAGOZA" "ZARAGOZA" "ZARAGOZA" "ZARAGOZA" ...
$ Provincia : chr "ZARAGOZA" "ZARAGOZA" "ZARAGOZA" "ZARAGOZA" ...
$ Coordenadas._x : num 674904 674063 671872 676129 674807 ...
$ Coordenadas._y : num 4612931 4612970 4612102 4613402 4613068 ...
$ Anio_emision : int 2013 2013 2014 2013 2013 2013 2014 2014 2014 2013 ...
$ Dias_hasta_expiracion : int 3652 3652 3652 3652 3652 3652 3652 3653 3653 3652 ...
Realizamos nuestro análisis en el intervalo de 200 a 1000 KWh/m2*año
<-subset(datos,Demanda_energética<1000 & Demanda_energética>=200,select = c(Demanda_energética))
consumo<-consumo$Demanda_energética consumo
Verificamos el nuevo tamaño muestral
<-length(consumo)
n n
[1] 111915
Estadística Inferencial
Ahora, pasamos de la muestra a la población por medio de modelos de probabilidad, como punto inicial, se realiza la conjetura del modelo.A simple vista, se puede decir que, la distribución de la variable sigue un comportamiento exponencial, por lo tanto, creamos el modelo y lo sobreponemos al histograma:
<-hist(consumo,freq = FALSE,main="Gráfica 13.2.Modelo de probabilidad exponencial",
histogramaxlab="Consumo enegértico (KWh/m2*año)",ylab="Densidad de probabilidad",col="salmon")
Nota Importante.- para una mejor visualización del modelo sobre la gráfica, restamos el valor mínimo para que la gráfica empiece desde 0, sin embargo, al hacer las estimaciones tendríamos que volver a restar el mínimo para dar valores reales.
<-consumo-min(consumo)
consumo
<-hist(consumo,freq = FALSE,main="Gráfica 13.2.1.Modelo de probabilidad exponencial",
histogramaxlab="Consumo enegértico (KWh/m2*año)",ylab="Densidad de probabilidad",col="salmon")
# Parámetro lambda de la distribución exponencial calculado como el inverso de la media
<-1/mean(consumo)
lambda # Curva de la distribución exponencial
<- seq(0, max(consumo),0.001)
x <- dexp(x,lambda)
y
# Dibujar la curva escalada
lines(x, y, col = "skyblue3", lwd=3)
Entonces, se observa el modelo, para comprobar la correlación entre la frecuencia observada (muestra) y la frecuencia esperada (población), se realizan los test de Pearson y de Chi-cuadrado que son muy eficácez al momento de evaluar un modelo.
#Frecuencia simple observada
<-histograma$counts
Fo Fo
[1] 33703 29495 19033 12195 6918 3813 2230 1350 1686 484 389 227
[13] 176 89 80 47
#Frecuencia simple esperada
<-c(0)
Pfor (i in 1:16)
<-(pexp(histograma$breaks[i+1],lambda)-
{P[i] pexp(histograma$breaks[i],lambda))}
<-P*length(consumo)
Fesum(Fe)
[1] 111812.8
Test de Pearson
Mide el grado de correlación entre la frecuencia observada y la frecuencia esperada de manera lineal.
plot(Fo,Fe, main="Gráfica 13.2.2.Correlación de las frecuencias del modelo exponencial",col="skyblue3",xlab = "Frecuencia Observada",ylab="Frecuencia Esperada")
<-cor(Fo,Fe)*100
Correlación Correlación
[1] 98.41595
Test de Chi-Cuadrado
El test de Chi-Cuadrado utiliza dos parámetro: grados de libertad (se refiere al número de valores libres de variar dentro de intervalos de la variable, (k-1), y nivel de significancia (probabilidad de cometer un error, valores de 0.05,0.1,0.15)
Para validar el modelo, se compara el valor de chi-cuadrado calculado con el umbral de aceptación de chi-cuadrado correspondiente a los grados de libertad y el nivel de significancia deseado.
Si el valor de chi-cuadrado calculado es mayor que el umbral de aceptación, se rechaza el modelo, indicando que hay una diferencia significativa.
#Grados de libertad
<- length(histograma$counts)-1
grados_libertad grados_libertad
[1] 15
# Nivel de significancia
<- 0.05
nivel_significancia
#Frecuencia Observada porcentual
<-(histograma$counts/n)*100
Fo Fo
[1] 30.11481928 26.35482286 17.00665684 10.89666265 6.18147701 3.40704999
[7] 1.99258366 1.20627262 1.50650047 0.43247107 0.34758522 0.20283251
[13] 0.15726221 0.07952464 0.07148282 0.04199616
sum(Fo)
[1] 100
#Frecuencia esperada
<-P*100
Fe Fe
[1] 35.42830793 22.87665790 14.77184510 9.53843033 6.15912586 3.97705178
[7] 2.56804963 1.65823310 1.07074917 0.69140086 0.44644923 0.28827982
[13] 0.18614716 0.12019837 0.07761412 0.05011675
sum(Fe)
[1] 99.90866
<-sum((Fe-Fo)^2/Fe)
x2 x2
[1] 2.53272
# Calcular el umbral de aceptación
<- qchisq(1 - nivel_significancia, grados_libertad)
umbral_aceptacion umbral_aceptacion
[1] 24.99579
<umbral_aceptacion x2
[1] TRUE
Resumen de test de bondad
<-c("Consumo energético KWh/m2*año")
Variable<-data.frame(Variable,round(Correlación,2),round(x2,2),round(umbral_aceptacion,2))
tabla_resumencolnames(tabla_resumen)<-c("Variable","Test Pearson (%)","Chi Cuadrado","Umbral de aceptación")
library(knitr)
Warning: package 'knitr' was built under R version 4.4.2
kable(tabla_resumen, format = "markdown", caption = "Tabla 1.Resumen de test de bondad al modelo de probabilidad")
Variable | Test Pearson (%) | Chi Cuadrado | Umbral de aceptación |
---|---|---|---|
Consumo energético KWh/m2*año | 98.42 | 2.53 | 25 |
Cálculo de probabilidades
- ¿Cuál es la probabilidad de que, al seleccionar cualquier edificio de Aragón, su consumo energético se encuentre entre 450 KWh/m2*año y 500 KWh/m2 año?
<-pexp(500-200,lambda)-
probabilidad_500_450pexp(450-200,lambda)
*100 probabilidad_500_450
[1] 3.977052
plot(x, dexp(x, lambda), col = "skyblue3", lwd = 2, xlim = c(0,400),main="Gráfica 13.2.3. Cálculo de probabilidades",ylab="Densidad de probabilidad",xlab="Consumo energético")
# Definir el rango de la sección que quieres pintar
<- seq(250, 300, by = 0.1)
x_section <- dexp(x_section, lambda)
y_section # Pintar la sección de la curva
lines(x_section, y_section, col = "red", lwd = 2)
# Pintar el área debajo de la línea roja
polygon(c(x_section, rev(x_section)), c(y_section, rep(0, length(y_section))), col = rgb(1, 0, 0, 0.6))
# Añadir leyenda
legend("topright", legend = c("Modelo", "Área de Probabilidad"), col = c("skyblue3", "red"), lwd = 2, pch = c(NA, 15))
Teorema de límite central
El teorema de límite central nos indica que, aunque las variables individuales no sigan una distribución normal, la distribución de las medias aritméticas de n conjuntos muestrales es normal, y por lo tanto, podemos obtener la media poblacional mediante intervalos de confianza, con tres postulados principales:
Donde, x es la media aritmética muestral y e es el margen de error (desviación estándar de la media poblacional)
<-mean(consumo)
x x
[1] 114.3134
<-sd(consumo)
sigma sigma
[1] 103.8825
#P(x-2e<u<x+2e)=95%
<-sigma/sqrt(n)
e e
[1] 0.3105262
<-x-2*e
li li
[1] 113.6923
<-x+2*e
ls ls
[1] 114.9344
<-data.frame(round(li,2),Variable,round(ls,2),e)
tabla_mediacolnames(tabla_media)<-c("Limite superior","Media poblacional","Límite superior", "Desviación estándar poblacional")
library(knitr)
kable(tabla_media, format = "markdown", caption = "Tabla 2. media poblacional")
Limite superior | Media poblacional | Límite superior | Desviación estándar poblacional |
---|---|---|---|
113.69 | Consumo energético KWh/m2*año | 114.93 | 0.3105262 |
Conclusiones
El consumo energético de los edificios en Aragón, entre 200 y 1000 KWh/m2*año sigue un modelo de probabilidad exponencial aprobando el test de Pearson, de esta manera, logramos calcular probabilidades, como por ejemplo, que al seleccionar aleatoriamente un edificio en la Comunidad Autónoma de Aragón la probabilidad de que su consumo energético sea de 450 KWh/m2año y 500 KWh/m2año es del 3.97%, y, mediante el teorema de límite central, sabemos que, su media aritmética poblacional se encuentra entre 313.69 (KWh/m2año) y 314.93 (KWh/m2año) con una confianza del 95%.