Eficiencia energética de los edificios en Aragón

Estadística descriptiva

Author

Danny Jair Yaguana

Published

February 25, 2025

file.exists("~/INGENIERÍA AMBIENTAL/Semestre 3/Estadística y Probabilidad/Proyecto Eficiencia Energética Aragón/1.Datos")
[1] TRUE

Año de construcción

Variable cuantitativa discreta

Periodo de tiempo representado en años que corresponde al momento de la edificación del inmueble..

Estadística descriptiva

Buscamos el directorio de trabajo y cargamos la tabla de datos o el dataset:

setwd("~/INGENIERÍA AMBIENTAL/Semestre 3/Estadística y Probabilidad/Proyecto Eficiencia Energética Aragón/1.Datos")

library(readr)
datos <- read.csv("Edificios_Reales.csv", sep = ";", dec = ".")

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 ...

Cargamos la variable

Por la gran cantidad de datos, es mejor verificar el comportamiento general de la variable para saber si toca realizar el analisis estadístico en un cierto intervalo. Es así, que se crea un diagrama de caja:

edificación<-datos$Anio_construccion

caja<-boxplot(edificación,main="Gráfica 10.1.1 Comportamiento de la variable y
              presencia de valores atípicos", 
              horizontal=T, col="red3", xlab="Año de Construcción")

min<-caja$stats[2]
min
[1] 1964
max<-caja$stats[4]
max
[1] 1999

Obtenemos que la variable años, tiene valores comunes agrupado entre el año 1964 y 1999, así que realizamos la estadística a partir de ese intervalo.

Tabla de frecuencias

Realizamos la tabla con las frecuencias simples y las acumuladas:

edificación<-subset(datos,Anio_construccion< 1999 & Anio_construccion>=1964,select = c(Anio_construccion))

tabla_edificación<-data.frame(table(edificación))
ni<-tabla_edificación$Freq
n<-sum(ni)
n
[1] 85543
hi<- (ni/n)*100
Ni<- cumsum(ni)
Ni_dsc <- rev(cumsum(rev(ni)))
Hi<- cumsum(hi)
Hi_dsc <- rev(cumsum(rev(hi)))

TDF_edificación<-data.frame(tabla_edificación,round(hi,2),Ni,round(Hi,2),Ni_dsc,round(Hi_dsc,2))
colnames(TDF_edificación)<-c("Año de Construcción","ni","hi (%)","Ni","Hi (%)","Ni_dsc","Hi_dsc (%)")

library(knitr)
Warning: package 'knitr' was built under R version 4.4.2
kable(TDF_edificación, format = "markdown", caption = "Tabla 1. Frecuencias")
Tabla 1. Frecuencias
Año de Construcción ni hi (%) Ni Hi (%) Ni_dsc Hi_dsc (%)
1964 3483 4.07 3483 4.07 85543 100.00
1965 3470 4.06 6953 8.13 82060 95.93
1966 2834 3.31 9787 11.44 78590 91.87
1967 3766 4.40 13553 15.84 75756 88.56
1968 4354 5.09 17907 20.93 71990 84.16
1969 3888 4.55 21795 25.48 67636 79.07
1970 5470 6.39 27265 31.87 63748 74.52
1971 4228 4.94 31493 36.82 58278 68.13
1972 2805 3.28 34298 40.09 54050 63.18
1973 2823 3.30 37121 43.39 51245 59.91
1974 2064 2.41 39185 45.81 48422 56.61
1975 3475 4.06 42660 49.87 46358 54.19
1976 1927 2.25 44587 52.12 42883 50.13
1977 2795 3.27 47382 55.39 40956 47.88
1978 2886 3.37 50268 58.76 38161 44.61
1979 3807 4.45 54075 63.21 35275 41.24
1980 2737 3.20 56812 66.41 31468 36.79
1981 1494 1.75 58306 68.16 28731 33.59
1982 2104 2.46 60410 70.62 27237 31.84
1983 1892 2.21 62302 72.83 25133 29.38
1984 1631 1.91 63933 74.74 23241 27.17
1985 1784 2.09 65717 76.82 21610 25.26
1986 1201 1.40 66918 78.23 19826 23.18
1987 1656 1.94 68574 80.16 18625 21.77
1988 1521 1.78 70095 81.94 16969 19.84
1989 1690 1.98 71785 83.92 15448 18.06
1990 1906 2.23 73691 86.14 13758 16.08
1991 1663 1.94 75354 88.09 11852 13.86
1992 1382 1.62 76736 89.70 10189 11.91
1993 1297 1.52 78033 91.22 8807 10.30
1994 1513 1.77 79546 92.99 7510 8.78
1995 1577 1.84 81123 94.83 5997 7.01
1996 1527 1.79 82650 96.62 4420 5.17
1997 1410 1.65 84060 98.27 2893 3.38
1998 1483 1.73 85543 100.00 1483 1.73

