Hotels vs Airbnb - Barcelona case study (proof of concept)
The skills the authors demonstrated here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.
1 - Background and motivation
During the last few years, the sharing economy has become more and more ubiquitous, from taxi riding applications to DIY and so on. The Real Estate market is no exception and in the Hotels and Hospitality sector, we have seen more of these examples. Among them is Airbnb, a company based in San Francisco that operates an online marketplace and hospitality service that has had a bigger impact.
The main objective of this case study is to assess the impact of Airbnb and review the hotel prices compared with the accommodation offered by Airbnb. Although it would be a preference to have an in-depth analysis of this case study. But due to the complexity of data variables and various data outcomes, we present an initial analysis of the pricing competition between Airbnb and the Hotels within the city of Barcelona.
We have used two main datasets in this case study; hotels' location and pricing data and Airbnb listings. The hotels' datasets were obtained by data scraping from the Tripadvisor.com website, we will get more in detail soon, and the Airbnb datasets were downloaded from the site insideairbnb.com
2 - Scraping Tripadvisor Hotels dataset
Scraping has becoming more and more popular recently due to the amount of data present on the world wide web today. Scraping TripAdvisor has allowed us to extract a complete list of the hotels in Barcelona (518 in total) together with price information (for 418 of them). The price data shown are expressed in USD charged for a room for two people booking on the night of the 22nd of October of 2018.
We decided to use this date mainly because it is a low season in Barcelona and it allows us to make a more direct comparison with Airbnb prices. For scraping, we used a Python environment and two main scraping libraries; Selenium, and Scrapy. The reason why Selenium was needed due to the number of choices allowed for users selections on the TripAdvisor website. This allows us to accurately filter the data to show hotels based on the chosen date, 22nd of October as previously mentioned.
One of the downsides of Selenium is processing speed. In order to speed up the scraping process, we have decided to eliminate any graphical contents. With Selenium, we were able to get a complete list of hotels in Barcelona with their prices and a link to the specific hotels TripAdvisor website. This link is the information that will allow our Scrapy crawler to get the remaining information we were looking for; the location and star rating of each of the hotels. Scrapy then was used to speed up the gathering of information of each hotel namely the hotel's full address, reviews, ranking, and star rating.
In the images below we can see both the hotels list exported as well as the hotels' details
3 - Hotels data exploration
Using cartoframes (CARTOs Python environment for data scientists) we can easily see how the hotels are mainly concentrated in the center of Barcelona, also with higher booking prices in this area.
4 - Price comparison
Initially, we plotted the distribution of prices for both hotels and Airbnb listings to see the big picture on how they compare. This initial analysis already gives some initial conclusions and we see as hotels are in general more expensive than Airbnb locations.
For a more detailed comparison, we used the simple yet effective Machine Learning algorithm of nearest neighbors. For this purpose, we used R software and the package nngeo which computes the K-nearest neighbour calculations considering the geographic attributes of the locations considered. We computed the K=20 nearest neighbours limiting our search to the locations within a radius of 500 m. Both the considered Airbnb locations as well as the lines connecting them to each hotel are represented on the map. For this purpose where only selected Airbnb listings with a 'Real Bed' and with accommodation for between 1 and 3 people, in order to compare like for like.
Finally, we computed the average price for all the 20 locations near to our target hotel and also the difference to the actual hotel price. This is the main dataset presented in this study and that is shown on the interactive map done with CARTO.
Some of the main conclusions that can be extracted from the analysis are:
- Budget hotels (1 and 2 stars) are the less affected by Airbnb listings with just a difference of $14 dollars per night among them.
- Hotels more centrally located show more fierce competition with their Airbnb neighbors, with fewer central hotels less affected.
- Luxury hotels are the ones that present the biggest differences, but as mentioned previously we should further work on the Airbnb data to make like-for-like comparisons in this segment of the market.
- Finally, there are a few hotels that show a cheaper price than their Airbnb neighbours, so look for those!
Finally, as a conclusion just to highlight how this type of analysis shows how individual hotels are affected by Airbnb competition and can also be used in order to decide where to locate a new hotel.