Data Study on Consumer's Purchases with Extra Cash

Posted on May 30, 2016
The skills we demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.
Contributed by Kelly Mejia Breton. She is currently in the NYC Data Science Academy 12 week full time Data Science Bootcamp program taking place between April 11th to July 1st, 2016. This post is based on her third class project - Web Scraping, due on the 6th week of the program.

                                                                                                        WTI Price -- Chart Source BloombergData Study on Consumer's Purchases with Extra Cash

Data shows oil prices have fallen sharply since the summer of 2014.  Prices bottomed in February 2016, since then they have gradually increased.  While the breakeven cost is a popular topic among investors, on the consumer side gasoline prices are very cheap.  I recall buying gasoline at under $2/gallon in New Jersey for a bit.

With energy prices trading at relatively low compared to 2014 prices, I wonder what consumers are doing with the extra cash they are saving?

Knowing where the consumer is spending is normally not public information.  Google Trends tracks the frequency of terms searched on their website and reports it as an index.  Although web search terms are not a guarantee that a purchase was made, it’s a good insight into the consumer’s thoughts. And a great indication of when and where advertising companies should advertise.

Could there be a possible relationship between some web search terms and gasoline prices?


The Data Set

Using Beautiful Soup I retrieved daily prices from the U.S. Energy Information Administration (EIA) website and store them in a MongoDB database.  The EIA updates their website daily with yesterdays close spot price.  To automate the process, I created a crontab that runs the python code daily at 7:00 am and stores the data in a database.

My primary concern was pulling the correct data, since the order of the prices could change at anytime without my knowledge.   To avoid this, I included the crude and product name as the lookup tool returning the position of the element.

Below is an example of the code I used for WTI:

WTI=[i for i, x in enumerate(WebScappedData) if x.text == 'WTI']


The code looks for the name of the price first, serving as a check, it adds the distance of price value from the name location,  and uses this to update the database.

U.S Retail Gasoline Prices

Here is an example of the data that I scrapped showed in a pandas dataframe with the name of each product along with the corresponding price per date.  From this dataset I will focus on U.S. Retail Gasoline Prices.

Data Study on Consumer's Purchases with Extra Cash


My goal is to use historic gasoline prices along with the Google Trends data and see if there are any potential linear relationships.  Ultimately fitting a simple regression model and using the scraped data to forecast consumer behavior.


I decided to take a closer look at a few web search terms to see if consumers are searching:


Starwood Hotels- possible vacations

Mercedes-Benz- luxury cars

Home Improvement- fixing up the house, or buying a house

Yoga- are they crude investors and considering some meditation to relax

Restaurant - eating out since they have more to spend

new borns- having babies


Web Search Terms



Taking a closer look at the charts at first glance it looks like Starwood Hotels has a spike in searches right around the time gasoline prices were at their lowest.  Maybe flights were also cheaper with the cheaper fuel?  Mercedes-Benz seem to also be near the highs when prices are at their lows. Home improvement appears to have a slight up tick at the end of 2015 beginning of 2016.

While yoga web searches have been increasing over time, does not look like low gasoline prices affected the frequency of the search.  Restaurants have an up tick in the middle of 2015 then drops then increases again, hard to tell from this chart if its around the time of low prices.  New borns searches have an up tick at the end of 2015 beginning of 2016, could be related to low gasoline prices.



Looking at the scatter plots we can get a better idea if possible relationships exist between web search terms and low gasoline prices.  Starwood Hotels do not seem to have much of a linear relationship but we can see that as prices were lower, searches reached new highs.  Mercedes-Benz and Home Improvement both seem to have an indirect relationship with low gasoline prices, as prices decreased searches increased.

However, Yoga and Restaurants do not appear to be affected by low gasoline prices, maybe they are part of consumers everyday life and not necessary something determined by extra cash they may have.   Eating out and meditating may be part of the consumers everyday expense.  Newborns appears  to have a relationship with low gasoline prices, having some extra cash could make consumer thing about expanding their families.

I decided to produce some simple linear regressions just to show how the scrapped data could be used, although please keep in mind I did not perform any of the test to make sure a linear regression was suitable.  As well as gasoline prices violate the assumption of independence since today's prices are related to yesterdays price.


Placing the US retail prices in the models these are the monthly forecast.  Once I have more daily data collected I will take the month-to-date average and apply it to the model to get a better forecast, assuming all the requirements are met.  Based on Friday’s gasoline prices Mercedes-Benz websearches are projected to be high in the 75% starwoods & home improvement are expected to be between the 50th and 75th Newborns seem to be slightly lower than the 75%.


Next steps

To test the data for normal distribution, constant variance and independence, and apply time series analysis, possibly a lagged variable.


About Author


KB is a driven and determined Senior Analyst with nearly 15 years of proven data analytics expertise. Most recently focused on forecasting short-term and long-term global crude oil and product prices for PIRA Energy Group. Previously held a...
View all posts by Breton >

Related Articles

Leave a Comment

No comments found.

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

#python #trainwithnycdsa 2019 2020 Revenue 3-points agriculture air quality airbnb airline alcohol Alex Baransky algorithm alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus ames dataset ames housing dataset apartment rent API Application artist aws bank loans 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 boston safety Bundles cake recipe California Cancer Research capstone car price Career Career Day citibike classic cars classpass clustering Coding Course Demo Course Report covid 19 credit credit card crime frequency crops D3.js data data analysis Data Analyst data analytics data for tripadvisor reviews data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization database Deep Learning Demo Day Discount disney dplyr drug data e-commerce economy employee employee burnout employer networking environment feature engineering Finance Financial Data Science fitness studio Flask flight delay gbm Get Hired ggplot2 googleVis H20 Hadoop hallmark holiday movie happiness healthcare frauds higgs boson Hiring hiring partner events Hiring Partners hotels housing housing data housing predictions housing price hy-vee Income Industry Experts Injuries Instructor Blog Instructor Interview insurance italki Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter las vegas airport lasso regression Lead Data Scienctist Lead Data Scientist leaflet league linear regression Logistic Regression machine learning Maps market matplotlib Medical Research Meet the team meetup methal health miami beach movie music Napoli NBA netflix Networking neural network Neural networks New Courses NHL nlp NYC NYC Data Science nyc data science academy NYC Open Data nyc property NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time performance phoenix pollutants Portfolio Development precision measurement prediction Prework Programming public safety 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 seafood type Selenium sentiment analysis sentiment classification Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau teachers team team performance TensorFlow Testimonial tf-idf Top Data Science Bootcamp Top manufacturing companies Transfers tweets twitter videos visualization wallstreet wallstreetbets web scraping Weekend Course What to expect whiskey whiskeyadvocate wildfire word cloud word2vec XGBoost yelp youtube trending ZORI