Gráficas

Creamos el histograma con la frecuencia absoluta para visualizar el conteo de ocurrencias de los valores de la variable.

barplot(TDF_edificación$ni, space = 0,main = "Gráfica N°10.1..1.-Cantidad de los años de Construcción de los
     edificios en la Comunidad Autónoma de Aragón",ylab="Cantidad",xlab="Año de Construcción",
        col = "skyblue",names.arg = TDF_edificación$`Año de Construcción`,axis.lty = 1,cex.names = 1,
        las=1,cex.axis = 0.7)

barplot(TDF_edificación$ni, space = 0,main = "Gráfica N°10.1.2.-Cantidad de los años de Construcción de los
     edificios en la Comunidad Autónoma de Aragón",ylab="Cantidad",xlab="Año de Construcción",
        col = "skyblue",names.arg = TDF_edificación$`Año de Construcción`,axis.lty = 1,cex.names = 1,las=1,cex.axis = 0.7,
        ylim = c(0,n))

Ahora, creamos el histograma con la frecuencia relativa para visualizar el porcentaje de ocurrencias de los valores.

barplot(TDF_edificación$`hi (%)`, space = 0,main = "Gráfica N°10.1.3.-Porcentaje de los años de Construcción de los
     edificios en la Comunidad Autónoma de Aragón",ylab="Porcentaje (%)",xlab="Año de Construcción",
        col = "red3",names.arg = TDF_edificación$`Año de Construcción`,axis.lty = 1,cex.names = 1,las=1,cex.axis = 0.7)

barplot(TDF_edificación$`hi (%)`, space = 0,main = "Gráfica N°10.1.4.-Porcentaje de los años de Construcción de los
     edificios en la Comunidad Autónoma de Aragón",ylab="Porcentaje (%)",xlab="Año de Construcción",
        col = "red3",names.arg = TDF_edificación$`Año de Construcción`,axis.lty = 1,cex.names = 1,las=1,cex.axis = 0.7,
        ylim = c(0,100))

Realizamos el diagrama de sector circular:

colores <- c(topo.colors(35))
etiqueta<- paste(TDF_edificación$`hi (%)`,"%",sep="")
pie(TDF_edificación$`hi (%)`,main = "Gráfica 10.1.5.-Año de Construcción 
    de los edificios de la comunidad Autónoma de Aragón durante",
    labels = etiqueta,col = colores,cex=0.5)
legend("bottomright",legend = TDF_edificación$`Año de Construcción`,fill = colores,cex = 0.3,title = "Leyenda")

Se crea el diagrama de caja que nos ayuda con la representación de los cuartiles de la variable, donde el cuartil 2 representa la mediana de la variable. Además, nos representa los valores atípicos (outliers) en nuestro intervalo de estudio.

