Bienes raices

Objetivo

Una compañía quiere analizar las carácteristicas que tienen las casas con un mayor precio.

Para poder determinar que caracteristicas físicas de la casa tienen relación al costo de la casa.

Una vista de nuestros datos

Muestra de datos
MSSubClass MSZoning LotFrontage LotArea Street Alley LotShape LandContour
1 60 RL 65 8450 Pave No Alley Reg Lvl
2 20 RL 80 9600 Pave No Alley Reg Lvl
3 60 RL 68 11250 Pave No Alley IR1 Lvl
4 70 RL 60 9550 Pave No Alley IR1 Lvl
5 60 RL 84 14260 Pave No Alley IR1 Lvl
6 50 RL 85 14115 Pave No Alley IR1 Lvl
Muestra de datos
Utilities LotConfig LandSlope Neighborhood Condition1 Condition2 BldgType
1 AllPub Inside Gtl CollgCr Norm Norm 1Fam
2 AllPub FR2 Gtl Veenker Feedr Norm 1Fam
3 AllPub Inside Gtl CollgCr Norm Norm 1Fam
4 AllPub Corner Gtl Crawfor Norm Norm 1Fam
5 AllPub FR2 Gtl NoRidge Norm Norm 1Fam
6 AllPub Inside Gtl Mitchel Norm Norm 1Fam
Muestra de datos
HouseStyle OverallQual OverallCond YearBuilt YearRemodAdd RoofStyle RoofMatl
1 2Story 7 5 2003 2003 Gable CompShg
2 1Story 6 8 1976 1976 Gable CompShg
3 2Story 7 5 2001 2002 Gable CompShg
4 2Story 7 5 1915 1970 Gable CompShg
5 2Story 8 5 2000 2000 Gable CompShg
6 1.5Fin 5 5 1993 1995 Gable CompShg

Datos de entrenamiento y de prueba

Se tomaron las variables de la base de datos de mayor relevancia para el objetivo en cuestión.

Se escogieron el 20% de los datos para tomarlos como datos de prueba y se modela el arbol de clasificación con el 80% de los datos (1460 observaciones).

Se preparo la base de datos pues de las características recolectadas sobre las casas son variables y no existe ninguna casa que telga todas las caracteristicas recolectadas. Por lo que se actualizaron los datos para modificar los niveles de algunas variables factor y que pudieran tener un nivel donde se especificara que no existia esa caracteristica en determinada casa.

La variable continua a modelar es el precio de la casa por lo que buscamos que todas las casas en entrenamiento tengan un precio asignado, por lo tanto tambien se hara la busqueda y eliminación de estos datos.

Arbol de regresión

Los nodos obtenidos del modelo son los siguientes, con sus respectivas probabilidades.

