Proyecto Regresión Lineal Múltiple

Hernández Domínguez Gustavo

Mera López Ilse

Morales Déciga Moisés

Ramírez Rosales Jacqueline Esmeralda

Sampayo Gutiérrez Ixchel Ketzalzin

Solares Arredondo Eliot Adal

Noviembre de 2019

New York AIRBNB

A continuación se presentan el número de datos obtenidos de la base de datos y se clasifican por ciudad.

ny<-AB_NYC_2019
ny<-data.frame(ny$neighbourhood_group,ny$room_type,
               ny$price,ny$minimum_nights, ny$number_of_reviews)
table(ny$ny.neighbourhood_group)
## 
##         Bronx      Brooklyn     Manhattan        Queens Staten Island 
##          1091         20104         21661          5666           373

Se realiza una subdivisión respecto al tipo de habitación dentro del AIRBNB donde para trabajar con los datos ahora se tendrán la renta de casa o aprtamento, cuarto privado y cuarto compartido, que van a representar nuestras variables explicativas para el modelo a desarrollar.

table(ny$ny.room_type)
## 
## Entire home/apt    Private room     Shared room 
##           25409           22326            1160

Renta casa/apartamento

Para este apartado se presentan las comparaciones de los 5 vecindarios analizados tomando en cuenta sólo la renta casa/apartamento

Precio vs mínimo de noches

A continuación estamos comparando el precio de renta casa/apartamento de los cinco vecindarios con el mínimo de noches, para este caso se está aplicando el inverso multiplicativo porque queremos mantener el precio real. Podemos ver que no hay una relación lineal notoria entre las variables pero sí podemos sacar conclusiones respecto de éstas ya que entre más noches la persona rente la habitación el precio irá diminuyendo y por lo contrario entre menos noches el precio aumentará, es importante notar que para cada caso la mayor concentración de los datos se encuentra en un precio accesible acorde a la zona de estudio pues los rangos por vecindario varían notablemente, destacando el hecho de que para Bronx está un máximo de 600 dólares mientras que para Brooklyn este mismo excede los 2000 dólares.

Precio vs número de comentarios

Ahora la comparación se realizará sobre precio vs número de comentarios, nuevamente se está realizando sobre los 5 vecindarios,se está usando la transformación de la raíz cuadrada sobre los comentarios ya que se busca tener el precio real, la línea se ajusta mejor a los datos a pesar de no obtener por completo una relación lineal, aquí podemos decir que para precios altos se encuentran menos comentarios lo cual hace sentido pues son pocas las personas que adquieren habitaciones en este rango de precios, mientras que la mayoría de nuestros datos están concentrados en un rango donde los precios son más accesibles y por ello se tiene un mayor número de comentarios tomando en cuenta que esto dependerá de la zona y el rango de precios será distinto para cada vecindario, los precios más altos están en Brooklyn con 10000 dólares, mientras que para Staten Island el precio mayor está alrededor de los 400-500 dólares. Es importante mecionar que en la categoría de cuartos compartidos se encuentra la mayor parte de nuestra información.

Cuarto privado

Para este apartado se presentan las comparaciones de los 5 vecindarios analizados tomando en cuenta sólo cuarto privado.

Precio vs mínimo de noches

Ahora estamos comparando el precio de los cuartos privados de los cinco vecindarios con el mínimo de noches, para este caso se está aplicando el inverso multiplicativo porque nuevamente queremos mantener el precio real. Podemos ver que no hay una relación lineal notoria entre las variables pero sí podemos sacar conclusiones respecto de éstas ya que entre más noches la persona rente la habitación el precio irá diminuyendo y por lo contrario entre menos noches el precio aumentará, es importante notar que para cada caso la mayor concentración de los datos se encuentra en un precio accesible acorde a la zona de estudio pues los rangos por vecindario varían notablemente, destacando el hecho de que para Bronx está un máximo de 300 dólares mientras que para Brooklyn y Manhattaan este mismo excede los 2000 dólares. Además de que a pesar del vecindario el comportamiento de los datos es similar.

Precio vs comentarios

