Actividad 1

Filtrar solo apartamentos, en un barrio de preferencia y tener en cuenta las variaciones que este puede presentar por ser un campo abierto, tener en cuenta la siguiente ayuda:

library(readxl)
datos <- read_excel("G:/ACADEMIA/JAVERIANA CALI/1. SEMESTRE 2022-I/2. METODOS Y SIMULACION/Datos_Vivienda.xlsx")
head(datos)
Zona piso Estrato precio_millon Area_contruida parqueaderos Banos Habitaciones Tipo Barrio cordenada_longitud Cordenada_latitud
Zona Sur 2 6 880 237 2 5 4 Casa pance -76.46300 3.43000
Zona Oeste 2 4 1200 800 3 6 7 Casa miraflores -76.46400 3.42800
Zona Sur 3 5 250 86 NA 2 3 Apartamento multicentro -76.46400 3.42900
Zona Sur NA 6 1280 346 4 6 5 Apartamento ciudad jardv<U+2260>n -76.46400 3.43300
Zona Sur 2 6 1300 600 4 7 5 Casa pance -76.46438 3.43463
Zona Sur 3 6 513 160 2 4 4 Casa pance -76.46438 3.43463

Barrio de interes: valle del lili

require(RecordLinkage)
## Loading required package: RecordLinkage
## Warning: package 'RecordLinkage' was built under R version 4.1.2
## Loading required package: DBI
## Loading required package: RSQLite
## Loading required package: ff
## Warning: package 'ff' was built under R version 4.1.2
## Loading required package: bit
## 
## Attaching package: 'bit'
## The following object is masked from 'package:base':
## 
##     xor
## Attaching package ff
## - getOption("fftempdir")=="C:/Users/JUANG/AppData/Local/Temp/RtmpiWecIL/ff"
## - getOption("ffextension")=="ff"
## - getOption("ffdrop")==TRUE
## - getOption("fffinonexit")==TRUE
## - getOption("ffpagesize")==65536
## - getOption("ffcaching")=="mmnoflush"  -- consider "ffeachflush" if your system stalls on large writes
## - getOption("ffbatchbytes")==16777216 -- consider a different value for tuning your system
## - getOption("ffmaxbytes")==536870912 -- consider a different value for tuning your system
## 
## Attaching package: 'ff'
## The following objects are masked from 'package:utils':
## 
##     write.csv, write.csv2
## The following objects are masked from 'package:base':
## 
##     is.factor, is.ordered
## RecordLinkage library
## [c] IMBEI Mainz
## 
## Attaching package: 'RecordLinkage'
## The following object is masked from 'package:bit':
## 
##     clone
## The following object is masked from 'package:base':
## 
##     isFALSE
barrio=c("valle del lili","valle de lili")
which(jarowinkler("valle del lili",barrio)>0.8)
## [1] 1 2
jarowinkler("valle del lili","valle de lili")
## [1] 0.9549451
pos=which(jarowinkler("valle del lili",datos$Barrio)>0.8)
datos_sub=datos[pos,]
head(datos_sub)
Zona piso Estrato precio_millon Area_contruida parqueaderos Banos Habitaciones Tipo Barrio cordenada_longitud Cordenada_latitud
Zona Sur 5 5 310 82.5 1 2 3 Apartamento valle del lili -76.46438 3.43463
Zona Sur 9 4 240 80.0 1 2 3 Apartamento valle del lili -76.46438 3.43463
Zona Sur NA 5 230 70.0 1 2 2 Apartamento valle del lili -76.46500 3.43600
Zona Sur NA 5 160 63.0 NA 2 2 Apartamento valle del lili -76.46500 3.43600
Zona Sur 6 5 200 71.0 1 2 3 Apartamento valle del lili -76.46500 3.43600
Zona Sur NA 5 270 76.0 NA 2 3 Apartamento valle del lili -76.46500 3.43600

##Actividad 2 Presentar una exploracion inicial de los datos, ejemplo: conteo de cuantos registros quedaron, precio promedio, area promedio entre otros

#Cantidad de registros barrio: Valle del Lili
dim(datos_sub)
## [1] 1011   12
#Resumen por Tipo de inmueble
barplot(table(datos_sub$Tipo),
        col= c('#6495ED','#00008B'))

Analisis de Precios por Tipo de Inmueble

library (sqldf)
## Loading required package: gsubfn
## Loading required package: proto
sqldf('SELECT Tipo,
              avg(precio_millon) as precio_millon
      FROM datos_sub
      GROUP BY Tipo')
Tipo precio_millon
Apartamento 224.5718
Casa 335.8810
boxplot(precio_millon ~ Tipo, data = datos_sub,
        main='Comparacion de precios por Tipo de inmuebles',
        ylab = 'Precio en Millones',
        xlab = 'Tipo de Inmueble',
        col= c('#6495ED','#00008B'))

Analisis de areas construidas por tipo de inmueble

sqldf('SELECT Tipo,
              avg(Area_contruida) as Area_contruida
      FROM datos_sub
      GROUP BY Tipo')
Tipo Area_contruida
Apartamento 74.97807
Casa 165.43679
boxplot(Area_contruida ~ Tipo, data = datos_sub,
        main='Comparacion de areas construidas por Tipo de inmuebles',
        ylab = 'Area en m^2',
        xlab = 'Tipo de Inmueble',
        col= c('#6495ED','#00008B'))

Cantidad de Baños

hist(datos_sub$Banos,
     main = 'Cantidad de banos por inmueble',
     xlab = 'Banos',
     col = 'ivory')

Ofertas por estrato en Valle de Lili

sqldf('SELECT Estrato,
              avg(precio_millon) as precio_millon
      FROM datos_sub
      GROUP BY Estrato
      ORDER BY Estrato')
Estrato precio_millon
3 203.7500
4 214.1468
5 281.7400
6 352.0000
boxplot( precio_millon ~ Estrato, data = datos_sub,
        main='Comparacion de Precios por NSE',
        ylab = 'Precio en Millones',
        xlab = 'NSE',
        col= 'ivory')

##Actividad 3 Presentar en un mapa interactivo los resultados de las viviendas y discutir un poco sobre posibles errores en la geocodificación dado que el campo es abierto

require(leaflet)
## Loading required package: leaflet
## Warning: package 'leaflet' was built under R version 4.1.2
leaflet()%>%addCircleMarkers(lng=datos_sub$cordenada_longitud, lat=datos_sub$Cordenada_latitud,radius = 0.1,color = 'red')%>%
addTiles()

##Actividad 4 Realizar una exploración bivariada entre el precio de la vivienda y el area por un grafico de puntos con una linea de tendencia interactiva usando ggplot2 y plotly

require(ggplot2)
## Loading required package: ggplot2
require(ploty)
## Loading required package: ploty
## Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
## logical.return = TRUE, : there is no package called 'ploty'
pos3=which(datos_sub$Area_contruida<250)
datos_sub2=datos_sub[pos3,]

ggplot(data=datos_sub2,aes(y=precio_millon, x=Area_contruida)) + geom_point() + geom_smooth()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'