## n= 917 
## 
## node), split, n, deviance, yval
##       * denotes terminal node
## 
##   1) root 917 5.873917e+12 185976.60  
##     2) OverallQual< 7.5 765 1.694821e+12 160977.40  
##       4) Neighborhood=Blueste,BrDale,BrkSide,Edwards,IDOTRR,MeadowV,Mitchel,NAmes,NPkVill,OldTown,Sawyer,SWISU 429 4.681088e+11 136403.40  
##         8) GrLivArea< 1377 268 1.742947e+11 124658.20  
##          16) Neighborhood=BrDale,BrkSide,Edwards,IDOTRR,MeadowV,OldTown,SWISU 122 6.851690e+10 109363.80  
##            32) OverallCond< 4.5 20 7.131780e+09  83410.55 *
##            33) OverallCond>=4.5 102 4.527228e+10 114452.60  
##              66) X1stFlrSF< 1054 76 2.586617e+10 108506.90  
##               132) TotalBsmtSF< 619.5 17 5.117847e+09  91423.12 *
##               133) TotalBsmtSF>=619.5 59 1.435719e+10 113429.30  
##                 266) MSSubClass< 37.5 25 6.689494e+09 105782.00 *
##                 267) MSSubClass>=37.5 34 5.130629e+09 119052.40 *
##              67) X1stFlrSF>=1054 26 8.865777e+09 131832.50 *
##          17) Neighborhood=Blueste,Mitchel,NAmes,NPkVill,Sawyer 146 5.339242e+10 137438.50  
##            34) X1stFlrSF< 1058.5 78 2.422425e+10 128071.80  
##              68) BsmtFullBath< 0.5 39 1.137937e+10 118670.30 *
##              69) BsmtFullBath>=0.5 39 5.950569e+09 137473.30 *
##            35) X1stFlrSF>=1058.5 68 1.447504e+10 148182.70  
##              70) GarageYrBlt< 1962.5 34 5.049165e+09 141255.10 *
##              71) GarageYrBlt>=1962.5 34 6.162464e+09 155110.30 *
##         9) GrLivArea>=1377 161 1.953036e+11 155954.30  
##          18) GarageFinish=Unf 111 1.045425e+11 145972.10  
##            36) KitchenQual=Fa,TA 76 3.941934e+10 137687.80  
##              72) BsmtFinSF1< 191.5 44 2.196730e+10 128710.80 *
##              73) BsmtFinSF1>=191.5 32 9.030689e+09 150031.20 *
##            37) KitchenQual=Ex,Gd 35 4.858157e+10 163960.80 *
##          19) GarageFinish=Fin,RFn 50 5.514639e+10 178114.70  
##            38) GarageArea< 485.5 24 1.003546e+10 158677.10 *
##            39) GarageArea>=485.5 26 2.767300e+10 196057.20 *
##       5) Neighborhood=Blmngtn,ClearCr,CollgCr,Crawfor,Gilbert,NoRidge,NridgHt,NWAmes,SawyerW,Somerst,StoneBr,Timber,Veenker 336 6.368727e+11 192353.20  
##        10) GrLivArea< 1725.5 236 2.281228e+11 176242.30  
##          20) GrLivArea< 1204 50 1.808124e+10 142034.00  
##            40) YearRemodAdd< 1977.5 17 6.294410e+09 127050.00 *
##            41) YearRemodAdd>=1977.5 33 6.003697e+09 149753.10 *
##          21) GrLivArea>=1204 186 1.358027e+11 185438.10  
##            42) TotalBsmtSF< 1469 156 8.395260e+10 179697.70  
##              84) Neighborhood=Crawfor,Gilbert,NWAmes,SawyerW,Somerst,Timber 104 3.595292e+10 173253.50  
##               168) YearRemodAdd< 1980.5 26 1.513334e+10 160057.70 *
##               169) YearRemodAdd>=1980.5 78 1.478312e+10 177652.10  
##                 338) TotalBsmtSF< 705.5 21 3.123532e+09 165182.40 *
##                 339) TotalBsmtSF>=705.5 57 7.191183e+09 182246.20  
##                   678) OpenPorchSF< 42 32 2.241727e+09 177526.10 *
##                   679) OpenPorchSF>=42 25 3.323921e+09 188288.00 *
##              85) Neighborhood=Blmngtn,ClearCr,CollgCr,NridgHt,Veenker 52 3.504315e+10 192586.00  
##               170) BsmtFullBath< 0.5 32 1.245962e+10 182410.80 *
##               171) BsmtFullBath>=0.5 20 1.396938e+10 208866.40 *
##            43) TotalBsmtSF>=1469 30 1.997855e+10 215288.30 *
##        11) GrLivArea>=1725.5 100 2.029276e+11 230375.00  
##          22) BsmtFinSF1< 848.5 82 1.045567e+11 218708.90  
##            44) KitchenQual=TA 24 1.417998e+10 189462.20 *
##            45) KitchenQual=Ex,Gd 58 6.135316e+10 230811.00  
##              90) GrLivArea< 1941 28 1.311849e+10 212928.20 *
##              91) GrLivArea>=1941 30 3.092312e+10 247501.60 *
##          23) BsmtFinSF1>=848.5 18 3.637056e+10 283520.70 *
##     3) OverallQual>=7.5 152 1.294801e+12 311795.00  
##       6) TotRmsAbvGrd< 9.5 125 5.198467e+11 289566.00  
##        12) BsmtFinSF1< 1227 95 2.912517e+11 271463.40  
##          24) GarageArea< 537.5 25 5.441718e+10 223651.10 *
##          25) GarageArea>=537.5 70 1.592733e+11 288539.20  
##            50) Neighborhood=CollgCr,Mitchel,NAmes,NWAmes,Somerst,StoneBr,Timber 35 6.173956e+10 266979.90 *
##            51) Neighborhood=NoRidge,NridgHt,OldTown 35 6.499754e+10 310098.50 *
##        13) BsmtFinSF1>=1227 30 9.887921e+10 346890.80 *
##       7) TotRmsAbvGrd>=9.5 27 4.272328e+11 414707.30 *

Las personas que asistieron a la última campaña promocional tienen una gran probabilidad de asistir a la siguiete, más aún las personas que asistieron a la primera y a la última campaña tienen una probabilidad del 0.81 de asistir a la siguiente campaña.

Por otro lado las personas que solo asistieron a la última campaña sin haber asistido a la primera y su última compra se realizó a lo más hace 22 días tendrán un 0.74 de probabilidad de asistir a la siguiente campaña. De esta forma nuestro modelo clasifica bien el 74% de nuestros datos.