caja<-boxplot(edificación$Anio_construccion, horizontal = T, col = "salmon", 
        main= "Gráfica N°10.1.6.-Distribución de los años de Construcción de los edificios
        de la Comunidad Autónoma de Aragón",xlab="Año de Construcción")

Adicionalmente, se crean las ojivas que nos representa las frecuencias acumuladas y, de igual manera, el intercepto de las gráficas de la ojiva ascendente y la descendente representa la mediana en el eje horizontal.

x<-1:length(hi)
plot(x,TDF_edificación$Ni, type = "b",col="green3",ylab = "Cantidad",
     xlab="Año de Construcción", main= "Gráfica N°10.1.7.-Distribución de los años de Construcción de los 
     edificios de la Comunidad Autónoma de Aragón",xaxt="n")
lines(TDF_edificación$Ni_dsc,add=TRUE,type = "b",col="red3")
Warning in plot.xy(xy.coords(x, y), type = type, ...): "add" es un parámetro
gráfico inválido
legend("right", legend = c("Ni ascendente", "Ni descendente"), col = c("green3", "red3"), lty = 1, pch = 0.4,
       cex = 0.6, pt.cex = 1)
axis(1,at=x,labels = TDF_edificación$`Año de Construcción`, cex.axis=0.7)

plot(x,TDF_edificación$`Hi (%)`, type = "b",col="green3",ylab = "Porcentaje (%)",
     xlab="Año de Construcción", main= "Gráfica N°10.1.8.-Distribución de los años de Construcción 
     de los edificios de la Comunidad Autónoma de Aragón",xaxt="n")
lines(TDF_edificación$Hi_dsc,add=TRUE,type = "b",col="red3")
Warning in plot.xy(xy.coords(x, y), type = type, ...): "add" es un parámetro
gráfico inválido
legend("right", legend = c("Hi ascendente", "Hi descendente"), col = c("green3", "red3"), lty = 1, pch = 0.4,
       cex = 0.6, pt.cex = 1)
axis(1,at=x,labels = TDF_edificación$`Año de Construcción`, cex.axis=0.7)

Indicadores

Los indicadores estadísticos son valores numéricos que resumen, describen y analizan características de un conjunto de datos. Estos indicadores permiten simplificar y entender grandes volúmenes de información de manera más eficiente. Se utilizan para tomar decisiones informadas.

edificación<-edificación$Anio_construccion
ri<-min(edificación)
rs<-max(edificación)
mediana<-median(edificación)
mediana
[1] 1976
media_aritmetica<-mean(edificación)
media_aritmetica
[1] 1977.451
desviación_estandar<-sd(edificación)
desviación_estandar
[1] 9.696073
coeficiente_variabilidad <- (desviación_estandar/media_aritmetica) * 100 
coeficiente_variabilidad
[1] 0.490332
library(e1071)
Warning: package 'e1071' was built under R version 4.4.2
coeficiente_asimetria <- skewness(edificación) 
coeficiente_asimetria
[1] 0.5133859
curtosis<-kurtosis(edificación)
curtosis
[1] -0.8705162
Variable<-c("Año de Construcción")
# Identificar los valores atípicos 
outliers<-boxplot.stats(edificación)$out 
# Contar los valores atípicos 
num_outliers <- length(outliers) 
num_outliers
[1] 0
minimooutliers<-min(outliers)
Warning in min(outliers): ningún argumento finito para min; retornando Inf
minimooutliers
[1] Inf
max1<-caja$stats[1]
max1
[1] 1964
min2<-caja$stats[5]
maximooutliers<-max(outliers)
Warning in max(outliers): ningun argumento finito para max; retornando -Inf
maximooutliers
[1] -Inf
Tabla_indicadores<-data.frame(Variable,ri,rs,round(media_aritmetica,2),mediana,round(desviación_estandar,2), round(coeficiente_variabilidad,2), round(coeficiente_asimetria,2),round(curtosis,2))
colnames(Tabla_indicadores)<-c("Variable","minimo","máximo","x","Me","s","Cv (%)","As","K")

library(knitr)
kable(Tabla_indicadores, format = "markdown", caption = "Tabla 2. Indicadores estadíticos 
      de la variable Año de Construcción")
Tabla 2. Indicadores estadíticos de la variable Año de Construcción
Variable minimo máximo x Me s Cv (%) As K
Año de Construcción 1964 1998 1977.45 1976 9.7 0.49 0.51 -0.87
Tabla_outliers<-data.frame(num_outliers,minimooutliers,max1,min2,maximooutliers)

colnames(Tabla_outliers)<-c("Outliers","minimo 1","máximo 1","mínimo 2","máximo")

library(knitr)
kable(Tabla_outliers, format = "markdown", caption = "Tabla 3. Outliers de la variable")
Tabla 3. Outliers de la variable
Outliers minimo 1 máximo 1 mínimo 2 máximo
0 Inf 1964 1998 -Inf