Ahora la comparación se realizará sobre precio vs número de comentarios, nuevamente se está¡ realizando sobre los 5 vecindarios,se está usando la transformación de la raíz cuadrada sobre los comentarios ya que se busca tener el precio real, la línea se ajusta mejor a los datos a pesar de no obtener por completo una relación lineal, aquí podemos decir que para precios altos se encuentran menos comentarios lo cual hace sentido pues son pocas las personas que adquieren habitaciones en este rango de precios, mientras que la mayoría de nuestros datos están concentrados en un rango donde los precios son más accesibles y por ello se tiene un mayor número de comentarios tomando en cuenta que esto dependerá de la zona y el rango de precios será distinto para cada vecindario, los precios más altos están en Brooklyn y Manhattan con 400 dólares,mientras que para Staten Island el precio mayor es de 150 dólares.

Cuartos compartidos

Para este apartado se presentan las comparaciones de los 5 vecindarios analizados tomando en cuenta sólo los cuartos compartidos.

Precio vs mínimo de noches

Por último se compara el precio de los cuartos compartidos de los cinco vecindarios con el mínimo de noches, para este caso se está aplicando el inverso multiplicativo porque nuevamente queremos mantener el precio real. Podemos ver que no hay una relación lineal notoria entre las variables pero sí podemos sacar conclusiones respecto de éstas ya que entre más noches la persona rente la habitación el precio irá diminuyendo y por lo contrario entre menos noches el precio aumentará, es importante notar que para cada caso la mayor concentración de los datos se encuentra en un precio accesible acorde a la zona de estudio pues los rangos por vecindario varóan notablemente, destacando el hecho de que para Bronx está un máximo de 160 dólares mientras que para Brooklyn y Manhattaan este mismo excede los 400 dólares. Además de que a pesar del vecindario el comportamiento de los datos es similar. Aquí resulta interesante que la diferencia de precios no es tan amplia comparado con otro tipo de habitación, además de que se cuenta con una proporción menor de los datos.

Precio vs número de comentarios

Ahora la comparación se realizará sobre precio vs número de comentarios, nuevamente se está realizando sobre los 5 vecindarios,se está usando la transformación de la raíz cuadrada sobre los comentarios ya que se busca tener el precio real, la línea se ajusta mejor a los datos a pesar de no obtener por completo una relación lineal, aquí podemos decir que para precios altos se encuentran menos comentarios lo cual hace sentido pues son pocas las personas que adquieren habitaciones en este rango de precios, mientras que la mayoría de nuestros datos están concentrados en un rango donde los precios son más accesibles y por ello se tiene un mayor número de comentarios tomando en cuenta que esto dependerá de la zona y el rango de precios será distinto para cada vecindario, los precios más altos están en Brooklyn y Manhattan con 400 dólares,mientras que para Staten Island el precio mayor es de 150 dólares.

Análisis de Residuales

Dada la extensión de los datos por la separación en las variables categóricas, y porque en cada uno de los barrios hemos realizado las mismas transformaciones dependiendiendo de las variables explicativas, decidimos hacer el Análisis de residuales solo para 2 barrios de New York.

Elegimos Bronx y Staten Island, elegidos para hacer un análisis con los condados de menos datos, ya que son los lugares más alejados de la zona del turismo de la Gran Manzana; por lo que queremos analizar de una manera más detallada su comportamiento.

Para hacer el análisis correspondiente, decidimos tomar el 75% de los datos que elegimos del condado y el tipo de habitación.

Bronx

Habitación - Departamento

summary(MBHx)
## 
## Call:
## lm(formula = BronxPH2 ~ BronxH2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -123.19  -43.45  -23.09   14.43  448.81 
## 
## Coefficients:
##                                         Estimate Std. Error t value
## (Intercept)                              124.910      9.927  12.583
## BronxH2X1..HABnx.ny.minimum_nights.       26.284     16.053   1.637
## BronxH2sqrt.HABnx.ny.number_of_reviews.   -3.087      1.368  -2.257
##                                         Pr(>|t|)    
## (Intercept)                               <2e-16 ***
## BronxH2X1..HABnx.ny.minimum_nights.       0.1027    
## BronxH2sqrt.HABnx.ny.number_of_reviews.   0.0248 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 80.38 on 279 degrees of freedom
## Multiple R-squared:  0.02288,    Adjusted R-squared:  0.01588 
## F-statistic: 3.267 on 2 and 279 DF,  p-value: 0.0396
confint(MBHx,level = 0.90)
##                                                 5 %        95 %
## (Intercept)                             108.5271860 141.2931667
## BronxH2X1..HABnx.ny.minimum_nights.      -0.2086448  52.7770759
## BronxH2sqrt.HABnx.ny.number_of_reviews.  -5.3440884  -0.8292586

