Cargue los paquetes y las bases necesarias para poder trabajar con la base de datos de personas, hogares y viajes de la Encuesta Origen y Destino en formato data.table y para poder realizar las vizualizaciones con ggplot. importante: la base de personas solo considera a la gente que trabaja. Por lo tanto, la actividad analiza solo personas que tienen trabajo.
install.packages("ggplot2")
install.packages("data.table")
install.packages("utf8")
install.packages("leaflet")
library("ggplot2")
library("data.table")
library("utf8")
library("leaflet")
Hogares<-fread("Base_Hogares.csv",encoding="Latin-1")
Personas<-fread("Base_Personas.csv")
Viajes<-fread("Base_Viajes.csv")
Realice un gráfico (legible) que permita ver el ingreso promedio de los hogares por macrozona. Considere que las personas se encuentran repetidos en la base de datos.
Pista: para quitar la notación científica utilice: scale_y_continuous(labels=function(n){format(n, scientific = FALSE)}).
Ingpromedio<-Hogares[,mean(IngresoHogar),by="Macrozona"]
ggplot(Ingpromedio,aes(x=Macrozona, weights=V1))+geom_bar() +labs(x="Macrozona",y="Ingreso Promedio", title = "Ingreso Promedio por Macrozona",caption = "Fuente: Encuesta")
Realice un histograma con ggplot que muestre la distribución del ingreso de los hogares para las comunas del Gran Valparaíso. Es decir, un histograma para cada comuna, pero en un mismo gráfico. Considere los factores de expansión de las personas. Además, limite el ingreso a menos de 2000000.
ggplot(data=Hogares[IngresoHogar<2000000],aes(x=IngresoHogar,weight=Factor))+ geom_histogram() + facet_wrap(facets="Comuna") + scale_y_continuous(labels = function(n){format(n,scientific = FALSE)})
EOD<-merge(x=Hogares, y=Personas, by="Hogar")
EOD<-merge(x=EOD, y=Viajes, by=c("Hogar", "Persona"))
EOD[,dup:=paste0(Hogar,Persona)]
EOD[!duplicated(dup)]
## Hogar Persona Macrozona Zona Comuna Manzana DirCoordX DirCoordY
## 1: 4.467885e-319 1 1 9 2 90431 253073.7 6341154
## 2: 4.467885e-319 2 1 9 2 90431 253073.7 6341154
## 3: 4.467885e-319 3 1 9 2 90431 253073.7 6341154
## 4: 5.004717e-318 1 13 101 3 1012966 266270.6 6342393
## 5: 5.004717e-318 2 13 101 3 1012966 266270.6 6342393
## ---
## 21846: 1.068086e-313 3 21 216 5 2161831 274441.3 6339604
## 21847: 1.163547e-313 1 26 235 6 2350461 278998.6 6341682
## 21848: 1.163547e-313 2 26 235 6 2350461 278998.6 6341682
## 21849: 2.481938e-313 1 6 50 2 502349 259774.5 6332118
## 21850: 2.481938e-313 2 6 50 2 502349 259774.5 6332118
## Fecha DiaAsig TipoDia NumPer NumVeh Propiedad NoSabeNoResponde
## 1: 2014-11-25 2 1 3 0 1 1
## 2: 2014-11-25 2 1 3 0 1 1
## 3: 2014-11-25 2 1 3 0 1 1
## 4: 2015-05-08 5 1 3 1 1 0
## 5: 2015-05-08 5 1 3 1 1 0
## ---
## 21846: 2014-10-28 2 1 3 0 3 0
## 21847: 2014-09-30 2 1 2 1 1 0
## 21848: 2014-09-30 2 1 2 1 1 0
## 21849: 2015-05-13 3 1 2 1 1 0
## 21850: 2015-05-13 3 1 2 1 1 0
## MontoDiv MontoArrEstima MontoArrPaga IngresoHogar Factor_Laboral
## 1: NA NA NA 241483 49.61113
## 2: NA NA NA 241483 49.61113
## 3: NA NA NA 241483 49.61113
## 4: NA 280000 NA 1156372 47.45112
## 5: NA 280000 NA 1156372 47.45112
## ---
## 21846: NA NA 80000 626361 34.22977
## 21847: NA 200000 NA 1000248 35.39052
## 21848: NA 200000 NA 1000248 35.39052
## 21849: NA 300000 NA 1191615 45.21407
## 21850: NA 300000 NA 1191615 45.21407
## Factor_Sabado Factor_Domingo Factor.x aux comunahg
## 1: NA NA 40.82472 1 Valparaíso
## 2: NA NA 40.82472 1 Valparaíso
## 3: NA NA 40.82472 1 Valparaíso
## 4: NA NA 39.15974 1 Viña del Mar
## 5: NA NA 39.15974 1 Viña del Mar
## ---
## 21846: NA NA 30.05988 1 Quilpue
## 21847: NA NA 27.56420 1 Villa Alemana
## 21848: NA NA 27.56420 1 Villa Alemana
## 21849: NA NA 39.39303 1 Valparaíso
## 21850: NA NA 39.39303 1 Valparaíso
## Macrozonahg Factorhg AnoNac LicenciaConducir IngresoFinal
## 1: Playa Ancha 40.82472 1963 1 241483
## 2: Playa Ancha 40.82472 1964 2 0
## 3: Playa Ancha 40.82472 1994 1 0
## 4: Viña del Mar Oriente 39.15974 1958 1 449190
## 5: Viña del Mar Oriente 39.15974 1953 2 251423
## ---
## 21846: El Belloto 30.05988 2009 2 0
## 21847: Villa Alemana Norte 27.56420 1985 1 416449
## 21848: Villa Alemana Norte 27.56420 1989 1 583800
## 21849: Placilla-Curauma 39.39303 1940 1 280770
## 21850: Placilla-Curauma 39.39303 1973 1 910845
## Factor.y MacrozonaOrigen1 MacrozonaDestino1 Proposito1
## 1: 42.35732 Placilla-Curauma Playa Ancha Volver a casa
## 2: 38.48943 Playa Ancha Vina del Mar Oriente Ver a alguien
## 3: 44.08262 Playa Ancha Miraflores Al Estudio
## 4: 31.63111 Vina del Mar Oriente Marga-Marga De Salud
## 5: 33.35827 Vina del Mar Oriente Marga-Marga Recreacion
## ---
## 21846: 41.72627 El Belloto El Belloto Al Estudio
## 21847: 38.74773 Villa Alemana Norte Playa Ancha Al Trabajo
## 21848: 43.73622 Villa Alemana Norte Quilpue Poniente Al Trabajo
## 21849: 24.85713 Placilla-Curauma Placilla-Curauma Recreacion
## 21850: 37.13964 Placilla-Curauma Recreo Al Trabajo
## dup
## 1: 4.46788504190698e-3191
## 2: 4.46788504190698e-3192
## 3: 4.46788504190698e-3193
## 4: 5.00471701005224e-3181
## 5: 5.00471701005224e-3182
## ---
## 21846: 1.06808647372994e-3133
## 21847: 1.16354741689772e-3131
## 21848: 1.16354741689772e-3132
## 21849: 2.48193832243198e-3131
## 21850: 2.48193832243198e-3132
Un cliente cautivo es un consumidor que por condiciones externa, se le hace difícil sustituir un producto o servicio, ya que esto implica un costo para él, ya sea monetario o de esfuerzo.Dado este contexto, consumidores cautivos podrían ser aquellas personas que no poseen licencia de conducir, porque para ellos es más costoso en términos de tiempo, dinero y esfuerzo movilizarse entre macrozonas para comer otras hamburgesas que las que se encuentran cerca suyo. Es por esto que queremos identificar cuántas personas sin licencia existen en cada macrozona(Macrozonahg). Para ello, realice un gráfico de barras e identifique a los consumidores cautivos que no tienen licencia, por macrozona.
Pista: Utilice la variable LicenciaConducir: 1=No tiene licencia 2=Tiene licencia Recuerde que debe eliminar los duplicados de personas.
ggplot(data=EOD[LicenciaConducir==1], aes(x=Macrozona, y=LicenciaConducir, weight=Factor.x)) + geom_bar(stat = "identity")+theme(axis.text.x = element_text(angle=90, vjust=0.6))
Cree una variable Rango, que tome como valor los distintos rangos de edades de las personas. “Rango1: 18-25” “Rango2: 26-35” “Rango3: 36-55” “Rango4: +56”
EOD[,edad:=2015-AnoNac]
EOD[edad>=18 & edad<=25 ,Rango:="Rango1"]
EOD[edad>=26 & edad<=35 ,Rango:="Rango2"]
EOD[edad>=56 ,Rango:="Rango4"]
Muestre en un gráfico de barras la cantidad de personas que hay en cada macrozona según el rango de edades que definió en la pregunta anterior.
ggplot(EOD, aes(x=Macrozonahg,y=Persona)) + geom_bar(stat = "identity") +facet_wrap(facets ="Rango") + theme(axis.text.x = element_text(angle=90, vjust=0.6))
Cargue la base de datos de locales hamburguesas para analizar donde se encuentra la competencia.
Rest<-fread("restaurantes.csv")
Cree un scatter-plot con ggplot que muestre la relación entre el número de comentarios (reviews) (eje x) y el rating (eje y).
plot(x=Rest[,rating],y=Rest[,reviews],type = "p")
Ahora queremos analizar el nivel de competencia que existe por macrozona. Para realizar esto, debe crear un identificador de competencia para cada macrozona. El indicador esta definido como Icompetencia=(reviews∗rating)1000¯ para cada macrozona.
Pista: considere que el indicador debe ser el promedio para cada macrozona y que debe remover los NA en caso de que existan.
Icomp<-Rest[,mean(reviews*rating, na.rm=T)/1000,by=MacrozonaOrigen1]
Ubique en un mapa los diferentes locales de hamburguesas.
leaflet(Rest[!duplicated(Rest$lat)]) %>%
addTiles() %>%
setView(lng = -71.5, lat = -33, zoom = 11)%>%
addMarkers()
Dado el indicador de competencias creado anteriormente y todo el análisis socioeconómico de las macrozonas ¿En qué comuna ubicaría el nuevo local de hamburguesas? Apoyese con una visualización de datos espaciales. Utilice el shp provisto para estos fines en la carpeta GV y sea cuidadoso con el encoding
Lo hariamos en el plan de Viña, ya que es donde el Indicador de Reviews y Raiting es mas alto.