Price of Airbnb: NYC Airbnb Pricing EDA Data Sets
The skills I demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.
Airbnb is part of the “sharing economy”, which takes a unique approach toward lodging. It offers you someone’s home as a place to stay instead of a hotel. Airbnb has had explosive growth over the last decade, both in terms of the number of total users and global Airbnb listings worldwide. By March 2020, there are more than 2 million people staying one Airbnb per night. One of the main reasons why people rent an Airbnb property is that it is more cost-effective than staying at a hotel, and this is also the reason why Airbnb is a great option for many people who travel to New York.
There are over millions of visitors come to New York each year and potentially looking for an Airbnb place to stay, which create a huge New York Airbnb market. The project investigates the question that both Airbnb user and hosts would care the most, which is what are factors that can affect the listing price?
Therefore, for the benefit of Airbnb owners, they know better on how to adjust their price to maximize profits; for costumers, they can also infer how to plan their trips wisely.
All the data is sourced from Inside Airbnb, which hosts public available data from Airbnb.
The two main data sets:
Listing: Detailed listings data showing 96 attributes for each of the listings. Some attributes used in the project are Price (continuous), Longitude (continuous), Latitude (continuous), Listing_type (categorical), neighborhood (categorical), ratings (continuous) among others.
Reviews: Detailed reviews given by the guests with 6 attributes, including Data (datetime), Listing_id (discrete), reviewer_id (discrete) and comment (textual).
In order to discover the potential factors relevant to price, my approach was to first visualize users’ reviews. I used R dplyr, tidyr, and tibble packages to break down all the Airbnb reviews’ individual words and count their frequency except the stops words and nonsense words. Through wordcloud visualization, I see that people talk about location, subway, and host, etc. the most, which inspire me to answer questions such as:
How price shifts based on different neighborhoods? Do the distances to subway affects prices? Besides those, I also want to know what are the demand patterns over each season? How price varied over months, weeks, and holidays?
To inspect whether location affects listing price, I visualized the average price over neighborhoods. Take Manhattan as an example, the graph shows that the neighborhoods close to the central city or famous attractions have higher prices, such as Tribeca, Battery Park City, and Little Italy. Besides Manhattan, user can also explore the trends in Brooklyn, Queens, Staten Island, and Bronx in my shiny app.
Distances to Subway:
Since we identify that Airbnb users talk about subways a lot, according to my experiences, I assume the accessibility to transportation would also be an important factor that affects the listing and property price. To explore whether the distance to the subway is relevant to price or not, I need to first calculate the distance between each unique listing and the subway.
Since I didn’t have this information available, I found NYC subway geo data and calculated the data I need. I matched each listing’s longitude and latitude to its closest subway entrance’s longitude and latitude by geosphere package in combination with mapply function in r to creatively did the math. Although, the scatter plot and flat regression line told me that the distance to subway has no correlation to price, this is a great experience to realize my idea by data analytics tools.
When it comes to seasonality, I specified the trends by month, weekdays, and holidays. In the shiny app, users can select different years from 2017 to 2019 to compare and contrast the seasonality patterns.
Price over Months:
By scatter plot, we could easily identify that the price is climbing from January towards the end of the year for 2017 and 2018. However, year 2019 shows an abnormal pattern. There is a dramatic price increase from April to October, then the price drop sharply till the December. One reason behind it may because that Airbnb first adjusted their price higher in 2019. However, when Airbnb listing price became too high, Airbnb loose its competitive advantages comparing to hotel price. Thus, visitors no longer prefer rent a Airbnb home. Under the pressure, Airbnb might cut its increased listing price, which counts for the reason of its price declining.
Price by Day of the Week:
Besides the monthly pattern, Friday and Saturday’s prices are overall higher than any other weekdays. This makes sense because people usually start their vacation or trip on Friday, and Sunday is the day that people leaving their Airbnb and going back to work.
Price over Holidays:
When I match the date data with the US holiday calendar, I also find that Christmas day and New Year’s Day make a larger impact over price than other holidays.
In the end, in order to best present and visualize the findings, I created an interactive shiny app so that user can explore the data sets by different metrics. This project is an ongoing project, since the time was limited when I did that, I wasn’t able to explore factors such as super host, and occupancy etc.. As my study proceeds, I want to apply machine learning to Airbnb pricing and create an Airbnb pricing tool to help Airbnb owner to manage the prices.
A link to my Shiny App: https://lanqing-yang.shinyapps.io/NYC_Airbnb/