El R^{2}, obtiene un valor muy pequeño, entonces, el modelo no asemeja la variabilidad de los datos, podemos empezar a pensar que los residuales no tienen una distribución normal.

Se observa que en los intervalos de confianza obtenidos no se encuentra el cero, por lo que decimos que el precio si esta relacionado con las variables del mínimo de noches y los comentarios.

ResBH<-MBHx$residuals
plot(ResBH)
abline(a=0,b=0)

hist(ResBH)

ks.test(ResBH,"pnorm",0,sd(ResBH))
## Warning in ks.test(ResBH, "pnorm", 0, sd(ResBH)): ties should not be
## present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  ResBH
## D = 0.19236, p-value = 1.726e-09
## alternative hypothesis: two-sided

Podemos observar que los residuales no distribuyen como una normal 0, con la desviación estandar correspondiente.

Por lo que decidimos hacer un análisis sobre las proyecciones de los precios, con la información obtenida y con el 25% restante de la base original.

plot(BronxPH2)

ks.test(DifBH,"pnorm",0,sd(DifBH))
## Warning in ks.test(DifBH, "pnorm", 0, sd(DifBH)): ties should not be
## present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  DifBH
## D = 0.064441, p-value = 0.1921
## alternative hypothesis: two-sided

Entonces, decidimos graficar las difercias entre los precios que hemos predecido con los precios que ya tenemos.

Podemos ver que las diferencias si son significativas dada la gráfica que generan, pero si hacemos el análisis para ver que estas diferencias se distribuyen como una normal 0 con varianza estimada, obtenemos el p-valor y con un alpha de 10% podemos ver que si se distribuyen de esta manera.

Cuarto Privado

summary(MBPx)
## 
## Call:
## lm(formula = BronxPP2 ~ BronxP2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -64.746 -17.628  -6.247  10.664 239.544 
## 
## Coefficients:
##                                         Estimate Std. Error t value
## (Intercept)                              55.8377     3.3685  16.576
## BronxP2X1..PRBnx.ny.minimum_nights.      18.9087     4.4245   4.274
## BronxP2sqrt.PRBnx.ny.number_of_reviews.  -1.6120     0.4206  -3.833
##                                         Pr(>|t|)    
## (Intercept)                              < 2e-16 ***
## BronxP2X1..PRBnx.ny.minimum_nights.     2.32e-05 ***
## BronxP2sqrt.PRBnx.ny.number_of_reviews. 0.000143 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 31.75 on 483 degrees of freedom
## Multiple R-squared:  0.06491,    Adjusted R-squared:  0.06104 
## F-statistic: 16.76 on 2 and 483 DF,  p-value: 9.147e-08
confint(MBPx,level = 0.90)
##                                               5 %       95 %
## (Intercept)                             50.286371 61.3890261
## BronxP2X1..PRBnx.ny.minimum_nights.     11.616976 26.2003871
## BronxP2sqrt.PRBnx.ny.number_of_reviews. -2.305116 -0.9189141

El R^{2}, obtiene un valor muy pequeño, entonces, el modelo no asemeja la variabilidad de los datos, podemos empezar a pensar que los residuales no tienen una distribución normal.

Se observa que en los intervalos de confianza obtenidos no se encuentra el cero, por lo que decimos que el precio si esta relacionado con las variables del minimo de noches y los comentarios.

ResBP<-MBPx$residuals
plot(ResBP)
abline(a=0,b=0)

hist(ResBP)

ks.test(ResBP,"pnorm",0,sd(ResBP))
## Warning in ks.test(ResBP, "pnorm", 0, sd(ResBP)): ties should not be
## present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  ResBP
## D = 0.1262, p-value = 3.784e-07
## alternative hypothesis: two-sided

Podemos observar que los residuales no distribuyen como una normal 0, con la desviación estandar correspondiente.

Por lo que decidimos hacer un análisis sobre las proyecciones de los precios, con la información obtenida y con el 25% restante de la base original.

plot(BronxPP2)

ks.test(DifBP,"pnorm",0,sd(DifBP))
## Warning in ks.test(DifBP, "pnorm", 0, sd(DifBP)): ties should not be
## present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  DifBP
## D = 0.035514, p-value = 0.5721
## alternative hypothesis: two-sided

