Data Visualization on the Effect of Home Renovation Price
The skills I demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.
Link to the GitHub repo
Background
Ames, Iowa, home to Iowa State University ("the Cyclones") boasts an annually growing population over 67,000. The city ranks fairly high in CNNMoney's Best Places to Live consistently. Those seeking a home in their price range in that city can look through the data distribution of homes and price range around 27 neighborhoods in Ames shown in the charts below:
Goal
Home price is driven by variables that are not only idiosyncratic to the home itself but also by exogenous factors like the broader economy. The goal of this project is to determine whether it makes sense for a homeowner to renovate his/her home in order to improve the sales price by utilizing various machine learning techniques and a dataset of over 2,600 homes sold between 2006-2010 with 80+ features.
Data Analysis - Feature Selection
Multipronged approach was taken to reduce the number of features into 17 for the multiple linear regression model that fit log of home price and into 13 for the multiple linear regression model that fit home price per gross living area.
- Qualitative EDA (Exploratory Data Analysis): Some features could be eliminated quickly because of extreme class imbalance, lack of relationship vs. the target, and/or too many missing values.
- Comparing p-values from f_regression and mutual information scores: Top 25 features were extracted using both methods. There was a healthy overlap between the two methods, and all 25 features were statistically significant.
- Random forest regressor feature importance: The random forest with the best hyperparameters from GridSearchCV was used for feature selection. Top 25 features were extracted, but the significance dropped off quickly after the top 5 features
- Lasso penalization: Lasso penalized regression models with different alpha values were used to eliminate features with coefficients that dropped off to 0 faster than others
- Multicollinearity analysis: Multiple linear regression model with one feature as a label and all other features as predictors was fitted, and features that were highly correlated with other features were dropped.
In addition, two new features (nn5meansaleprice, nn5medsaleprice) were engineered to improve the model fit. Given the latitude and longitude of each house, distance between each pair of homes was computed and for each home, mean and median of log of price of nearest 5 neighbors were computed. A similar rationale was used to engineer nn5meanprice and nn5medprice, which are nearest 5 neighbors' mean and median price per area, respectively.
Data Analysis - Multiple Linear Regression
The multiple linear regression model for log of price vs. final 17 features is shown below.
The model had an adjusted R2 of 0.854. Interestingly however, using only the 4 most important features (YearBuilt, TotalBsmtSF, GrLivArea, nn5meansaleprice) yielded a model with adjusted R2 of 0.829. Other less important features, such as KitchenQual and BsmtQual, had limited impact on log of home price. This suggests that there isn't much an owner can do to maximize home prices in Ames, i.e., home prices are heavily dependent on intrinsic characteristics of the homes. This is a clear contrast to the visible increase in price by improving kitchen quality or exterior quality as shown below.
These contradictory results may be explained by the influence of living area as a variable. The multiple linear regression model for price per area vs. final 13 features is shown below.
Although R2 of 0.64 is lower than the prior model, less important features from the prior model, such as KitchenQual, are much more significant. For example, improving kitchen quality to excellent improves price per area by ~$12.50/sq. ft.
Conclusion
Raw data of home prices in Ames, Iowa with over 2600 samples and 80 features was polished to fit a multiple linear regression model and determine whether an owner should renovate his/her home before selling. The variables that contribute the most to home prices are intrinsic in nature (year built, living area, price of nearest neighbors, etc.) and therefore are outside the homeowners' control. If the owner still were to renovate, improving kitchen quality will have the greatest impact on price per area.
Appendix: Feature Description
Multiple Linear Regression for Log of Price
- YearBuilt: Original construction date
- TotalBsmtSF: Total sq. ft. of basement area
- GrLivArea: Above grade (ground) living area sq. ft.
- nn5meansaleprice: Log of mean home price of 5 nearest neighbors
- MSSubClass: Whether a home is a 2-story and 1946 or newer (1 = True)
- Neighborhood: Whether a home is in Northridge Height (1 = True)
- ExterQual: Whether the external material quality is good (1 = True)
- Foundation: Whether the foundation is made of cinder block (1 = True)
- BsmtQual: Whether the basement height is 100 inches or higher (1 = True)
- HeatingQC: Whether the heating quality is typical (1 = True)
- FullBath: Number of full bathrooms above grade
- TotRmsAbvGrd: Total rooms above grade (not including bathrooms)
- KitchenQual: Whether kitchen quality is good (1 = True)
- Fireplaces: Number of fireplaces
- GarageType: Whether the garage is detached from home (1 = True)
- GarageFinish: Whether the garage interior is finished (1 = True)
- GarageCars: Size of garage in car capacity
Multiple Linear Regression for Price Per Area
- MSSubClass: Whether a home is a 1.5-story and finished (1 = True)
- HouseStyle: Whether a home is a 1.5-story and 2nd floor is finished (1 = True)
- Neighborhood: Whether a home is in Northridge Height (1 = True)
- YearBuilt: Original construction date
- ExterQual: Whether the external material quality is good (1 = True)
- Foundation: Whether the foundation is made of brick and tile (1 = True)
- BsmtQual: Whether the basement is 100 in or higher (1 = True)
- BsmtFinSF1: Type 1 finished basement sq. ft.
- BsmtFullBath: Number of full bathrooms in the basement
- BedroomAbvGr: Bedrooms above grade (does not include basement)
- KitchenQual: Whether kitchen quality is excellent (1 = True)
- GarageArea: Size of garage in sq. ft.
- nn5meanprice: Mean price per area of 5 nearest neighbors