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 = ".")Eficiencia energética de los edificios en Aragón
Estadística descriptiva
Superficie (m2)
Variable cuantitativa continua
Se refiere al espacio ocupado en el plano terrestre bidimensional del edificio.
Estadística descriptiva
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 ...
Cargamos la variable
area<-datos$Superficie_m2Por la gran cantidad de datos, es mejor verificar el compotamiento general de la variable para saber si toca realizar el analisis estadístico en un cierto intervalo. Es así, que se crea un historama para saber el intervalo donde se agrupan los datos:
Histo_area <-hist(area, main = "Gráfica N°13.1.0.-Distribución de frecuencia de las áreas de los
edificios en la Comunidad Autónoma de Aragón",
ylab="Cantidad",xlab="Área (m2)",
col="brown")Como tal, vemos que la variable se agrupa en un intervalo dado, entonces obtenemos un subconjunto de la variable para ese intervalo y revisamos el nuevo tamaño muestral.
area_50000 <- data.frame(subset(datos, Superficie_m2 <=50000, select = c(Superficie_m2)))
area<-area_50000$Superficie_m2
n<-length(area)
n[1] 167453
A continuación, creamos nuevamente un histograma para saber si es necesario analizar otro subconjunto o con que que tenemos es el ideal:
#Simplificacion (LOCAL PORPORCIONES, MIN Y MAXIMO)
Histo_area <-hist(area, main = "Gráfica N°13.1.01.-Distribución de frecuencia de las áreas de los
edificios en la Comunidad Autónoma de Aragón",
ylab="Cantidad",xlab="Área (m2)",
col="brown")Como se observa, es necesario una nueva división, en este caso, se a seleccionado el intervalo que comprenden los valores entre 0 y 200 de la variables .
area_200 <- data.frame(subset(datos, Superficie_m2 <=200, select = c(Superficie_m2)))
area<-area_200$Superficie_m2Verificamos el nuevo tamaño muestral
n<-length(area)
n[1] 132938
Por teoría, solo es recomendable hacer hasta tres divisiones de un conjunto de datos, entonces, procedemos a crear la tabla de frecuencias:
Tabla de frecuencias
Mediante la ley de Sturges, encontramos el valor total de intervalos que se recomienda para nuestro tamaño muestral:
k <-round(1+3.3*log10(n),0)
k[1] 18
Y encontramos el rango, amplitud, límites de los intervalos, marca de clase, frecuencias y frecuencias acumuladas.
summary(area) Min. 1st Qu. Median Mean 3rd Qu. Max.
2.30 58.00 72.50 80.27 93.31 200.00
min<-summary(area)[1]
minMin.
2.3
max<-summary(area)[6]
maxMax.
200
R<-max-min
A<-R/k
Li<-seq(min,max-A,by=A)
Ls<-seq(min+A,max,by=A)
Mc<-(Ls+Li)/2
ni <- c(0)
for (i in 1:k) {
if(i==k)
I <- subset(area, area>=Li[i] & area<=Ls[i])
else
I <- subset(area, area>=Li[i] & area<=Ls[i])
ni[i] <- length(I)
}
n<-sum(ni)
hi<- (ni/n)*100
Ni<- cumsum(ni)
Ni_dsc <- rev(cumsum(rev(ni)))
Hi<- cumsum(hi)
Hi_dsc <- rev(cumsum(rev(hi)))
TDF_area<-data.frame(Li,Ls,Mc,ni,round(hi,2),Ni,round(Hi,2),Ni_dsc,round(Hi_dsc,2))
options(scipen=999)
colnames(TDF_area)<-c("Li","Ls","Marca de Clase","ni","hi (%)","Ni","Hi (%)","Ni_dsc","Hi_dsc (%)")
library(knitr)Warning: package 'knitr' was built under R version 4.4.2
kable(TDF_area, format = "markdown", caption = "Tabla 1. Frecuencias de la variable superficie")| Li | Ls | Marca de Clase | ni | hi (%) | Ni | Hi (%) | Ni_dsc | Hi_dsc (%) |
|---|---|---|---|---|---|---|---|---|
| 2.30000 | 13.28333 | 7.791667 | 59 | 0.04 | 59 | 0.04 | 132828 | 100.00 |
| 13.28333 | 24.26667 | 18.775000 | 529 | 0.40 | 588 | 0.44 | 132769 | 99.96 |
| 24.26667 | 35.25000 | 29.758333 | 2237 | 1.68 | 2825 | 2.13 | 132240 | 99.56 |
| 35.25000 | 46.23333 | 40.741667 | 10069 | 7.58 | 12894 | 9.71 | 130003 | 97.87 |
| 46.23333 | 57.21667 | 51.725000 | 19218 | 14.47 | 32112 | 24.18 | 119934 | 90.29 |
| 57.21667 | 68.20000 | 62.708333 | 25248 | 19.01 | 57360 | 43.18 | 100716 | 75.82 |
| 68.20000 | 79.18333 | 73.691667 | 21101 | 15.89 | 78461 | 59.07 | 75468 | 56.82 |
| 79.18333 | 90.16667 | 84.675000 | 17951 | 13.51 | 96412 | 72.58 | 54367 | 40.93 |
| 90.16667 | 101.15000 | 95.658333 | 10407 | 7.83 | 106819 | 80.42 | 36416 | 27.42 |
| 101.15000 | 112.13333 | 106.641667 | 6649 | 5.01 | 113468 | 85.42 | 26009 | 19.58 |
| 112.13333 | 123.11667 | 117.625000 | 4863 | 3.66 | 118331 | 89.09 | 19360 | 14.58 |
| 123.11667 | 134.10000 | 128.608333 | 3637 | 2.74 | 121968 | 91.82 | 14497 | 10.91 |
| 134.10000 | 145.08333 | 139.591667 | 3010 | 2.27 | 124978 | 94.09 | 10860 | 8.18 |
| 145.08333 | 156.06667 | 150.575000 | 2308 | 1.74 | 127286 | 95.83 | 7850 | 5.91 |
| 156.06667 | 167.05000 | 161.558333 | 1891 | 1.42 | 129177 | 97.25 | 5542 | 4.17 |
| 167.05000 | 178.03333 | 172.541667 | 1436 | 1.08 | 130613 | 98.33 | 3651 | 2.75 |
| 178.03333 | 189.01667 | 183.525000 | 1273 | 0.96 | 131886 | 99.29 | 2215 | 1.67 |
| 189.01667 | 200.00000 | 194.508333 | 942 | 0.71 | 132828 | 100.00 | 942 | 0.71 |
Como se oberva, la tabla es muy complicada de visualizar por los números decimales, y la cantidad de datos, entonces creamos una nueva tabla simplificada con ayuda del histograma de R.
#Simplificacion (LOCAL PORPORCIONES, MIN Y MAXIMO)
Histo_area <-hist(area, main = "Gráfica N°2.-Distribución de frecuencia de las áreas de los
edificios en la Comunidad Autónoma de Aragón",
ylab="Cantidad",xlab="Área (m2)",
col="brown")h<-length(Histo_area$counts)
j<-length(Histo_area$counts)+1
min_s<- Histo_area$breaks[1]
max_s<- Histo_area$breaks[j]
R_s<-(max_s+min_s)/2
A_s<-R_s/h
A_s[1] 5
Li_s <- Histo_area$breaks[1:h]
Li_s [1] 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180
[20] 190
Ls_s <-Histo_area$breaks[2:j]
Ls_s [1] 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190
[20] 200
MCs<-Histo_area$mids
MCs [1] 5 15 25 35 45 55 65 75 85 95 105 115 125 135 145 155 165 175 185
[20] 195
#De la gráfica sacamos ahora la nueva tabla de frecuencias.
ni_s<-Histo_area$counts
n<-sum(ni_s)
n[1] 132938
hi<-ni_s/n*100
Ni_s<-cumsum(ni_s)
Hi<-cumsum(hi)
Ni_dsc<-rev(cumsum(rev(ni_s)))
Hi_dsc<-rev(cumsum(rev(hi)))
TDFsimplificado<-data.frame(Li_s,Ls_s,MCs,ni_s,round(hi,2),Ni_s,round(Hi,2),Ni_dsc,round(Hi_dsc,2))
colnames(TDFsimplificado)<-c("Li","Ls","MC","ni","hi (%)","Ni","Hi (%)","Ni_dsc","Hi_dsc (%)")
library(knitr)
kable(TDFsimplificado, format = "markdown", caption = "Tabla 2. Frecuencias de la variable superficie (m2) simplificada")| Li | Ls | MC | ni | hi (%) | Ni | Hi (%) | Ni_dsc | Hi_dsc (%) |
|---|---|---|---|---|---|---|---|---|
| 0 | 10 | 5 | 20 | 0.02 | 20 | 0.02 | 132938 | 100.00 |
| 10 | 20 | 15 | 268 | 0.20 | 288 | 0.22 | 132918 | 99.98 |
| 20 | 30 | 25 | 1171 | 0.88 | 1459 | 1.10 | 132650 | 99.78 |
| 30 | 40 | 35 | 4623 | 3.48 | 6082 | 4.58 | 131479 | 98.90 |
| 40 | 50 | 45 | 12415 | 9.34 | 18497 | 13.91 | 126856 | 95.42 |
| 50 | 60 | 55 | 19926 | 14.99 | 38423 | 28.90 | 114441 | 86.09 |
| 60 | 70 | 65 | 23470 | 17.65 | 61893 | 46.56 | 94515 | 71.10 |
| 70 | 80 | 75 | 18543 | 13.95 | 80436 | 60.51 | 71045 | 53.44 |
| 80 | 90 | 85 | 15865 | 11.93 | 96301 | 72.44 | 52502 | 39.49 |
| 90 | 100 | 95 | 9804 | 7.37 | 106105 | 79.82 | 36637 | 27.56 |
| 100 | 110 | 105 | 6375 | 4.80 | 112480 | 84.61 | 26833 | 20.18 |
| 110 | 120 | 115 | 4786 | 3.60 | 117266 | 88.21 | 20458 | 15.39 |
| 120 | 130 | 125 | 3536 | 2.66 | 120802 | 90.87 | 15672 | 11.79 |
| 130 | 140 | 135 | 2925 | 2.20 | 123727 | 93.07 | 12136 | 9.13 |
| 140 | 150 | 145 | 2461 | 1.85 | 126188 | 94.92 | 9211 | 6.93 |
| 150 | 160 | 155 | 1818 | 1.37 | 128006 | 96.29 | 6750 | 5.08 |
| 160 | 170 | 165 | 1617 | 1.22 | 129623 | 97.51 | 4932 | 3.71 |
| 170 | 180 | 175 | 1309 | 0.98 | 130932 | 98.49 | 3315 | 2.49 |
| 180 | 190 | 185 | 1064 | 0.80 | 131996 | 99.29 | 2006 | 1.51 |
| 190 | 200 | 195 | 942 | 0.71 | 132938 | 100.00 | 942 | 0.71 |
Gráficas
Creamos el histograma con la frecuencia absoluta para visualizar el conteo de ocurrencias de los valores de la variable.
#GLOBAL, TENDENCIA, ATIPICO
hist(area, main = "Gráfica N°13.1.1.-Distribución de frecuencia de las áreas de los
edificios en la Comunidad Autónoma de Aragón",ylab="Cantidad",xlab="Área (m2)",
col = "skyblue") hist(area, main = "Gráfica N°13.1.2.-Distribución de frecuencia de las áreas de los
edificios en la Comunidad Autónoma de Aragón",ylab="Cantidad",xlab="Área (m2)",
col = "skyblue",ylim=c(0,n))Ahora, creamos el histograma con la frecuencia relativa para visualizar el porcentaje de ocurrencias de los valores.
barplot(TDFsimplificado$`hi (%)`, space = 0,main = "Gráfica N°13.1.3.-Porcentaje de las áreas de los
edificios en la Comunidad Autónoma de Aragón",ylab="Porcentaje (%)",xlab="Área (m2)",
col = "red3",names.arg = TDFsimplificado$MC,axis.lty = 1,cex.names = 0.8)barplot(TDFsimplificado$`hi (%)`, space = 0,main = "Gráfica N°13.1.4.-Porcentaje de las áreas de los
edificios en la Comunidad Autónoma de Aragón",ylab="Porcentaje (%)",xlab="Área (m2)",
col = "red3",names.arg = TDFsimplificado$MC,axis.lty = 1,cex.names = 0.8,
ylim = c(0,100))A diferencia de las demás variables, las de tipo continuas no aceptan el diagrama de sector circular por el motivo de que la probabilidad de que se repita un suceso en casi o es cero, así que se omite y 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(area, horizontal = T, col = "salmon",
main= "Gráfica N°13.1.5.-Distribución de áreas en m2 de los edificios de la Comunidad
Autónoma de Aragón",xlab=("Superficie (m2)"))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:h
plot(x,TDFsimplificado$Ni, type = "b",col="green3",ylab = "Cantidad",
xlab="Área (m2)", main= "Gráfica N°13.1.6.-Distribución de áreas en m2 de los edificios de la Comunidad
Autónoma de Aragón",xaxt="n",ylim=c(0,TDFsimplificado$Ni[h]))
lines(TDFsimplificado$Ni_dsc, add=TRUE,type="b")Warning in plot.xy(xy.coords(x, y), type = type, ...): "add" es un parámetro
gráfico inválido
axis(1,at=x,labels = TDFsimplificado$MC, cex.axis=0.7)
legend("right", legend = c("Ni ascendente", "Ni descendente"), col = c("green3", "black"), lty = 1, pch = 0.4,
cex = 0.6, pt.cex = 1)plot(x,TDFsimplificado$`Hi (%)`, type = "b",col="green3",ylab = "Porcentaje (%)",
xlab="Área (m2)", main= "Gráfica N°13.1.7.-Distribución del porcentaje de las áreas en m2 de los edificios de la Comunidad
Autónoma de Aragón",xaxt="n",ylim=c(0,100))
axis(1,at=x,labels = TDFsimplificado$MC, cex.axis=0.7)
lines(TDFsimplificado$Hi_dsc, add=TRUE,type="b")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", "black"), lty = 1, pch = 0.4,
cex = 0.6, pt.cex = 1)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.
ri<-min(area)
rs<-max(area)
mediana<-median(area)
mediana[1] 72.5
media_aritmetica<-mean(area)
media_aritmetica[1] 80.26958
desviación_estandar<-sd(area)
desviación_estandar[1] 32.95162
coeficiente_variabilidad <- (desviación_estandar/media_aritmetica) * 100
coeficiente_variabilidad[1] 41.05119
library(e1071)Warning: package 'e1071' was built under R version 4.4.2
coeficiente_asimetria <- skewness(area)
coeficiente_asimetria[1] 1.230871
curtosis<-kurtosis(area)
curtosis[1] 1.508956
# Identificar los valores atípicos
outliers<-boxplot.stats(area)$out
# Contar los valores atípicos
num_outliers <- length(outliers)
num_outliers[1] 7715
minimooutliers<-min(outliers)
minimooutliers[1] 2.3
max1<-caja$stats[1]
max1[1] 6
min2<-caja$stats[5]
maximooutliers<-max(outliers)
maximooutliers[1] 200
Variable<-c("Superficie (m2)")
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 3. Indicadores estadíticos de la variable superficie")| Variable | minimo | máximo | x | Me | s | Cv (%) | As | K |
|---|---|---|---|---|---|---|---|---|
| Superficie (m2) | 2.3 | 200 | 80.27 | 72.5 | 32.95 | 41.05 | 1.23 | 1.51 |
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 4. Outliers de la variable")| Outliers | minimo 1 | máximo 1 | mínimo 2 | máximo |
|---|---|---|---|---|
| 7715 | 2.3 | 6 | 146.27 | 200 |
Conclusiones
La superficie (m2) de los edificos de la Comunidad Autónoma de Aragón, fructua entre 2.3 (m2) a 200 (m2), los valores están en torno a 72.5 (m2) teniendo una desviación estándar de 32.95 (m2). El conjunto de datos es ligeramente heterogéneo con una acumulación de datos en los valores medianamente bajos de la variable levente segada a la derecha con una concentración medianamente fuerte de los datos. Además, presenta valores atípicos, con un total de 7715 valores que se dividen en dos grupos, desde 2.3 a 6 y desde 146.27 a 200.Por lo antes mencionado, el comportamiento de la variable es beneficiosa para el medioambiente porque nos indica que no hay edificaciones que ocupen un gran espacio y hay mejor aprovechamiento de los suelos y, por ende, un menor consumo de energía.