El arbol es el siguiente:

rpart.plot(tree_model)

Predicción

Realizamos la predicción de los datos respecto a los datos que elegimos de prueba

##     1438      630      640     1420      594       NA 
## 346890.8 155110.3 266979.9 283520.7 149753.1 128071.8

Las siguientes características son las que le dan un mayor o menor precio a una casa

  • Si se tiene una calidad en los materiales payor a 7.5 u 8.5
  • Si la superficie habitable es mayor que 1921.5 pies
  • Si el área total sel sotano es mayor o igual que 1394.5 en pies cuadrados
  • Si el área del primer piso es mayor igual que 1305.5 en pies cuadrados del primer piso

Las caracteristicas de una casa con alto precio son la calidad de los materiales con los cuales esta hecha la casa, el tamaño de del primer pisi y el tamaño del sotano son caracteristicas determinantes, otro de caracteristicas es el garage de una casa y el tamaño de la alberca con el que cuente dicha casa.

Random Forest

Es conveniente muchas veces realizar un random Forest para evitar overfitting en el ajuste por lo tanto se modelara un bosque donde escencialmente se hacen particiones de los datos de entrenamiento para podeteriormente modelar con esa pequeña partición los datos y encontrar un ajuste generalizado para los datos.

library(randomForest)
## randomForest 4.6-14
## Type rfNews() to see new features/changes/bug fixes.
## 
## Attaching package: 'randomForest'
## The following object is masked from 'package:dplyr':
## 
##     combine
set.seed(123)

# Ajustar modelo
modelo <- randomForest(SalePrice~., data=dat_train)

# Resumen del ajuste del modelo
modelo
## 
## Call:
##  randomForest(formula = SalePrice ~ ., data = dat_train) 
##                Type of random forest: regression
##                      Number of trees: 500
## No. of variables tried at each split: 26
## 
##           Mean of squared residuals: 922628750
##                     % Var explained: 85.6

La impotancia de las variables es la siguiente:

modelo$importance
##               IncNodePurity
## MSSubClass     1.020786e+10
## MSZoning       7.555093e+09
## LotFrontage    2.840529e+10
## LotArea        9.008740e+10
## Street         6.112503e+07
## Alley          1.762203e+09
## LotShape       1.005398e+10
## LandContour    8.013727e+09
## Utilities      0.000000e+00
## LotConfig      9.448703e+09
## LandSlope      3.704919e+09
## Neighborhood   8.705739e+11
## Condition1     5.516049e+09
## Condition2     2.543025e+09
## BldgType       3.350494e+09
## HouseStyle     1.169478e+10
## OverallQual    1.379070e+12
## OverallCond    1.760973e+10
## YearBuilt      1.026872e+11
## YearRemodAdd   4.185476e+10
## RoofStyle      6.871935e+09
## RoofMatl       2.125589e+09
## Exterior1st    3.148317e+10
## Exterior2nd    4.331397e+10
## MasVnrType     1.025493e+10
## MasVnrArea     2.915187e+10
## ExterQual      2.801276e+11
## ExterCond      3.517037e+09
## Foundation     5.636323e+09
## BsmtQual       1.252771e+11
## BsmtCond       4.641123e+09
## BsmtExposure   2.008597e+10
## BsmtFinType1   2.719070e+10
## BsmtFinSF1     1.551832e+11
## BsmtFinType2   4.231456e+09
## BsmtFinSF2     3.467419e+09
## BsmtUnfSF      2.692156e+10
## TotalBsmtSF    3.107501e+11
## Heating        1.306230e+09
## HeatingQC      9.736598e+09
## CentralAir     3.878316e+09
## Electrical     1.720128e+09
## X1stFlrSF      1.906166e+11
## X2ndFlrSF      1.528502e+11
## LowQualFinSF   1.649575e+09
## GrLivArea      5.801885e+11
## BsmtFullBath   1.330277e+10
## BsmtHalfBath   6.852396e+08
## FullBath       6.464146e+10
## HalfBath       5.298789e+09
## BedroomAbvGr   1.228716e+10
## KitchenAbvGr   1.074196e+09
## KitchenQual    2.148708e+11
## TotRmsAbvGrd   1.079502e+11
## Functional     2.208256e+09
## Fireplaces     2.786141e+10
## FireplaceQu    3.360319e+10
## GarageType     1.936762e+10
## GarageYrBlt    2.935947e+10
## GarageFinish   2.420972e+10
## GarageCars     3.630542e+11
## GarageArea     1.646926e+11
## GarageQual     2.024200e+09
## GarageCond     1.025895e+09
## PavedDrive     1.129095e+09
## WoodDeckSF     2.162023e+10
## OpenPorchSF    2.646457e+10
## EnclosedPorch  4.817244e+09
## X3SsnPorch     2.817725e+08
## ScreenPorch    4.911859e+09
## PoolArea       7.793719e+09
## PoolQC         8.720146e+09
## Fence          6.638772e+09
## MiscFeature    1.746634e+08
## MiscVal        3.018945e+08
## MoSold         1.373910e+10
## YrSold         8.963113e+09
## SaleType       8.321810e+09
## SaleCondition  1.881593e+10