Entonces, decidimos graficar las difercias entre los precios que hemos predecido con los precios que ya tenemos.

Podemos ver que las diferencias si son significativas dada la gráfica que generan, pero si hacemos el análisis para ver que estas diferencias se distribuyen como una normal 0 con varianza estimada, obtenemos el p-valor y con un alpha de 10% podemos ver que si se distribuyen de esta manera.

Cuarto Compartido

summary(MBSx)
## 
## Call:
## lm(formula = BronxPS2 ~ BronxS2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -38.750 -17.753  -8.269   9.803  91.250 
## 
## Coefficients:
##                                         Estimate Std. Error t value
## (Intercept)                               37.264     11.705   3.184
## BronxS2X1..SRBnx.ny.minimum_nights.       21.486     12.598   1.705
## BronxS2sqrt.SRBnx.ny.number_of_reviews.   -5.961      2.064  -2.888
##                                         Pr(>|t|)   
## (Intercept)                              0.00278 **
## BronxS2X1..SRBnx.ny.minimum_nights.      0.09567 . 
## BronxS2sqrt.SRBnx.ny.number_of_reviews.  0.00617 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 26.55 on 41 degrees of freedom
## Multiple R-squared:  0.2014, Adjusted R-squared:  0.1624 
## F-statistic:  5.17 on 2 and 41 DF,  p-value: 0.009949
confint(MBSx,level = 0.90)
##                                                5 %      95 %
## (Intercept)                             17.5657058 56.961703
## BronxS2X1..SRBnx.ny.minimum_nights.      0.2848283 42.686871
## BronxS2sqrt.SRBnx.ny.number_of_reviews. -9.4345806 -2.487067

El R^{2}, obtiene un valor pequeño, pero es mayor que los anteriores, entonces, el modelo no asemeja completamente la variabilidad de los datos, como es una R pequeña, podemos pensar que los residuales no tienen una distribución normal.

En el intervalo de confianza se encuentra el cero, por lo que se puede pensar que el precio no depende del mínimo de noches, pero, en el intervalo de confianza del numero de comentarios no se encuentra el cero, por lo que el precio sí depende del numero de comentarios.

ResBS<-MBSx$residuals
plot(ResBS)
abline(a=0,b=0)

hist(ResBS)

ks.test(ResBS,"pnorm",0,sd(ResBS))
## Warning in ks.test(ResBS, "pnorm", 0, sd(ResBS)): ties should not be
## present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  ResBS
## D = 0.17431, p-value = 0.1379
## alternative hypothesis: two-sided

Los Residuales si pueden tener una distribución normal, en casos especificos en la selección de los datos observados.

plot(BronxPS2)

ks.test(DifBS,"pnorm",0,sd(DifBS))
## Warning in ks.test(DifBS, "pnorm", 0, sd(DifBS)): ties should not be
## present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  DifBS
## D = 0.18822, p-value = 0.08852
## alternative hypothesis: two-sided

También decidimos hacer predicciones sobre los precios y podemos ver que los residuales si tienen una distribución normal.

Staten Island

Habitación - Departamento

summary(MSTH)
## 
## Call:
## lm(formula = STPH2 ~ STH2)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -91.70 -51.63 -27.31  23.57 309.87 
## 
## Coefficients:
##                                     Estimate Std. Error t value Pr(>|t|)
## (Intercept)                          141.998     14.088  10.079   <2e-16
## STH2X1..HAST.ny.minimum_nights.       -9.330     21.961  -0.425    0.672
## STH2sqrt.HAST.ny.number_of_reviews.   -2.362      1.777  -1.329    0.186
##                                        
## (Intercept)                         ***
## STH2X1..HAST.ny.minimum_nights.        
## STH2sqrt.HAST.ny.number_of_reviews.    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 72.01 on 124 degrees of freedom
## Multiple R-squared:  0.01738,    Adjusted R-squared:  0.001527 
## F-statistic: 1.096 on 2 and 124 DF,  p-value: 0.3373
confint(MSTH,level = 0.90)
##                                            5 %        95 %
## (Intercept)                         118.650951 165.3452353
## STH2X1..HAST.ny.minimum_nights.     -45.724591  27.0638257
## STH2sqrt.HAST.ny.number_of_reviews.  -5.307415   0.5835534

