file.exists("~/INGENIERÍA AMBIENTAL/Semestre 3/Estadística y Probabilidad/Proyecto Eficiencia Energética Aragón/1.Datos")[1] TRUE
Estadística descriptiva
file.exists("~/INGENIERÍA AMBIENTAL/Semestre 3/Estadística y Probabilidad/Proyecto Eficiencia Energética Aragón/1.Datos")[1] TRUE
Variable cuantitativa discreta
Periodo de tiempo representado en años que corresponde al momento de la edificación del inmueble..
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.
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")| 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 |
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)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")| 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")| Outliers | minimo 1 | máximo 1 | mínimo 2 | máximo |
|---|---|---|---|---|
| 0 | Inf | 1964 | 1998 | -Inf |