Effect of Home Renovation on Price in Ames, Iowa

Posted on Dec 6, 2020

Link to the GitHub repo


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 distribution of homes and price range around 27 neighborhoods in Ames shown in the charts below:


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.

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.     

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.


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

About Authors

Hong Chan Kim

Hong is a data science fellow at New York City Data Science Academy (NYCDSA) with expected graduation date of December 2020. His domain expertise lies in the US equity market, where he spent 7 years in the hedge...
View all posts by Hong Chan Kim >

Leave a Comment

No comments found.

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

#python #trainwithnycdsa 2019 airbnb Alex Baransky alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus API Application artist aws beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep Bundles California Cancer Research capstone Career Career Day citibike clustering Coding Course Demo Course Report D3.js data Data Analyst data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization Deep Learning Demo Day Discount dplyr employer networking feature engineering Finance Financial Data Science Flask gbm Get Hired ggplot2 googleVis Hadoop higgs boson Hiring hiring partner events Hiring Partners Industry Experts Instructor Blog Instructor Interview Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter lasso regression Lead Data Scienctist Lead Data Scientist leaflet linear regression Logistic Regression machine learning Maps matplotlib Medical Research Meet the team meetup music Networking neural network Neural networks New Courses nlp NYC NYC Data Science nyc data science academy NYC Open Data NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time Portfolio Development prediction Prework Programming PwC python Python Data Analysis python machine learning python scrapy python web scraping python webscraping Python Workshop R R Data Analysis R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn Selenium sentiment analysis Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau team TensorFlow Testimonial tf-idf Top Data Science Bootcamp twitter visualization web scraping Weekend Course What to expect word cloud word2vec XGBoost yelp