library(readxl)
Datos_ejercicio_1 <- read_excel("Datos_ejercicio_1.xlsx")

library(modeest)
library(moments)
## 
## Attaching package: 'moments'
## The following object is masked from 'package:modeest':
## 
##     skewness
library(knitr)
library(ggplot2)

Indicadores estadisticos descriptivos.

Variable: Área construida.

### Indicadores de tendecia central variable area construida
median_area <- median(Datos_ejercicio_1$areaconst)
media_area <- mean(Datos_ejercicio_1$areaconst)
moda_area <- mfv(Datos_ejercicio_1$areaconst)

### Indicadores de dispersión variable area construida
min_area <- min(Datos_ejercicio_1$areaconst)
max_area <- max(Datos_ejercicio_1$areaconst)
rango_area <- max_area - min_area
sd_area <- sd(Datos_ejercicio_1$areaconst)
cv_area <- sd_area/media_area

### Indicadores de posición variable area construida
q25_area <- quantile(Datos_ejercicio_1$areaconst,0.25)
q75_area <- quantile(Datos_ejercicio_1$areaconst,0.75)

### Indicadores de forma variable area construida
ca_area <-skewness(Datos_ejercicio_1$areaconst)
cap_area <-kurtosis(Datos_ejercicio_1$areaconst)

# Tabla indicadores estadísticos
tabla_area <- data.frame(
  Indicador = c("Mediana", "Media", "Moda", "Mínimo", "Máximo", "Rango", "Desviación estándar", "Coeficiente de variación", "Cuartil 25%", "Cuartil 75%", "Coeficiente de asimetría", "Curtosis"),
  Valor = c(format(median_area, nsmall = 0), format(media_area, nsmall = 0), format(moda_area, nsmall = 0), format(min_area, nsmall = 0), format(max_area, nsmall = 0), format(rango_area, nsmall = 0), format(sd_area, nsmall = 0), format(cv_area, nsmall = 0), format(q25_area, nsmall = 0), format(q75_area, nsmall = 0), format(ca_area, nsmall = 0), format(cap_area, nsmall = 0))
)

knitr::kable(tabla_area, format = "markdown")
Indicador Valor
Mediana 75
Media 87.62954
Moda 60
Mínimo 40
Máximo 200
Rango 160
Desviación estándar 36.34651
Coeficiente de variación 0.4147746
Cuartil 25% 60
Cuartil 75% 98
Coeficiente de asimetría 1.532792
Curtosis 4.682735

Variable: Precio.

### Indicadores de tendecia central variable precio
median_precio <- median(Datos_ejercicio_1$preciom)
media_precio <- mean(Datos_ejercicio_1$preciom)
#moda_precio <- mfv(Datos_ejercicio_1$preciom)

### Indicadores de dispersión precio
min_precio  <- min(Datos_ejercicio_1$preciom)
max_precio  <- max(Datos_ejercicio_1$preciom)
rango_precio <- max_precio - min_precio
sd_precio <- sd(Datos_ejercicio_1$preciom)
cv_precio <- sd_precio/media_precio

### Indicadores de posición variable precio
q25_precio  <- quantile(Datos_ejercicio_1$preciom,0.25)
q75_precio  <- quantile(Datos_ejercicio_1$preciom,0.75)

### Indicadores de forma variable precio
ca_precio <-skewness(Datos_ejercicio_1$preciom)
cap_precio <-kurtosis(Datos_ejercicio_1$preciom)


# Tabla indicadores estadísticos
tabla_precio <- data.frame(
  Indicador = c("Mediana", "Media", "Mínimo", "Máximo", "Rango", "Desviación estándar", "Coeficiente de variación", "Cuartil 25%", "Cuartil 75%", "Asimetría", "Curtosis"),
  Valor = c(median_precio, media_precio, min_precio, max_precio, rango_precio, sd_precio, cv_precio, q25_precio, q75_precio, ca_precio, cap_precio)
)

knitr::kable(tabla_precio, format = "markdown")
Indicador Valor
Mediana 238.7702175
Media 243.7030626
Mínimo 207.4062560
Máximo 309.6999322
Rango 102.2936762
Desviación estándar 19.5553718
Coeficiente de variación 0.0802426
Cuartil 25% 230.7370595
Cuartil 75% 251.5056208
Asimetría 1.2587772
Curtosis 4.2570094

Gráficos.

A continuación se realizaron los siguientes gráficos para evaluar el comportamiento de las variables:

Gráfico de barras: Tipo de inmueble.

