######1. introducción ######
#INTRODUCCION
#En el dinámico mercado inmobiliario de la ciudad de Cali, es crucial contar con un análisis descriptivo detallado para comprender las tendencias y características que influyen en la oferta y demanda de viviendas. #Esta investigación se enfoca en explorar y analizar una base de datos proporcionada por una reconocida inmobiliaria, la cual contiene información relevante sobre diferentes aspectos de las propiedades en Cali. #Entre los datos recopilados se incluyen variables como la ubicación geográfica (zona, longitud y latitud), características físicas (piso, estrato, área), comodidades (parqueadero, baños, habitaciones) y detalles #específicos de cada propiedad (tipo y precio).
#El objetivo principal de este análisis descriptivo es identificar patrones, tendencias y relaciones significativas que permitan a los interesados en el sector inmobiliario entender mejor el mercado de viviendas en Cali. #A través de técnicas estadísticas y visualizaciones apropiadas, se busca responder a tres aspectos fundamentales: el comportamiento del precio de las viviendas en diferentes zonas de Cali, el tipo de viviendas más ofertadas #en la ciudad, y las características más relevantes que definen la oferta de vivienda en esta región.
#Determinar el tipo de vivienda más ofertado según la zona en Cali #Identificar el tipo de vivienda más común en Cali #Identificar la oferta por zona y estrato #cuál es el precio promedio por metro cuadrado en las diferentes zonas de la ciudad y #cómo varía según el tipo de vivienda?”
#Importacion de la base de datos y cargue de librerias #Manejo de datos nulos #Normalizacion #Analisis Descriptivo
install.packages(“devtools”) # solo una vez devtools::install_github(“dgonxalex80/paqueteMETODOS”) library(paqueteMETODOS) data(vivienda_faltantes)
#visualización del data.frame viivenda_faltantes
view(vivienda_faltantes)
#ver la información de la base de datos(dataframe) str(vivienda_faltantes)
#ver la estructura del data.frame summary(vivienda_faltantes)
#Podemos ver en la anterior linea de codigo que todas las variables excepto #zona, tipo y barrio no poseen NA(Datos Nulos).
#Datos nulos
#verifica cuantos datos nulos hay en la base de datos num_nulos <- sum(is.na(vivienda_faltantes)) print(num_nulos)
#Iniciamos con la variable “id” observaciones_na <- vivienda_faltantes %>% filter(is.na(id)) observaciones_na
#gestión de datos nulos df_nulos <- data.frame( variable = names(vivienda_faltantes), num_nulos = sapply(vivienda_faltantes, function(x) sum(is.na(x))) )
#grafica visualización de datos nulos ggplot(df_nulos, aes(x = variable, y = num_nulos)) + geom_bar(stat = “identity”, fill = “skyblue”) + theme(axis.text.x = element_text(angle = 90, hjust = 1)) + labs(title = “Número de datos nulos por variable”, x = “Variable”, y = “Número de datos nulos”)
vivienda_faltantes <- vivienda_faltantes[complete.cases(vivienda_faltantes$id), ]
summary(vivienda_faltantes)
#variable piso
#visualizar la columna piso piso=table(vivienda_faltantes$piso) %>% data.frame()
ggplot(vivienda_faltantes, aes(x = piso)) + geom_histogram(binwidth = 1, fill = “green”, color = “black”) + labs(title = “Distribución de la variable ‘piso’”, x = “Piso”, y = “Frecuencia”)
#hay 2638 NA se reemplazara los NA con la mediana, imputación de la variable con la mediana
mediana <- median(vivienda_faltantes$piso, na.rm = TRUE)
vivienda_faltantes\(piso[is.na(vivienda_faltantes\)piso)] <- mediana
summary(vivienda_faltantes)
#visualizamos nuevamente la variabla piso ggplot(vivienda_faltantes, aes(x = piso)) + geom_histogram(binwidth = 1, fill = “yellow”, color = “black”) + labs(title = “Distribución de la variable ‘piso’”, x = “Piso”, y = “Frecuencia”)
#Variable parqueadero
ggplot(vivienda_faltantes, aes(x = parquea)) + geom_histogram(binwidth = 1, fill = “yellow”, color = “black”) + labs(title = “Distribución de la variable ‘piso’”, x = “Piso”, y = “Frecuencia”)
#Warning message: #Removed 1603 rows containing non-finite values
(stat_bin()).
#visualización de la distribución de la variable “parquea” ggplot(vivienda_faltantes, aes(x = parquea)) + geom_histogram(binwidth = 1, fill = “yellow”, color = “black”) + labs(title = “Histograma de la variable ‘parquea’ antes de la imputación”, x = “parque”, y = “Frecuencia”)
#se reemplaza los valores por la mediana, para no afectar la distribucion de la variable
mediana <- median(vivienda_faltantes$parquea, na.rm = TRUE)
vivienda_faltantes\(parquea[is.na(vivienda_faltantes\)parquea)] <- mediana
ggplot(vivienda_faltantes, aes(x = parquea)) + geom_histogram(binwidth = 1, fill = “yellow”, color = “black”) + labs(title = “Distribución de la variable ‘parquea’”, x = “parquea”, y = “Frecuencia”)
#Vamos a ver la distribucion de esta variable
ggplot(vivienda_faltantes, aes(x = parquea)) + geom_histogram(binwidth = 1, fill = “yellow”, color = “black”) + labs(title = “Histograma de la variable ‘parquea’ después de la imputación”, x = “Parqueadero”, y = “Frecuencia”)
#se verifica cuantos datos nulos hay en la base de datos num_nulos <- sum(is.na(vivienda_faltantes)) print(num_nulos)
#num_nulos=0
#Análisis exploratorio de datos
cuantitativas <- vivienda_faltantes %>% select(where(is.numeric)) cualitativas <- vivienda_faltantes %>% select(where(is.character))
summary(cuantitativas)
#Visualización de las variables cualitativas tabla_de_frecuencia <- table(cualitativas$barrio)
tipo=table(vivienda_faltantes$tipo) %>% data.frame()
#cambiar mayusculas por minusculas en tipo vivienda_faltantes\(tipo<-tolower(vivienda_faltantes\)tipo)
#cambiar el valor apto a apartamento
vivienda_faltantes<-vivienda_faltantes%>% mutate(tipo=ifelse(tipo== “apto”, “apartamento”, tipo))
barrio=table(vivienda_faltantes$barrio) %>% data.frame()
#cambiar mayusculas por minusculas en barrio vivienda_faltantes\(barrio<-tolower(vivienda_faltantes\)barrio)
#Eliminar tildes de los barrios vivienda_faltantes\(barrio <- iconv(vivienda_faltantes\)barrio, to = “ASCII//TRANSLIT”)
#Corregir los barrios
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “agua blanca”, “aguablanca”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “alf?Crez real”, “alferez real”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “alfonso lopez i”, “alfonso lopez”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “alameda”, “alameda del rio”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “cali bella”, “calibella”, barrio)) vivienda_faltantes
<- vivienda_faltantes %>% mutate(barrio= ifelse(barrio == “bella
suiza”, “bella suiza alta”, barrio)) vivienda_faltantes <-
vivienda_faltantes %>% mutate(barrio= ifelse(barrio == “arboleda”,
“arboledas”, barrio)) vivienda_faltantes <- vivienda_faltantes %>%
mutate(barrio= ifelse(barrio == “Belalcazar”, “belalcazar”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “Brisas De Los”, “brisas de los”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “Camino Real”, “camino real”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “Centenario”, “centenario”, barrio)) vivienda_faltantes
<- vivienda_faltantes %>% mutate(barrio= ifelse(barrio == “Ciudad
2000”, “ciudad 2000”, barrio)) vivienda_faltantes <-
vivienda_faltantes %>% mutate(barrio= ifelse(barrio == “cali canto”,
“calicanto”, barrio)) vivienda_faltantes <- vivienda_faltantes %>%
mutate(barrio= ifelse(barrio == “Chiminangos”, “chiminangos”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “Ciudad Jardin”, “ciudad jardin”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “Ciudad Pacifica”, “ciudad pacifica”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “Colseguros Andes”, “colseguros andes”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “El Bosque”, “el bosque”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “El Caney”, “el caney”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “el ingenio 3”, “el ingenio”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “el ingenio ii”, “el ingenio”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “el ingenio iii”, “el ingenio”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “ciudad mel?cndez”, “ciudad melendez”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “ciudadela paso ancho”, “ciudadela pasoancho”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “la rivera i”, “la rivera”, barrio)) vivienda_faltantes
<- vivienda_faltantes %>% mutate(barrio= ifelse(barrio == “la
rivera ii”, “la rivera”, barrio)) vivienda_faltantes <-
vivienda_faltantes %>% mutate(barrio= ifelse(barrio == “la riverita”,
“la rivera”, barrio)) vivienda_faltantes <- vivienda_faltantes %>%
mutate(barrio= ifelse(barrio == “la riviera”, “la rivera”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “juanamb??”, “juanambu”, barrio)) vivienda_faltantes
<- vivienda_faltantes %>% mutate(barrio= ifelse(barrio == “ingenio
i”, “el ingenio”, barrio)) vivienda_faltantes <- vivienda_faltantes
%>% mutate(barrio= ifelse(barrio == “ingenio ii”, “el ingenio”,
barrio)) vivienda_faltantes <- vivienda_faltantes %>%
mutate(barrio= ifelse(barrio == “ingenio”, “el ingenio”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “mel?cndez”, “melendez”, barrio)) vivienda_faltantes
<- vivienda_faltantes %>% mutate(barrio= ifelse(barrio == “valle
del lili”, “valle de lili”, barrio)) vivienda_faltantes <-
vivienda_faltantes %>% mutate(barrio= ifelse(barrio == “zona norte
los”, “zona norte”, barrio)) vivienda_faltantes <- vivienda_faltantes
%>% mutate(barrio= ifelse(barrio == “tequendema”, “tequendama”,
barrio)) vivienda_faltantes <- vivienda_faltantes %>%
mutate(barrio= ifelse(barrio == “calicanto viii”, “calicanto”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “ciudad cordoba reservado”, “ciudad cordoba”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “ciudad jardin pance”, “ciudad jardin”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “caney especial”, “caney”, barrio)) vivienda_faltantes
<- vivienda_faltantes %>% mutate(barrio= ifelse(barrio ==
“ciudadela melendez”, “ciudad melendez”, barrio)) vivienda_faltantes
<- vivienda_faltantes %>% mutate(barrio= ifelse(barrio == “norte”,
“norte la flora”, barrio)) vivienda_faltantes <- vivienda_faltantes
%>% mutate(barrio= ifelse(barrio == “pampa linda”, “pampalinda”,
barrio)) vivienda_faltantes <- vivienda_faltantes %>%
mutate(barrio= ifelse(barrio == “portada de comfandi”, “portales de
comfandi”, barrio)) vivienda_faltantes <- vivienda_faltantes %>%
mutate(barrio= ifelse(barrio == “rep??blica de israel”, “republica de
israel”, barrio)) vivienda_faltantes <- vivienda_faltantes %>%
mutate(barrio= ifelse(barrio == “urbanizacion lili”, “urbanizacion rio
lili”, barrio)) vivienda_faltantes <- vivienda_faltantes %>%
mutate(barrio= ifelse(barrio == “colon”, “cristobal colon”, barrio))
vivienda_faltantes <- vivienda_faltantes %>% mutate(barrio=
ifelse(barrio == “santa”, “santa anita”, barrio)) vivienda_faltantes
<- vivienda_faltantes %>% mutate(barrio= ifelse(barrio == “flora”,
“flora industrial”, barrio)) vivienda_faltantes <- vivienda_faltantes
%>%
#limpieza latitud
class(latitud$latitud)
latitud=table(vivienda_faltantes$latitud) %>% data.frame()
vivienda_faltantes\(latitud <- as.numeric(vivienda_faltantes\)latitud)
#convertir en decimal vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3496] <- 3.496 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3497] <- 3.497 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3494] <- 3.494 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3493] <- 3.493 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3492] <- 3.492 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3491] <- 3.491 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3489] <- 3.489 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3488] <- 3.488 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3487] <- 3.487 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3486] <- 3.486 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3485] <- 3.485 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3484] <- 3.484 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3483] <- 3.483 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3482] <- 3.482 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3481] <- 3.481 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3479] <- 3.479 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3478] <- 3.478 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3477] <- 3.477 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3476] <- 3.476 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3475] <- 3.475 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3474] <- 3.474 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3473] <- 3.473 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3472] <- 3.472 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3471] <- 3.471 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3469] <- 3.469 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3468] <- 3.468 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3467] <- 3.467 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3466] <- 3.466 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3465] <- 3.465 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3464] <- 3.464 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3463] <- 3.463 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3462] <- 3.462 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3461] <- 3.461 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3459] <- 3.459 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3458] <- 3.458 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3457] <- 3.457 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3456] <- 3.456 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3455] <- 3.455 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3454] <- 3.454 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3453] <- 3.453 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3452] <- 3.452 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3451] <- 3.451 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3449] <- 3.449 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3448] <- 3.448 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3447] <- 3.447 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3446] <- 3.446 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3445] <- 3.445 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3444] <- 3.444 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3443] <- 3.443 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3442] <- 3.442 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3441] <- 3.441 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3439] <- 3.439 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3438] <- 3.438 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3437] <- 3.437 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3436] <- 3.436 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3435] <- 3.435 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3434] <- 3.434 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3433] <- 3.433 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3432] <- 3.432 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3431] <- 3.431 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3429] <- 3.429 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3428] <- 3.428 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3427] <- 3.427 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3426] <- 3.426 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3425] <- 3.425 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3424] <- 3.424 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3423] <- 3.423 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3422] <- 3.422 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3421] <- 3.421 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3419] <- 3.419 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3418] <- 3.418 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3417] <- 3.417 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3416] <- 3.416 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3415] <- 3.415 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3414] <- 3.414 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3413] <- 3.413 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3412] <- 3.412 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3411] <- 3.411 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3409] <- 3.409 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3408] <- 3.408 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3407] <- 3.407 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3406] <- 3.406 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3405] <- 3.405 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3404] <- 3.404 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3403] <- 3.403 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3402] <- 3.402 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3401] <- 3.401 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3399] <- 3.399 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3398] <- 3.398 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3397] <- 3.397 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3396] <- 3.396 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3395] <- 3.395 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3394] <- 3.394 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3393] <- 3.393 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3392] <- 3.392 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3391] <- 3.391 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3389] <- 3.389 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3388] <- 3.388 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3387] <- 3.387 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3386] <- 3.386 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3385] <- 3.385 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3384] <- 3.384 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3383] <- 3.383 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3382] <- 3.382 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3381] <- 3.381 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3379] <- 3.379 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3378] <- 3.378 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3377] <- 3.377 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3376] <- 3.376 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3375] <- 3.375 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3374] <- 3.374 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3373] <- 3.373 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3372] <- 3.372 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3371] <- 3.371 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3369] <- 3.369 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3368] <- 3.368 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3367] <- 3.367 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3366] <- 3.366 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3365] <- 3.365 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3364] <- 3.364 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3363] <- 3.363 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3362] <- 3.362 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3361] <- 3.361 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3359] <- 3.359 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3358] <- 3.358 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3357] <- 3.357 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3356] <- 3.356 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3355] <- 3.355 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3354] <- 3.354 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3353] <- 3.353 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3352] <- 3.352 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3351] <- 3.351 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3349] <- 3.349 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3348] <- 3.348 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3347] <- 3.347 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3346] <- 3.346 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3345] <- 3.345 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3344] <- 3.344 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3343] <- 3.343 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3342] <- 3.342 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3341] <- 3.341 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3339] <- 3.339 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3338] <- 3.338 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3337] <- 3.337 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3336] <- 3.336 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3335] <- 3.335 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3334] <- 3.334 vivienda_faltantes\(latitud[vivienda_faltantes\)latitud == 3333] <- 3.333
#pasar las comas a puntos
vivienda_faltantes\(latitud <- gsub(",", ".", vivienda_faltantes\)latitud)
#convertir a dato numero la columna latitud vivienda_faltantes\(latitud <- as.numeric(vivienda_faltantes\)latitud)
unique(vivienda_faltantes$barrio)
#precio de viviendas por zonas library(ggplot2)
stat_summary(fun = “mean”, geom = “bar”, position = “dodge”, fill = “skyblue”) + labs(title = “Precio de viviendas por zonas”, x = “Zona”, y = “Precio Promedio”)
#cuál es el precio de las viviendas por zonas ggplot(vivienda_faltantes, aes(x=zona, y=preciom, fill = tipo))+ geom_bar(stat=“summary”, fun = “mean” , fill = “skyblue”)+ labs(title= “Precio de viviendas por zonas”, x= “zona” , y = “Precio Promedio”)
precio_promedio_zona <- aggregate(preciom ~ zona, data = vivienda_faltantes, FUN = mean) precio_promedio_zona <- precio_promedio_zona[order(-precio_promedio_zona$preciom), ] # Mostrar la tabla resultante print(precio_promedio_zona)
ggplot(vivienda_faltantes, aes(x = zona, y = preciom, fill = tipo)) + geom_bar(stat = “identity”, position = “dodge”) + labs(title = “Precio Promedio por Zona y Tipo de Vivienda”, x = “Zona”, y = “Precio Promedio”, fill = “Tipo de Vivienda”) + theme_minimal()
#se calcula el precio promedio por zona y tipo de vivienda precio_promedio_zona_y_tipo <- aggregate(preciom ~ zona + tipo, data = vivienda_faltantes, FUN = mean) #se ordena la tabla resultante de forma descendente por precio promedio precio_promedio_zona_y_tipo <- precio_promedio_zona_y_tipo[order(-precio_promedio_zona_y_tipo$precio), ] # Mostrar la tabla resultante print(precio_promedio_zona_y_tipo)
#tipo de vivienda más ofertada
ggplot(vivienda_faltantes, aes(x=vivienda_faltantes$tipo))+ geom_bar(fill = “black”) labs(title = “Oferta de Tipos de Viviendas”, x =“Tipo de Vivienda”, y = “Numero de Viviendas”)
tabla_tipo <- table(vivienda_faltantes$tipo) # Mostrar la tabla resultante print(tabla_tipo)
#oferta por zona oferta_zona <- vivienda_faltantes %>% group_by(zona, tipo) %>% summarise(cantidad = n(), .groups = “drop”)
ggplot(oferta_zona, aes(x = zona, y = cantidad, fill = tipo)) + geom_bar(stat = “identity”) + labs(title = “Oferta de Tipos de Vivienda por Zona”, x = “Zona”, y = “Cantidad”, fill = “Tipo de Vivienda”) + theme_minimal()
#información numero de apartamento y casa por zonas cuadro_viviendas <- table(vivienda_faltantes\(zona, vivienda_faltantes\)tipo) # Mostrar la tabla resultante print(cuadro_viviendas)
#Cuál es la caracteristica más relevante de las viviendas?
#oferta por zona y estrato oferta_zona_estrato <- vivienda_faltantes %>% group_by(zona, tipo, estrato) %>% summarise(cantidad = n())
ggplot(oferta_zona_estrato, aes(x = zona, y = cantidad, fill = interaction(tipo, estrato))) + geom_bar(stat = “identity”) + labs(title = “Oferta de Tipos de Vivienda por Zona y Estrato”, x = “Zona”, y = “Cantidad”, fill = “Tipo de Vivienda - Estrato”) + theme_minimal()
ggplot(vivienda_faltantes[vivienda_faltantes$tipo == “apartamento”, ], aes(x = zona, y = preciom, fill = factor(estrato))) + geom_bar(stat = “identity”, position = “dodge”) + labs(title = “Oferta de Apartamentos por Zona y Estrato”, x = “Zona”, y = “Precio”, fill = “Estrato”) + theme_minimal()
precio_promedio_m2 <- vivienda_faltantes %>% group_by(zona, tipo) %>% summarise(precio_promedio_m2 = mean(preciom / areaconst), .groups = “drop”)
print(precio_promedio_m2)
#Se observa que las viviendas en la “Zona Oeste” tienen los precios más altos, seguidas por la “Zona Sur”, #“Zona Norte”, “Zona Centro” y “Zona Oriente” en ese orden. Esto podría indicar una correlación entre la #ubicación geográfica (zona) y el precio de la vivienda.
#Según los datos proporcionados, parece haber una mayor oferta de apartamentos que de casas en Cali. #El número de apartamentos (5106) es considerablemente mayor que el número de casas (3221).
#En general, hay más oferta de apartamentos que de casas en todas las zonas. #En cuanto al número de habitaciones, parece haber más variedad en la oferta de #apartamentos que en la de casas. #En la “Zona Centro”, la oferta está dominada por casas, mientras que en otras zonas la oferta de apartamentos es más significativa.
#En general, los precios por metro cuadrado de los apartamentos son más altos que los de las casas en todas las zonas. #La “Zona Oeste” tiene los precios por metro cuadrado más altos tanto para apartamentos como para casas, seguida por #la “Zona Sur” y la “Zona Norte”. La “Zona Centro” y la “Zona Oriente” tienen los precios por metro cuadrado más bajos tanto para apartamentos como para casas.