Airbnb New York año 2019

En esta actividad, lo que se busca es predecir el precio de un arriendo de vivienda por airbnb.

P1

Instale el paquete de data.table, ggplot2 y caret y abra la base de datos que contiene la información de arriendos de airbnb de New York para el año 2019.

install.packages("data.table")
install.packages("caret")
install.packages("ggplot2")
library(data.table)
library(caret)
library(ggplot2)
airbnb<-fread("AB_NYC_2019.csv")

P2

Muestre en un gráfico de barras la oferta de arriendos para cada grupo de vecindario, es decir, cuántos departamentos/casas se arriendan por grupo de vecindario.

ggplot(data = airbnb[room_type=="Entire home/apt"], aes(x=neighbourhood_group,))+geom_bar()+ theme(axis.text.x =element_text(angle=85, vjust=0.5))+labs(x="Arriendos para cada grupo",y="departamento/casa", title = "La oferta de arriendos para cada grupo de vecindario")

P3

Muestre con un scatter plot la relación entre el precio (eje x) y el número de visitas (eje y) según el tipo de habitación que se está arrendando. Pista: Recuerde la función facet_wrap.

ggplot(data=airbnb,aes(x=price, y=calculated_host_listings_count, colour= room_type)) + geom_point() +
  facet_wrap(facets ="room_type")

P4

a. Nuestro primer modelo de predicción será una regresión lineal simple que explique el precio de los arriendos de airbnb según el tipo de habitación. Pista: Recuerde que para las regresiones hay que transformar las variables character en variables categóricas.
airbnb[,roomt:=as.factor(room_type)]

modelo_simple<- lm(price~roomt, data = airbnb)
summary(modelo_simple)
## 
## Call:
## lm(formula = price ~ roomt, data = airbnb)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -211.8  -59.8  -29.8    9.2 9910.2 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        211.794      1.456  145.43   <2e-16 ***
## roomtPrivate room -122.013      2.130  -57.30   <2e-16 ***
## roomtShared room  -141.667      6.970  -20.32   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 232.1 on 48892 degrees of freedom
## Multiple R-squared:  0.06561,    Adjusted R-squared:  0.06558 
## F-statistic:  1717 on 2 and 48892 DF,  p-value: < 2.2e-16
b. Interprete los coeficientes de su regresión anterior. ¿Son estadísticamente significativos?
los coeficientes que nos entrega la regresion anterior, si son estadisticamente signivicativos, ya que todos son menores a nuestro p-valeu entregado.
c. Calcule el precio predicho para todas las observaciones de la muestra. E inclúyalo en la base original.
airbnb[,precio_predicho:=predict(modelo_simple)]
d.Calcule los errores de predicción (RMSE y MAE) de nuestro modelo. Muestre sus resultados.
predicciones<-data.table(RMSE=RMSE(airbnb$precio_predicho,airbnb$price),
                         MAE=MAE(airbnb$precio_predicho,airbnb$price))

P5

a. Nuestro segundo modelo de predicción será una regresión lineal múltiple que explique el precio de los arriendos de airbnb según el tipo de habitación, el número de visitas, la cantidad mínima de noches y el grupo de vecindario en el que se encuentra. No olvide mostrar los resultados Pista: Recuerde que para las regresiones hay que transformar las variables character en variables categóricas.
airbnb[,nbhg:=as.factor(neighbourhood_group)]
airbnb[,nbh:=as.factor(minimum_nights)]
airbnb[,roomt:=as.factor(room_type)]

modelo_simple2<- lm(price~roomt+calculated_host_listings_count+minimum_nights+neighbourhood_group , data = airbnb)

modelo_simple2
## 
## Call:
## lm(formula = price ~ roomt + calculated_host_listings_count + 
##     minimum_nights + neighbourhood_group, data = airbnb)
## 
## Coefficients:
##                      (Intercept)                 roomtPrivate room  
##                        159.85230                        -110.51468  
##                 roomtShared room    calculated_host_listings_count  
##                       -132.92066                           0.07845  
##                   minimum_nights       neighbourhood_groupBrooklyn  
##                          0.18082                          21.68426  
##     neighbourhood_groupManhattan         neighbourhood_groupQueens  
##                         78.13849                           8.82534  
## neighbourhood_groupStaten Island  
##                         12.81351
b. Calcule el precio predicho para todas las observaciones de la muestra. E inclúyalo en la base original.
airbnb[,precio_predicho2:=predict(modelo_simple2)]
c. Calcule los errores de predicción (RMSE y MAE) de nuestro modelo. Muestre sus resultados.
predicciones<-data.table(RMSE=RMSE(airbnb$precio_predicho2,airbnb$price),
                         MAE=MAE(airbnb$precio_predicho2,airbnb$price))