Importar la base de datos de csv

data <- read.csv("C:\\Users\\eveyu\\Downloads\\concentración\\m2_R\\HousePriceData.csv")
# Usar file.choose()

Entender la base de datos

data$Parking<- as.factor(data$Parking)
data$City_Category<- as.factor(data$City_Category)

library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
data <- data %>% 
  select(-Observation)

str(data)
## 'data.frame':    905 obs. of  9 variables:
##  $ Dist_Taxi    : int  9796 8294 11001 8301 10510 6665 13153 5882 7495 8233 ...
##  $ Dist_Market  : int  5250 8186 14399 11188 12629 5142 11869 9948 11589 7067 ...
##  $ Dist_Hospital: int  10703 12694 16991 12289 13921 9972 17811 13315 13370 11400 ...
##  $ Carpet       : int  1659 1461 1340 1451 1770 1442 1542 1261 1090 1030 ...
##  $ Builtup      : int  1961 1752 1609 1748 2111 1733 1858 1507 1321 1235 ...
##  $ Parking      : Factor w/ 4 levels "Covered","No Parking",..: 4 3 3 1 3 4 2 4 3 4 ...
##  $ City_Category: Factor w/ 3 levels "CAT A","CAT B",..: 2 2 1 2 2 2 1 3 2 3 ...
##  $ Rainfall     : int  530 210 720 620 450 760 1030 1020 680 1130 ...
##  $ House_Price  : int  6649000 3982000 5401000 5373000 4662000 4526000 7224000 3772000 4631000 4415000 ...
summary(data)
##    Dist_Taxi      Dist_Market    Dist_Hospital       Carpet     
##  Min.   :  146   Min.   : 1666   Min.   : 3227   Min.   :  775  
##  1st Qu.: 6477   1st Qu.: 9367   1st Qu.:11302   1st Qu.: 1317  
##  Median : 8228   Median :11149   Median :13189   Median : 1478  
##  Mean   : 8235   Mean   :11022   Mean   :13091   Mean   : 1511  
##  3rd Qu.: 9939   3rd Qu.:12675   3rd Qu.:14855   3rd Qu.: 1654  
##  Max.   :20662   Max.   :20945   Max.   :23294   Max.   :24300  
##                                                  NA's   :7      
##     Builtup              Parking    City_Category    Rainfall     
##  Min.   :  932   Covered     :184   CAT A:320     Min.   :-110.0  
##  1st Qu.: 1579   No Parking  :141   CAT B:351     1st Qu.: 600.0  
##  Median : 1774   Not Provided:225   CAT C:234     Median : 780.0  
##  Mean   : 1794   Open        :355                 Mean   : 786.9  
##  3rd Qu.: 1985                                    3rd Qu.: 970.0  
##  Max.   :12730                                    Max.   :1560.0  
##                                                                   
##   House_Price       
##  Min.   :  1492000  
##  1st Qu.:  4623000  
##  Median :  5860000  
##  Mean   :  6083992  
##  3rd Qu.:  7200000  
##  Max.   :150000000  
## 
#Debido a que las variables "Parking" y "City_Category" son de tipo categóricas, se transformaron a factores.

Ubicación de outlier

which(data$House_Price == 150000000)
## [1] 348

Generar el modelo

#Se identifó un outlier dentro de nuestros datos y se eliminará con propósitos de obtener un modelo no sesgado por este valor tan extremo.
df_nuevo <- data[-348, ]

regresion <- lm(House_Price~., data=df_nuevo)

summary(regresion)
## 
## Call:
## lm(formula = House_Price ~ ., data = df_nuevo)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3573707  -805345   -61164   760782  4399519 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          5.595e+06  3.672e+05  15.235  < 2e-16 ***
## Dist_Taxi            2.979e+01  2.682e+01   1.111   0.2670    
## Dist_Market          1.194e+01  2.080e+01   0.574   0.5659    
## Dist_Hospital        4.934e+01  3.008e+01   1.640   0.1013    
## Carpet              -5.242e+02  3.467e+03  -0.151   0.8799    
## Builtup              1.107e+03  2.893e+03   0.383   0.7021    
## ParkingNo Parking   -6.128e+05  1.387e+05  -4.419 1.11e-05 ***
## ParkingNot Provided -4.926e+05  1.235e+05  -3.990 7.16e-05 ***
## ParkingOpen         -2.635e+05  1.126e+05  -2.341   0.0194 *  
## City_CategoryCAT B  -1.877e+06  9.599e+04 -19.554  < 2e-16 ***
## City_CategoryCAT C  -2.895e+06  1.057e+05 -27.380  < 2e-16 ***
## Rainfall            -9.953e+01  1.541e+02  -0.646   0.5185    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1222000 on 885 degrees of freedom
##   (7 observations deleted due to missingness)
## Multiple R-squared:  0.5014, Adjusted R-squared:  0.4952 
## F-statistic: 80.89 on 11 and 885 DF,  p-value: < 2.2e-16

Notas/ajustes al modelo

Una vez se eliminó el valor outlier dentro de nuestro dataset, el R-squared bajó a 0.50, es un valor con desempeño moderado. Cuando se mantenía el valor del outlier el R-squared era mayor, sin embargo se optó por esta versión de modelo que, aunque sacrifica el desempeño en el R^2 se considera más confiable ya que no está presente el sesgo del valor extremo.

Como es visible en el resumen del modelo las variables: Dist_Taxi, Dist_Market, Dist_Hospital, Rainfall, Builtup y Carpet no presentan significancia estadística, por recomendación del profesor de optó por mantenerlas dentro del modelo ya que pueden aportar a la predicción, aunque sea en menor medida.

Además, se identificó que las variables Carpet y Builtup, muestran un efecto de multicolinealidad ya que miden lo mismo.

Predicciones

datos_nuevos <- data.frame(Dist_Taxi=9796, Dist_Market=5250, Dist_Hospital=10703, Carpet=1659, Builtup=1961, Parking="Open", City_Category="CAT B", Rainfall=530)

predict(regresion, datos_nuevos)
##       1 
## 5584721

Conclusiones

El modelo es altamente significativo (p-value menor al 5%) con un poder explicativo del 50%, lo cual demuestra un desempeño moderado.

Sobre los coeficientes con significancia estadística:

Tipo de estacionamiento: el precio de las casas se ve altamente influenciado por el tipo de estacionamiento que tiene, encontrando que las casas sin estacionamiento o con estacionamiento abierto disminuyen su precio. Las casas dentro de las city category B y C, reducen en valor de las casas, mientras que las casas dentro de la city category A incrementa su precio, esto está relacionado con el estatus de la zona en que se encuentran las casas.

En conclusión, el precio de las casas se ve influenciado por el espacio, el tipo de estacionamiento y categoría de ciudad donde se encuentra.