library(paqueteDAT)
data("vivienda")
head(vivienda,5)
## id zona piso estrato preciom areaconst parqueaderos banios
## 1 1147 Zona Oriente <NA> 3 250 70 1 3
## 2 1169 Zona Oriente <NA> 3 320 120 1 2
## 3 1350 Zona Oriente <NA> 3 350 220 2 2
## 4 5992 Zona Sur 02 4 400 280 3 5
## 5 1212 Zona Norte 01 5 260 90 1 2
## habitaciones tipo barrio longitud latitud
## 1 6 Casa 20 de julio -76.51168 3.43382
## 2 3 Casa 20 de julio -76.51237 3.43369
## 3 4 Casa 20 de julio -76.51537 3.43566
## 4 3 Casa 3 de julio -76.54000 3.43500
## 5 3 Apartamento acopi -76.51350 3.45891
cantidad_filas <- nrow(vivienda)
print(cantidad_filas)
## [1] 8322
Paso 1: Miramos que tipo de datos tiene el dataset
class(vivienda$zona)
## [1] "character"
class(vivienda$piso)
## [1] "character"
class(vivienda$estrato)
## [1] "numeric"
class(vivienda$preciom)
## [1] "numeric"
class(vivienda$areaconst)
## [1] "numeric"
class(vivienda$parqueaderos)
## [1] "numeric"
class(vivienda$banios)
## [1] "numeric"
class(vivienda$habitaciones)
## [1] "numeric"
class(vivienda$tipo)
## [1] "character"
class(vivienda$barrio)
## [1] "character"
class(vivienda$longitud)
## [1] "numeric"
class(vivienda$latitud)
## [1] "numeric"
Paso 2: Vemos cuantos datos faltantes tiene cada columna
sum(is.na(vivienda$zona))
## [1] 3
sum(is.na(vivienda$piso))
## [1] 2638
sum(is.na(vivienda$estrato))
## [1] 3
sum(is.na(vivienda$preciom))
## [1] 2
sum(is.na(vivienda$areaconst))
## [1] 3
sum(is.na(vivienda$parqueaderos))
## [1] 1605
sum(is.na(vivienda$banios))
## [1] 3
sum(is.na(vivienda$habitaciones))
## [1] 3
sum(is.na(vivienda$tipo))
## [1] 3
sum(is.na(vivienda$barrio))
## [1] 3
sum(is.na(vivienda$longitud))
## [1] 3
sum(is.na(vivienda$latitud))
## [1] 3
Paso 3: como hay columnas con muchos datos faltantes, las eliminamos preliminarmente tambien borramos la columna barrio, ya que para este análisis es irrelevant
borrar <- c("piso","parqueaderos","barrio")
vivienda <- vivienda[ ,!(names(vivienda) %in% borrar)]
head(vivienda,5)
## id zona estrato preciom areaconst banios habitaciones tipo
## 1 1147 Zona Oriente 3 250 70 3 6 Casa
## 2 1169 Zona Oriente 3 320 120 2 3 Casa
## 3 1350 Zona Oriente 3 350 220 2 4 Casa
## 4 5992 Zona Sur 4 400 280 5 3 Casa
## 5 1212 Zona Norte 5 260 90 2 3 Apartamento
## longitud latitud
## 1 -76.51168 3.43382
## 2 -76.51237 3.43369
## 3 -76.51537 3.43566
## 4 -76.54000 3.43500
## 5 -76.51350 3.45891
Paso 4: dejamos solamente las variables numéricas para generar una matriz de correlación
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.2.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
vivienda <- vivienda %>% mutate(zona = replace(zona, zona == "Zona Centro", 1))
vivienda <- vivienda %>% mutate(zona = replace(zona, zona == "Zona Norte", 2))
vivienda <- vivienda %>% mutate(zona = replace(zona, zona == "Zona Oeste", 3))
vivienda <- vivienda %>% mutate(zona = replace(zona, zona == "Zona Oriente", 4))
vivienda <- vivienda %>% mutate(zona = replace(zona, zona == "Zona Sur", 5))
vivienda$zona <- as.numeric(vivienda$zona)
vivienda <- vivienda %>% mutate(tipo = replace(tipo, tipo == "Casa", 1))
vivienda <- vivienda %>% mutate(tipo = replace(tipo, tipo == "Apartamento", 2))
vivienda$tipo <- as.numeric(vivienda$tipo)
Paso 5: Mostramos de nuevo el dataset
head(vivienda,5)
## # A tibble: 5 × 10
## id zona estrato preciom areaconst banios habitaciones tipo longitud
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1147 4 3 250 70 3 6 1 -76.5
## 2 1169 4 3 320 120 2 3 1 -76.5
## 3 1350 4 3 350 220 2 4 1 -76.5
## 4 5992 5 4 400 280 5 3 1 -76.5
## 5 1212 2 5 260 90 2 3 2 -76.5
## # ℹ 1 more variable: latitud <dbl>
Paso 6: Generamos la matriz de correlación
library(psych)
## Warning: package 'psych' was built under R version 4.2.3
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.2.3
## corrplot 0.92 loaded
correlacion <- cor(vivienda, use = "complete.obs")
corrplot(correlacion, method = "number")