This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
You can also embed plots, for example:
Note that the echo = FALSE parameter was added to the
code chunk to prevent printing of the R code that generated the plot. #
Introducción El presente taller tiene como propósito analizar
de manera descriptiva elementos estadísticos del sector inmobiliario con
el fin de estructurar de manera clara y profunda las principales
tendencias que prevalecen en el nicho de mercado, de modo que se permita
al sector de la inmobiliaria B&C tomar decisiones que le posibiliten
establecer estrategias de marketing adecuadas para la empresa. Cabe
mencionar que el trabajo se llevó a cabo desde un tipo de análisis
exploratorio y descriptivo, donde se tienen en cuenta medidas de
tendencia central.
Objetivos
Objetivo general
Desarrollar un estudio exploratorio descriptivo sobre el mercado inmobiliario en la ciudad de Cali para contribuir a la toma de decisiones de la empresa B&C.
Objetivos específicos • Efectuar un proceso de limpieza de la base de datos • Realizar un análisis descriptivo de las variables de manera univariada • Desarrollar algunos análisis bivariados
Metodología Para el desarrollo del presente estudio se llevó a cabo inicialmente el análisis de la base de datos “PaqueteMET,a partir de lo que se empleo el programa RStudio para la limpieza, análisis e imputación de datos. De esta manera, se inicia con el desarrollo de un proceso analítico que permita analizar la naturaleza de los datos para identificar datos faltantes, variables de interés y el comportamiento de las principales estadísticas descriptivas. Posteriormente, se procedió a determinar que variables se van a realizar para el análisis univariado, teniendo en cuenta los procedimientos previos de imputación de datos y los objetivos de la organización. A partir de la obtención de dichos pasos, se procede a efectuar un cruce de variables, lo que se obtiene mediante un análisis bivariado de los datos.
Resultados
library(paqueteMET)
data("vivienda_faltantes")
library(summarytools)
library(mice)
##
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
##
## filter
## The following objects are masked from 'package:base':
##
## cbind, rbind
library(dplyr)
##
## 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
summary(vivienda_faltantes)
## id zona piso estrato
## Min. : 1 Length:8330 Min. : 1.000 Min. :3.000
## 1st Qu.:2082 Class :character 1st Qu.: 2.000 1st Qu.:4.000
## Median :4164 Mode :character Median : 3.000 Median :5.000
## Mean :4164 Mean : 3.772 Mean :4.634
## 3rd Qu.:6246 3rd Qu.: 5.000 3rd Qu.:5.000
## Max. :8319 Max. :12.000 Max. :6.000
## NA's :3 NA's :2641 NA's :3
## preciom areaconst parquea banios
## Min. : 58.0 Min. : 30 Min. : 1.000 Min. : 0.000
## 1st Qu.: 220.0 1st Qu.: 80 1st Qu.: 1.000 1st Qu.: 2.000
## Median : 330.0 Median : 123 Median : 2.000 Median : 3.000
## Mean : 434.2 Mean : 175 Mean : 1.836 Mean : 3.112
## 3rd Qu.: 540.0 3rd Qu.: 229 3rd Qu.: 2.000 3rd Qu.: 4.000
## Max. :1999.0 Max. :1745 Max. :10.000 Max. :10.000
## NA's :2 NA's :3 NA's :1606 NA's :3
## habitac tipo barrio longitud
## Min. : 0.000 Length:8330 Length:8330 Min. :-76576.00
## 1st Qu.: 3.000 Class :character Class :character 1st Qu.:-76506.00
## Median : 3.000 Mode :character Mode :character Median : -76.54
## Mean : 3.605 Mean :-21845.13
## 3rd Qu.: 4.000 3rd Qu.: -76.52
## Max. :10.000 Max. : -76.46
## NA's :3 NA's :3
## latitud
## Min. : 3.333
## 1st Qu.: 3.390
## Median : 3.450
## Mean : 970.370
## 3rd Qu.:3367.000
## Max. :3497.000
## NA's :3
set.seed(123)
datosNA<-sample_n(vivienda_faltantes,8330)
str(datosNA)
## spc_tbl_ [8,330 × 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ id : num [1:8330] 122 190 880 1663 1401 ...
## $ zona : chr [1:8330] "Zona Norte" "Zona Oriente" "Zona Oriente" "Zona Sur" ...
## $ piso : num [1:8330] 1 4 1 NA NA 1 7 NA 2 4 ...
## $ estrato : num [1:8330] 3 3 3 4 4 5 5 3 5 3 ...
## $ preciom : num [1:8330] 150 360 250 375 150 270 290 235 450 125 ...
## $ areaconst: num [1:8330] 93 420 210 74 57 75 93 122 252 72 ...
## $ parquea : num [1:8330] NA 1 NA 1 NA 1 1 1 2 NA ...
## $ banios : num [1:8330] 1 6 4 5 2 2 3 2 2 2 ...
## $ habitac : num [1:8330] 4 9 4 5 3 3 3 5 7 3 ...
## $ tipo : chr [1:8330] "Casa" "Casa" "Apartamento" "Casa" ...
## $ barrio : chr [1:8330] "la rivera" "las ceibas" "morichal de comfandi" "calicanto viii" ...
## $ longitud : num [1:8330] -76.5 -76.5 -76.5 -76517 -76.5 ...
## $ latitud : num [1:8330] 3.48 3.46 3.4 3373 3.38 ...
## - attr(*, "spec")=List of 3
## ..$ cols :List of 13
## .. ..$ id : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ zona : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ piso : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ estrato : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ preciom : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ areaconst: list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ parquea : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ banios : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ habitac : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ tipo : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ barrio : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ longitud : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ latitud : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## ..$ default: list()
## .. ..- attr(*, "class")= chr [1:2] "collector_guess" "collector"
## ..$ delim : chr ","
## ..- attr(*, "class")= chr "col_spec"
## - attr(*, "problems")=<externalptr>
datosSINA<-na.omit(datosNA)
faltantes<-colSums(is.na(datosNA))
faltantes
## id zona piso estrato preciom areaconst parquea banios
## 3 3 2641 3 2 3 1606 3
## habitac tipo barrio longitud latitud
## 3 3 3 3 3
library(naniar)
gg_miss_var(datosNA)
datosSINA <-na.omit(datosNA)
grafico<-md.pattern(datosSINA,rotate.names = TRUE)
## /\ /\
## { `---' }
## { O O }
## ==> V <== No need for mice. This data set is completely observed.
## \ \|/ /
## `-----'
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ readr 2.1.4
## ✔ ggplot2 3.4.2 ✔ stringr 1.5.0
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks mice::filter(), stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ✖ tibble::view() masks summarytools::view()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
datosSINA$barrio=str_to_lower(datosSINA$barrio)
datosSINA$tipo=str_to_lower(datosSINA$tipo)
datosSINA$estrato=str_to_lower(datosSINA$estrato)
datosSINA$preciom=str_to_lower(datosSINA$preciom)
datosSINA$tipo=recode(datosSINA$tipo, "apto" = "apartamento")
table(datosSINA$tipo)
##
## apartamento casa
## 3186 1626
table(datosSINA$estrato)
##
## 3 4 5 6
## 434 1213 1860 1305
table(datosSINA$habitac)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 17 35 477 2461 1092 372 163 81 45 44 25
table(datosSINA$preciom)
##
## 100 1000 1015 105 1050 1051 106 1077 1078 108 1080 109 1090 110 1100 1103
## 3 15 1 5 10 1 1 1 1 2 1 1 2 9 32 1
## 1106 111 112 1125 113 1130 1133 114 1149 115 1150 1160 1170 118 1180 119
## 1 1 1 1 7 1 1 1 1 16 18 2 1 4 2 1
## 1190 1195 120 1200 121 122 1220 1226 123 124 1240 125 1250 126 127 1270
## 1 2 24 46 1 4 2 1 1 1 1 24 25 2 1 2
## 128 1280 129 130 1300 132 1320 133 1330 135 1350 136 1360 137 1370 138
## 6 5 1 21 24 4 1 2 1 27 13 2 1 1 2 5
## 1380 1385 139 1390 1398 140 1400 142 1440 145 1450 147 148 1480 149 150
## 2 1 2 1 1 32 29 2 1 23 9 2 6 2 1 41
## 1500 151 152 153 1530 155 1550 156 1561 157 158 1580 1584 159 1590 160
## 15 2 9 1 1 27 8 1 1 4 6 1 1 4 1 35
## 1600 161 162 163 164 165 1650 167 168 1680 169 170 1700 171 173 175
## 20 1 2 4 2 32 3 1 7 2 1 25 15 1 2 29
## 1750 177 178 179 180 1800 182 183 1830 184 185 1850 188 189 190 1900
## 4 1 7 2 38 13 2 1 1 1 28 7 3 1 38 4
## 192 193 195 1950 196 197 198 199 1999 200 201 202 203 204 205 206
## 3 1 26 1 2 2 6 3 1 47 2 1 1 2 8 2
## 208 209 210 211 213 214 215 216 218 219 220 221 222 223 224 225
## 4 1 47 1 1 1 39 1 2 1 78 1 6 1 2 44
## 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 242
## 3 2 4 4 73 1 1 1 1 48 5 2 5 1 81 3
## 243 245 246 248 249 250 251 252 253 255 256 257 258 259 260 262
## 2 42 1 4 2 102 1 1 3 29 1 1 4 5 83 1
## 265 266 267 268 269 270 272 275 276 277 278 279 280 283 285 286
## 18 1 1 5 1 62 1 31 2 1 1 4 62 2 38 1
## 287 288 289 290 295 296 297 298 299 300 304 305 306 307 308 309
## 1 3 1 76 41 1 1 9 6 98 1 13 2 1 2 2
## 310 314 315 318 319 320 321 325 327 328 329 330 332 334 335 337
## 52 1 32 4 1 81 2 22 1 3 1 65 1 2 19 1
## 338 340 341 342 344 345 347 349 350 352 353 354 355 356 357 358
## 3 57 1 1 2 13 2 1 124 1 1 1 21 1 1 2
## 360 362 365 367 368 369 370 371 372 375 377 378 380 383 385 387
## 73 2 18 1 1 1 52 1 1 13 2 1 53 1 18 2
## 388 390 392 393 395 397 398 400 403 404 405 410 415 416 419 420
## 3 42 1 2 20 2 3 61 1 1 7 31 13 1 1 60
## 423 424 425 428 429 430 432 433 435 438 439 440 445 449 450 455
## 1 1 14 1 1 59 1 1 7 2 1 26 5 3 109 3
## 460 461 465 468 470 475 480 485 488 490 494 495 496 498 499 500
## 19 1 6 2 28 13 43 7 1 15 2 9 1 1 1 45
## 505 508 510 513 515 520 525 530 535 540 545 548 550 555 560 565
## 5 1 9 1 6 32 8 37 3 11 2 2 70 1 20 4
## 569 570 575 58 580 585 590 591 594 595 598 599 600 603 605 610
## 1 19 3 1 35 3 22 1 1 6 1 3 58 1 1 7
## 615 620 621 625 630 635 640 643 645 648 650 651 655 660 667 670
## 1 21 3 1 21 2 11 1 2 1 75 1 3 16 1 6
## 673 677 679 680 685 690 695 697 699 700 701 704 710 720 725 730
## 2 1 1 30 1 26 6 2 1 40 1 1 3 17 2 9
## 732 735 736 740 745 75 750 754 760 765 767 770 775 78 780 785
## 1 1 1 2 1 1 43 1 7 1 1 4 1 2 29 1
## 790 792 795 800 810 820 825 830 832 833 835 836 840 845 849 85
## 9 1 4 20 3 5 2 5 1 1 1 1 4 1 1 2
## 850 852 860 865 870 88 880 887 89 890 895 90 900 910 920 923
## 58 1 2 1 9 1 11 1 1 6 2 3 27 6 4 1
## 930 938 940 95 950 96 960 97 970 975 98 980 985 99 990 998
## 6 1 2 4 31 2 5 1 1 2 4 16 1 1 6 2
table(datosSINA$zona)
##
## Zona Centro Zona Norte Zona Oeste Zona Oriente Zona Sur
## 36 887 756 97 3036
barplot(table(datosSINA$tipo), main = "Tipo de vivienda", xlab = "tipo de hogar", ylab = "frecuencia", col = c("blue", "orange"))
barplot(table(datosSINA$estrato), main = "Principales estratos",xlab = "estrato", ylab = "frecuencia", col = c("blue", "yellow", "purple", "gray"))
barplot(table(datosSINA$habitac), main = "Número de piezas del hogar")
hist(table(datosSINA$preciom), xlim = c(0,100), main = "distribución de precios por metro cuadrado", xlab = "precio", ylab = "frecuencia", col = c ("orange"))
boxplot(datosSINA$areaconst ~ datosSINA$zona, main = "grafico de caja - area y zona", ylab = "area", xlab = "precio", col=c("green", "red", "orange", "blue", "yellow"))
conteo <- table(datosSINA$tipo, datosSINA$estrato)
barplot(table(datosSINA$tipo, datosSINA$estrato), main ="tipo de vivienda y estrato", col= c("blue", "orange"), xlab = "estrato", ylab = "frecuencia", legend=rownames(conteo))
conteo <- table(datosSINA$tipo, datosSINA$zona)
barplot(table(datosSINA$tipo, datosSINA$zona), main = "tipo de vivienda y pisos", col =c ("blue", "orange", "purple", "red"), xlab= "zona", ylab = "freccuencia", legend =rownames(conteo), style = "simple", justify = "left")
## Warning in plot.window(xlim, ylim, log = log, ...): "style" is not a graphical
## parameter
## Warning in plot.window(xlim, ylim, log = log, ...): "justify" is not a
## graphical parameter
## Warning in axis(if (horiz) 2 else 1, at = at.l, labels = names.arg, lty =
## axis.lty, : "style" is not a graphical parameter
## Warning in axis(if (horiz) 2 else 1, at = at.l, labels = names.arg, lty =
## axis.lty, : "justify" is not a graphical parameter
## Warning in title(main = main, sub = sub, xlab = xlab, ylab = ylab, ...):
## "style" is not a graphical parameter
## Warning in title(main = main, sub = sub, xlab = xlab, ylab = ylab, ...):
## "justify" is not a graphical parameter
## Warning in axis(if (horiz) 1 else 2, cex.axis = cex.axis, ...): "style" is not
## a graphical parameter
## Warning in axis(if (horiz) 1 else 2, cex.axis = cex.axis, ...): "justify" is
## not a graphical parameter
ggplot(datosSINA, aes(x=preciom, y=areaconst)) + geom_point()
# conclusiones
Al observar las gráficas anteriores es posible establecer que los apartamentos son los tipos de viviendas mas demandados por las personas en el sector inmobiliario de Cali. en este sentido, es importante reconocer que las casas cuentan con una particular participacion de mas de 1.500 unidades. De la misma manera, se evidencia que la demanda de apartamenbtos es mas frecuente en la zona sur, en la zona oeste y en la zona norte, en tanto que las casas tienen una demanda mas elevada en la zona sur. por otra parte, es posible resaltar que al indagar sobre los principales estrato donde se comercializan las viviendas en el sector inmobiliariode cali se encuentra que el estrato 5 era el que mayor demanda tenía, por lo que las estrategias de marketing deben estar enfocadas a estos sectores, donde las personas cuentan probablemente con mayores recursos.