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")
install.packages("rgdal")
library(ggplot2)
library(data.table)
library(utf8)
library(leaflet)
library(rgdal)
Hogares<-fread("C2/Base_Hogares.csv")
Personas<-fread("C2/Base_Personas.csv")
Viajes<-fread("C2/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.
Hogares<-Hogares[!duplicated(Factorhg)]
Hogares[,ingprom:=weighted.mean(x=IngresoHogar,w=Factor),by="Macrozona"]
ggplot(Hogares,aes(x=Macrozona,y=ingprom)) + geom_bar(stat = "identity")+
scale_y_continuous(labels=function(n){format(n, scientific = FALSE)})
Hogares$Macrozona <- as.numeric(Hogares$Macrozona)
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(Hogares[IngresoHogar<2000000],aes(x=Comuna,weights=Factor,y=IngresoHogar)) + geom_histogram(stat = "identity")+
scale_y_continuous(labels=function(n){format(n, scientific = FALSE)})
a.Para poder tener un mejor análisis de mercado, es necesario analizar las características del hogar y de las personas que lo componen. Para esto, cree un objeto “EOD” que sea un merge entre la base de hogares y personas, dado el identificador de hogares.
EOD<-merge(x=Hogares, y= Personas,by="Hogar")
b.Reemplaza el objeto “EOD” con un merge entre la base EOD y viajes, dados los identificadores de hogares y de personas. De esta forma, tendrá información más detallada de las familias, las personas y los flujos de viajes. Pista: el argumento by puede contener dos variables, pero deben incluirse en un vector, de la forma …,by=c(“variable1”,“variable2”).
EOD<-merge(x=EOD, y= Viajes,by=c("Hogar","Persona"))
c.Además cree una variable que sea un identificador de hogares y personas para poder eliminar los duplicados (utilice paste0 para crear esta variable).
EOD[,id:= paste0(EOD$Hogar,EOD$Persona, collapse = NULL)]
EOD<-EOD[!duplicated(id)]
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.
ggplot(data=EOD[LicenciaConducir==1], aes(x=Macrozona, y=LicenciaConducir)) + geom_bar(stat="identity")+ facet_wrap(facets= "MacrozonaOrigen1") + 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:=2020-AnoNac]
EOD[edad>=18 & edad<=25 ,Rango:="Rango1"]
EOD[edad>=26 & edad<=35 ,Rango:="Rango2"]
EOD[edad>=36 & edad<=55 ,Rango:="Rango3"]
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= Rango,y= Macrozona)) + geom_bar(stat="identity")
Cargue la base de datos de locales hamburguesas para analizar donde se encuentra la competencia.
Resto<-fread("C2/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).
ggplot(Resto,aes(x=reviews, y=rating)) + geom_point()
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.
Icompetencia<-Resto[,mean(reviews*rating,na.rm = T)/1000, by=MacrozonaOrigen1]
Ubique en un mapa los diferentes locales de hamburguesas.
leaflet(Resto[Resto$lat])%>%
addTiles()%>%
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
#En base al grafico anterior, y considerando el indicador de competencia calculado en la pregunta numero 10, podemos ver que Reñaca tiene un ingreso promerdio alto (1933029.6), sumado a un indice de competencia bajo (1.364) y que ademas solo hay 3 locales. Por lo tanto, seria recomendable ubicar un local de hamburguesas nuevo en la comuna de Reñaca.
#La tabla que demuestra el ingreso promedio mencionado es: Ingporcom<- EOD[,mean(ingprom),by=Macrozonahg]