El R^{2}, obtiene un valor muy pequeño, entonces, el modelo no asemeja la variabilidad de los datos, podemos empezar a pensar que los residuales no tienen una distribución normal.

En el intervalo de confianza se encuentra el cero, por lo que se puede pensar que el precio no depende del mínimo de noches ni de los comentarios.

ResSTH<-MSTH$residuals
plot(ResSTH)
abline(a=0,b=0)

hist(ResSTH)

ks.test(ResSTH,"pnorm",0,sd(ResSTH))
## Warning in ks.test(ResSTH, "pnorm", 0, sd(ResSTH)): ties should not be
## present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  ResSTH
## D = 0.16816, p-value = 0.00152
## alternative hypothesis: two-sided

Los residuales no tienen una distribución normal

plot(STPH2)

ks.test(DifSTH,"pnorm",0,sd(DifSTH))
## Warning in ks.test(DifSTH, "pnorm", 0, sd(DifSTH)): ties should not be
## present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  DifSTH
## D = 0.060915, p-value = 0.7336
## alternative hypothesis: two-sided

Los nuevos residuales de los precios que queremos predecir con los que ya teniamos si tienen una distribución normal.

Private Room

summary(MSTP)
## 
## Call:
## lm(formula = STPP2 ~ STP2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -43.723 -17.420  -5.572  14.237  82.496 
## 
## Coefficients:
##                                     Estimate Std. Error t value Pr(>|t|)
## (Intercept)                          51.9782     5.0446  10.304  < 2e-16
## STP2X1..PRST.ny.minimum_nights.      18.7848     6.3120   2.976  0.00346
## STP2sqrt.PRST.ny.number_of_reviews.  -1.0997     0.5877  -1.871  0.06349
##                                        
## (Intercept)                         ***
## STP2X1..PRST.ny.minimum_nights.     ** 
## STP2sqrt.PRST.ny.number_of_reviews. .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 23.79 on 135 degrees of freedom
## Multiple R-squared:  0.08243,    Adjusted R-squared:  0.06884 
## F-statistic: 6.064 on 2 and 135 DF,  p-value: 0.003007
confint(MSTP,level = 0.90)
##                                           5 %      95 %
## (Intercept)                         43.623222 60.333278
## STP2X1..PRST.ny.minimum_nights.      8.330754 29.238789
## STP2sqrt.PRST.ny.number_of_reviews. -2.073142 -0.126299

El R^{2} es pequeño, por lo que no refleja gran variabilidad del sistema.

Los intervalos de confianza no incluyen al cero, por lo que podemos pensar que el precio si depende de estas variables.

ResSTP<-MSTP$residuals
plot(ResSTP)
abline(a=0,b=0)

hist(ResSTP)

ks.test(ResSTP,"pnorm",0,sd(ResSTP))
## Warning in ks.test(ResSTP, "pnorm", 0, sd(ResSTP)): ties should not be
## present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  ResSTP
## D = 0.13834, p-value = 0.01016
## alternative hypothesis: two-sided

Utilizando la prueba de Kolmogorov podemos ver que los residuales no tienen una distribución normal.

plot(STPP2)

ks.test(DifSTP,"pnorm",0,sd(DifSTP))
## Warning in ks.test(DifSTP, "pnorm", 0, sd(DifSTP)): ties should not be
## present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  DifSTP
## D = 0.057441, p-value = 0.7527
## alternative hypothesis: two-sided

Obteniendo los residuales para los precios que hemos predecido, hacemos la prueba de la normalidad y se concluye que sí tienen una distrubución normal.

Para Staten Island solo podemos hacer el análisis para los primero 2 tipos de habitaciones, para los cuartos compartidos tenemos muy poca información que no es posible hacer una estimación de los precios estimados con los que si se tiene un valor.

Conclusión

En conclusión, podemos observar en todos los casos que las diferencias entre los residuales de los valores que tenemos, no distribuyen como una normal con sus parámetros correspondientes, por lo que decidimos hacer el análisis de residuales con valores que hemos predecido sobre el precio de las habitaciones con los datos que decidimos apartar, y vemos que estas diferencias sí tienen una distribución normal con un nivel de confianza del 10%.

Podemos decir que sí, el modelo no se ajusta para los residuales principales, el modelo sí funciona para los residuales de las estimaciones de los precios de las habitaciones, por lo que se tiene un error en la parte teórica, pero el modelo sí funciona.