R Markdown

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

Including Plots

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.