#Gráfico de barras variable tipo. 

tabla_tipo <- table(Datos_ejercicio_1$tipo)

barplot(tabla_tipo,
        col="#FFB5C5",
        main="Tipo inmueble.",
        xlab="",
        ylab="",
        width=0.1)

Con el anterior gráfico permite observar que existe una alta diferencia entre la cantidad de casas frente a la cantidad de apartamentos, siendo este último mayor.

Histograma: Variación del precio.

#Histograma variable precio 

hist(Datos_ejercicio_1$preciom, freq = FALSE, main = "Histograma de frecuencias relativas y curva de densidad estimada.",
     xlab = "Precio", ylab = "Densidad", col = "lightblue", border = "white")

# Agregar la curva de densidad normal (distribución normal)
curve(dnorm(x, mean = media_precio, sd = sd_precio), col = "cyan4", lty = 4, lwd = 2, add = TRUE)

# Calcular los valores para agregar la frecuencia relativa
h <- hist(Datos_ejercicio_1$preciom, plot = FALSE)
frec_relativa <- h$counts / length(Datos_ejercicio_1$preciom)

#Agregar la densidad estimada
lines(density(Datos_ejercicio_1$preciom), col = "purple", lwd = 2) 

# Agregar la frecuencia relativa a cada barra
text(h$mids, h$density / 2, labels = round(frec_relativa, 2), col = "blue")

legend("topright", lwd = c(2, 2), lty = c(1, 4), col = c("purple", "cyan4"),
       legend = c("Densidad estimada", "Densidad normal"))

El análisis del gráfico revela que la distribución de precios con respecto a su densidad exhibe una asimetría positiva, lo cual indica que la cola de la distribución se extiende hacia valores más altos. Además, la curtosis, con un valor superior a 3, sugiere una mayor concentración de datos alrededor de la media y colas más pesadas en comparación con una distribución normal estándar. Por otro lado, la variabilidad de los precios se muestra relativamente baja, lo cual se refleja en un coeficiente de variación reducido

Boxplot: Distribución área construida.

#Gráfico boxplot variable área construida

boxplot(Datos_ejercicio_1$areaconst, horizontal = TRUE, col="#76EEC6", main = "Distribución área construida.")

#Añadir media al gráfico
segments(x0 = media_area, y0 = 0.8,
         x1 = media_area, y1 = 1.2,
         col="#00008B", lwd=2)

points(media_area, 1 ,col="#00008B", pch=19)

La distribución del área muestra una asimetría positiva, que se puede deducir por el hecho de que el tramo desde el primer cuartil (Q1) hasta la mediana (Q2) es más corto que el tramo desde la mediana (Q2) hasta el tercer cuartil (Q3).Esto sugiere que hay una concentración de valores más bajos y una dispersión hacia valores más altos en la distribución. La alta variabilidad se observa en la dispersión heterogénea de los datos, reflejada por la presencia de datos atípicos, siendo estos valores extremadamente altos alejados de la mayoría de los datos que se destacan en el gráfico de boxplot.

Gráfico de dispersión: Precio y Área construida.

#Gráfico de dispersión precio y área construida. 

ggplot(data =Datos_ejercicio_1, aes(x=preciom, y=areaconst, color = tipo))+
  geom_point()+
  geom_smooth(method = "lm", se=FALSE)+
  ggtitle("Precio y Área construida.")+
  xlab("Precio")+
  ylab("Área construida")
## `geom_smooth()` using formula = 'y ~ x'

#Calculo coeficiente de correlación lineal
correlacion <- cor(Datos_ejercicio_1$preciom, Datos_ejercicio_1$areaconst)

cat("Coeficiente de correlación:", correlacion)
## Coeficiente de correlación: 0.9309803

En el anterior gráfico se puede visualizar que, los datos tienen una correlación lineal postiva, lo cual se confirma calculando el coeficiente de correlación lineal entre estas dos variables que dio un valor de 0.9309803, lo cual al ser cercano a 1, indica una correlación positiva perfecta.

Conclusión.

No se puede negar que hayan factores externos que afecten los precios de vivienda (Ubicación, accesibilidad, antiguedad de la construcción), pero el anàlisis anterior permite concluir que existe una relaciòn directamente proporcional entre el precio de vivienda y el área construida. Se deduce en base a los gràficos presentados anteriormente como el precio aumenta a medida que aumenta el área de construcción del inmueble, ádemas que se puede visualizar que, en general las casas presentan una mayor área de construcción que los apartamentos, por lo cual, su precio tiende a ser más elevado.