Según la importancia del modelo las variables más relevantes son el callejon donde se encuantra ubicada, el área del lote de la construcción, el año de construcción, las utilidades, el patio y la condicion de venta que se acordará.

Prediccion de datos

# Hacer predicciones
predicciones <- predict(modelo, dat_test)

# Matriz de confusión
head((mc <- with(dat_test,table(predicciones, SalePrice))),1)
##                   SalePrice
## predicciones       40000 66500 68500 76000 78000 79500 79900 83000 84900 85400
##   94744.2272666667     0     0     1     0     0     0     0     0     0     0
##                   SalePrice
## predicciones       86000 87000 87500 88000 89000 90000 90350 91000 92900 93500
##   94744.2272666667     0     0     0     0     0     0     0     0     0     0
##                   SalePrice
## predicciones       94500 95000 97500 98000 98600 99500 100000 102000 103000
##   94744.2272666667     0     0     0     0     0     0      0      0      0
##                   SalePrice
## predicciones       104900 105000 106000 107000 107500 108000 108480 108959
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       109500 109900 110000 111000 111250 113000 115000 116000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       116050 117000 117500 118000 118400 118500 118858 119000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       119200 119500 120000 122000 122900 123000 124000 124500
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       125000 125500 126000 126500 127000 127500 128000 128200
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       128500 129000 129500 130000 130250 130500 131400 131500
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       132000 132500 133000 133700 133900 134000 134800 135000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       136500 136900 136905 137000 137500 138000 138887 139000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       139400 139500 139900 139950 140000 140200 142000 142600
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       143000 143750 144000 144500 145000 145500 147000 147500
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       148000 148500 148800 150000 150500 151000 151500 152000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       153000 153500 154000 155000 155835 156000 157000 158000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       159000 159434 159500 160000 162900 163000 164000 164500
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       165000 165150 165500 165600 166000 167000 167500 168500
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       169000 169500 170000 171500 171750 171900 172500 173000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       173500 174000 174500 174900 175000 175500 175900 176000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       176500 177000 178000 178900 179600 179900 180000 180500
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       183000 183900 185000 185500 185900 186000 187000 187500
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       188000 189000 190000 192000 192500 193000 193500 194000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       194500 194700 195000 196000 196500 197000 197900 200000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       201000 202500 204000 204750 205000 206900 207500 208300
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       209500 210000 212000 213000 213250 213500 214000 214900
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       215000 216000 217500 219210 219500 220000 221000 221500
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       223000 224000 224500 224900 225000 226000 227000 227680
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       228000 228500 229000 229456 230000 233230 234000 235000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       239000 239900 240000 241000 242000 243000 244400 244600
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       250000 250580 252000 253000 254900 255000 256000 257000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       258000 260000 260400 261500 262500 263435 264132 264561
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       265000 266500 267000 269500 269790 270000 271900 272000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       274725 274970 275000 276000 277000 279500 280000 281213
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       289000 290000 295000 297000 301000 305000 309000 313000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       316600 317000 318061 328000 335000 345000 350000 361919
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       367294 372402 372500 377426 377500 378500 381000 385000
##   94744.2272666667      0      0      0      0      0      0      0      0
##                   SalePrice
## predicciones       386250 392500 394617 410000 451950 466500 582933 755000
##   94744.2272666667      0      0      0      0      0      0      0      0

Correctitud del bosque

# % correcto
100 * sum(diag(mc)) / sum(mc)
## [1] 0.6622517

El modelo aproxima un 87% los datos para poder determinar la relación de las caracteristicas de una casa con un precio alto.

Conclusiones

Existen características que aparentemente pueden ser relevantes para el precio de una casa como tener ático, alberca, etc. Pero respecto a los datos estudiados puede que alguna de las caracteristicas que antes se pensaban, eran determinantes, no lo son. Son más relevantes las caracteristicas como el tamaño del lote que si tiene ático por ejemplo, el sistema electrico que tiene, el aire acondicionado con el que cuenta la casa, el año de venta, condiciones de garage y el tamaño del patio.