Amsterdam Apartment, iamsterdam.com

Background Information – Amsterdam Airbnb Market

Amsterdam as a world-class tourism city greets millions of tourists from all over the world. However, like many other European cities, it’s so popular during the Summer that city officials want to decrease their visitors to improve the experience for all tourists and residents. Those who live in Amsterdam permanently not only face frequent belligerently intoxicated tourists on ‘moral holidays’, but they also pay more for housing – perhaps due to the short-term rental (STR) market propped up by the crush of visitors. Regulations have been passed to limit the spread and availability of STR’s like Airbnb through local bans and annual day limits on full home rentals, but their execution upsets many landlords. Owners want more consistency between cities and less fragility in their investments, but the regulations will continue to change as policymakers reach a consensus.

Airbnb’s are currently clustered in Amsterdam toward the historic centre of the city, but the market may shift. Crowd control and rental regulations closer to the center may result in more opportunities for those outside the central city to host B&B’s, private rooms, or an STR during their vacation elsewhere. With a new host market and with more data coming in from local STR registration requirements, data professionals can create a better B&B set up process through tools like price prediction.

Like any business or landlord, Airbnb hosts are motivated to list their property by the potential profit. Price prediction serves new and current hosts by giving them a better estimation of their bottom line than the usual set up process. Airbnb itself gives general guidelines and offers a model of their own to dynamically adjust pricing, but it still requires a maximum and minimum. Other tools display benchmarks for hosts, but they have fewer listings to compare outside the cluster. As data professionals, we can do this better.

Model Host, the name we’re giving our prediction tool, can serve these new people, especially ones outside the historic centre, with estimates of a current or potential property’s rental value. Anticipating Amsterdam’s mission to trade high-quantity tourism for high-quality experiences, our model here aims to grow responsible hosting opportunities, and promote a diversity of Airbnb locations in Amsterdam. When integrated into a user interface, residents could use price prediction to quickly see what opportunities are available to them. The following analysis aims to build this tool to benefit hosts and their visitors.

Data Source

We acquired data from several reliable sources:

Airbnb Data (including price, location, amenities, room compositions, etc.) is acquired from Kaggle, a platform for sharing data set particularly for machine learning. This contains airbnb data in Amsterdam from 2017 December to 2018 December (hence, primarily data for the year of 2018). Although due to the pandemic, tourism in Amsterdam might have undergone changes and variation, this is the best possible data we have available, and we believe it would produce some insights. (https://www.kaggle.com/datasets/erikbruin/airbnb-amsterdam?select=listings.csv)

Neighborhood and surrounding amenities data is acquired from City of Amsterdam’s online geo data portal, ‘Maps Data.’ (https://maps.amsterdam.nl/open_geodata/?LANG=en)

In addition, we supplemented data about tourist attrations from ‘Tourpedia,’ an online data portal with tourism-related data of several European cities. (http://tour-pedia.org/about/datasets.html)

source("https://raw.githubusercontent.com/urbanSpatial/Public-Policy-Analytics-Landing/master/functions.r")

library(tidyverse)
library(sf)
library(RSocrata)
library(viridis)
library(spatstat)
library(ggplot2)
library(raster)
library(spdep)
library(FNN)
library(mapview)
library(grid)
library(gridExtra)
library(knitr)
library(stringr)
library(kableExtra)
library(tidycensus)
library(lubridate)
library(viridis)
library(stargazer)
library(dplyr)
library(plyr)

library(scales)
library(RColorBrewer)
library(gridExtra)
library(ggthemes)
library(readr)
library(ggcorrplot)
library(caret)

library(sjPlot)
library(sjmisc)
library(sjlabelled)
library(osmdata)

#text mining
library(tm)
library(wordcloud2)
library(SnowballC)
options(scipen=999)
details.sf <- st_as_sf(details,coords = c('longitude','latitude'),crs = 4326) %>% 
  st_transform(st_crs(neighborhood))

details.sf$price <- parse_number(details.sf$price)
details.sf$weekly_price <- parse_number(details.sf$weekly_price)
details.sf$monthly_price <- parse_number(details.sf$monthly_price)
details.sf$cleaning_fee <- parse_number(details.sf$cleaning_fee)
details.sf$extra_people <- parse_number(details.sf$extra_people)
details.sf$security_deposit <- parse_number(details.sf$security_deposit)
details.sf$beds <- as.numeric(details.sf$beds)
details.sf$minimum_nights <- as.numeric(details.sf$minimum_nights)
details.sf$maximum_nights <- as.numeric(details.sf$maximum_nights)
details.sf$number_of_reviews <- as.numeric(details.sf$number_of_reviews)
details.sf$review_scores_rating <- as.numeric(details.sf$review_scores_rating)
details.sf$review_scores_accuracy <- as.numeric(details.sf$review_scores_accuracy)
details.sf$review_scores_cleanliness<- as.numeric(details.sf$review_scores_cleanliness)
details.sf$review_scores_value <- as.numeric(details.sf$review_scores_value)
details.sf$reviews_per_month <- as.numeric(details.sf$reviews_per_month)
details.sf$id <- as.character(details.sf$id)
details.sf$property_type <- as.factor(details.sf$property_type)

details.sf.raw <- details.sf

Exploratory Analysis

Since the Airbnb data already contains a lot of information (hiding many secrets!), we will first conduct exploratory analysis by examining location (geographic distribution) of available units, price per night, occupancy, room characteristics (composition, layout), and amenities that come with the room. Looking into those aspects can help our clients, future Airbnb host, to quickly identify internal characteristics of their unit and set price. It may also help those hosts who wish to upgrade their units figure out a potential increase in price after the upgrade.

# Available Calendar
available_calendar <- calendar %>%
  filter(available =="t")

available_calendar$listing_id <- as.character(available_calendar$listing_id)

# Price change
available_calendar <- available_calendar%>%
  mutate(price2 = gsub("^.","",price))%>%
  mutate(price2 = gsub(",","",price2))

available_calendar$price3 <- as.numeric(available_calendar$price2)

# Sum per month
available_calendar2 <- available_calendar%>%
  mutate(date2 = ymd(date))%>%
  mutate(month = month(date2))%>%
  group_by(listing_id, month) %>%
  dplyr::summarize(month_price = mean(price3))
length(unique(calendar$listing_id))
## [1] 20030
length(unique(calendar$listing_id))*12
## [1] 240360
study.panel <- 
  expand.grid(listing_id = unique(calendar$listing_id),
              month=unique(available_calendar2$month))
study.panel$listing_id <- as.character(study.panel$listing_id)
listing_panel <- study.panel %>%
  left_join(available_calendar2) %>%
  mutate(each_month_price = 0)
o <- order(listing_panel[,"listing_id"],listing_panel[,"month"])
listing_panel <- listing_panel[o,]
xx <- 0
for(i in 2:nrow(listing_panel)){
  if(!is.na(listing_panel[i,3])){
    xx <- listing_panel[i,3]
    listing_panel[i,4]=listing_panel[i,3]
  }
  if(is.na(listing_panel[i,3])& listing_panel[i-1,1]==listing_panel[i,1]){
    listing_panel[i,4] <- xx
  }
  if(is.na(listing_panel[i,3])& listing_panel[i-1,1]!=listing_panel[i,1]){
    xx <- 0
    listing_panel[i,4] <- xx
  }
}
d <- order(listing_panel[,"listing_id"],-listing_panel[,"month"])
listing_panel <- listing_panel[d,]
for(i in 2:nrow(listing_panel)){
  if(listing_panel[i,4]==0){
    listing_panel[i,4]=listing_panel[i-1,4]
  }
}
o <- order(listing_panel[,"listing_id"],listing_panel[,"month"])
listing_panel <- listing_panel[o,]
listing_0price <- listing_panel %>%
  filter(each_month_price == 0)
no_price <- unique(listing_0price$listing_id)

1) Geographic Distribution

Firstly, identifying ‘hotspots’ would be helpful to have an overview of the Airbnb market in Amsterdam. On the one hand, the existing units are usually located in areas where tourists would want to stay, which equates to decent demand. On the other hand, adequate supply means there may be a competition in the market.

Given city government’s concern with too many Airbnb (short-term rental) concentrating in central historic areas, the maps below also help demonstrating how the market indeed is crammed in the central area.

We choose to examine the distribution at two scales – neighborhood (identified by City of Amsterdam) and zip code areas (smaller scale). Both maps show that many Airbnb are located along the canals, which is usually deemed signature of Amsterdam.

sf_use_s2(FALSE)
listings.sf<- listings %>% 
  st_as_sf(coords = c( "longitude","latitude"), crs = 4326, agr = "constant") %>% st_transform('ESRI:102013')

neighbor2 <- neighbor2 %>% 
  st_transform(st_crs(listings.sf))

listing.sf.neighbor2 <- st_intersection(listings.sf,neighbor2) %>% 
  dplyr::select(id, Buurt,Buurt_code) %>% 
  mutate(count=1) %>% 
  st_drop_geometry()

listings.sf <- left_join(listings.sf, listing.sf.neighbor2,by='id')

neighbo2.count <- listings.sf %>% 
  group_by(Buurt) %>%
  dplyr::summarise(airbnb.number = sum(count)) %>% 
  dplyr::select(Buurt, airbnb.number) %>% 
  st_drop_geometry()

neighbor2 <- left_join(neighbor2,neighbo2.count,by="Buurt")

ggplot()+
  geom_sf(data = neighbor2, aes(fill=q5(airbnb.number)),color='transparent')+
  scale_fill_manual(values = Teal,
                     labels = qBr(neighbor2,'airbnb.number'), name = 'Count')+
  labs(title = "Number of Airbnb per Neighborhood", subtitle = "Amsterdam, NL; 2018") +
  mapTheme()

neighbor2 %>% ggplot() + 
      geom_sf(aes(fill = airbnb.number), color = 'white') +
      scale_fill_gradient(low = Teal[1], high = Teal[5],
                          name = "Count") +
      labs(title = "Number of Airbnb per Zipcode", subtitle = "Amsterdam, NL; 2018") +
      mapTheme()

2) Price

Seasonality

The plot below shows the relationship between seasonality and price – we see an annual low in the beginning of the year in Jan and Feb, and a quick incline as spring comes, hitting high points in the summer, than slowly declines as weather gets colder into fall and winter. The price seems to follow the general trend of tourism in Amsterdam.

Month_price <- calendar%>%
  mutate(date2 = ymd(date))%>%
  mutate(month = month(date2),
         listing_id = as.character(listing_id),
         price = parse_number(price))%>%
  mutate(month = as.character(month))%>%
  mutate(month = ifelse(month != 10 & month != 11 & month != 12, gsub("^","0",month), month)) %>%
  drop_na(price) %>%
  group_by(month) %>%
  dplyr::summarize(mean_monthly_price = mean(price))


ggplot(Month_price, 
       aes(x=month, y=mean_monthly_price, group =1)) +
  geom_line(size=1, color = Teal[3]) +
  labs(title = "Average Airbnb Price Every Month", subtitle = "Amsterdam, NL; 2018") +
  xlab("Month of the Year") + ylab("Average Price") +
  plotTheme()

Price per Bed

Since each Airbnb varies in size and number of guests it can accommodate, we choose to visualize price per bed to make a better sense of the price in the market. A bed usually can accommodate 2 guests maximum, though in some case can host up to 3 guests. Again, the higher priced bed are concentrated in the central areas.

details.sf <- 
  details.sf %>% 
  mutate(priceBed=price/beds) %>% 
  filter(priceBed <=1000)


ggplot()+
  geom_sf(data = neighborhood,fill='grey95',color = 'white')+
  geom_sf(data = details.sf, aes(colour=q5(priceBed)),size=.5)+
  scale_color_manual(values = palette5,
                     labels = qBr(details.sf,'priceBed'), name="Price per Bed (Euro)") +
  labs(title = "Price per Bed",
       subtitle = 'Amsterdam Airbnb, price on 2018-12-6') +
  mapTheme()

3) Occupancy

While location and price are helpful information, we shall not disregard an important indicator of actual profit – occupancy. From the existing data, we can see that occupancy is lower in the beginning of the year, then continues to be high year-round. However, it is important to acknowledge the fact that Feburary only has 28 (or 29) days, which may result in lower occupancy count.

index <- function(x, flag = '0') {
  digit <- floor(log10(length(x))) + 1
  paste(flag, formatC(x, width = digit, flag = '0'), sep = '')
}

occupancy <- calendar%>%
  mutate(date2 = ymd(date))%>%
  mutate(month = month(date2),
         count = ifelse(available == "f", 1, 0),
         listing_id = as.character(listing_id))%>%
  filter(!listing_id %in% no_price) %>%
  group_by(listing_id, month) %>%
  dplyr::summarize(monthly_occupancy = sum(count))

monthly_occupancy <- occupancy %>%
  mutate(month = as.character(month))%>%
  mutate(month = ifelse(month != 10 & month != 11 & month != 12, gsub("^","0",month), month)) %>%
  group_by(month) %>%
  dplyr::summarise(mean_monthly_occupancy = mean(monthly_occupancy))

ggplot(monthly_occupancy, 
       aes(x=month, y=mean_monthly_occupancy, group =1)) +
  geom_line(size=1, color = "#FE9900") +
  labs(title = "Airbnb Occupancy Every Month", subtitle = "Amsterdam, NL; 2018") +
  xlab("Month of the Year") + ylab("Average Monthly Occupancy") +
  plotTheme()

4) Composition / Characteristics

Move on to internal features of the units – number of beds, bedrooms, bathrooms, and number of guests it may accommodate – are all fundamentals for determining a unit’s price (and directly associated with guests; willingness to pay). In addition, since Amsterdam has a long history of having boat house and all kinds of special types of houses, tourists may be in favor of experiencing those kinda of accommodation. Hence, we did a thorough examination of all those features and their aggregated effect.

Room Layout

table.basic <- details.sf %>% 
  st_drop_geometry() %>% 
  dplyr::select(price ,beds, bedrooms, bathrooms, accommodates)

stargazer(as.data.frame(table.basic),
          type = "text",
          title ="Table 1. Basic Features Summary",
          single.row = TRUE,
          out.header = TRUE)
## 
## Table 1. Basic Features Summary
## ==================================================
## Statistic      N     Mean   St. Dev.  Min    Max  
## --------------------------------------------------
## price        20,011 150.260 102.648    0    3,900 
## beds         20,011  1.850   1.390     1     32   
## bedrooms     20,004  1.445   0.886     0     12   
## bathrooms    20,001  1.138   0.794   0.000 100.500
## accommodates 20,011  2.892   1.319     1     17   
## --------------------------------------------------

Property Type

count(details.sf$property_type) %>%
  kable() %>%
  kable_styling() %>%
  scroll_box(width = "800px", height = "200px")
x freq
Aparthotel 72
Apartment 15570
Barn 4
Bed and breakfast 454
Boat 372
Boutique hotel 28
Bungalow 12
Cabin 14
Camper/RV 2
Campsite 2
Casa particular (Cuba) 5
Castle 1
Chalet 3
Condominium 323
Cottage 12
Earth house 1
Guest suite 152
Guesthouse 43
Hostel 4
Hotel 7
House 1520
Houseboat 225
Lighthouse 1
Loft 384
Nature lodge 1
Other 50
Serviced apartment 63
Tent 1
Tiny house 5
Townhouse 648
Villa 32

Puting them together…

After examining individual internal features, we put together the table below to show average price for each combination of all those features. We can see that even with the same number of beds, bathrooms, bedrooms, and no. of accommodating guests, property_type may be a determinant for price.

We have decided to include all those internal features into our machine learning model since they appear to be valid factors.

details.sf %>%
  st_drop_geometry() %>%
  group_by(beds, bathrooms, bedrooms, accommodates, property_type) %>%
  dplyr::summarize(Mean_Price = mean(price)) %>%
  kable() %>%
  kable_styling() %>%
  scroll_box(width = "800px", height = "200px")
## `summarise()` has grouped output by 'beds', 'bathrooms', 'bedrooms',
## 'accommodates'. You can override using the `.groups` argument.
beds bathrooms bedrooms accommodates property_type Mean_Price
1 0.0 1 1 Apartment 43.00000
1 0.0 1 1 Townhouse 42.00000
1 0.0 1 2 Apartment 108.50000
1 0.0 1 2 Camper/RV 58.00000
1 0.0 1 2 Guesthouse 125.00000
1 0.0 1 2 House 60.00000
1 0.0 1 3 Boat 50.00000
1 0.0 1 3 Camper/RV 35.00000
1 0.5 0 1 Apartment 73.00000
1 0.5 0 2 Apartment 80.75000
1 0.5 0 2 Bed and breakfast 79.00000
1 0.5 0 2 Boat 50.00000
1 0.5 0 3 Apartment 92.00000
1 0.5 0 4 Guest suite 85.00000
1 0.5 1 1 Apartment 78.66667
1 0.5 1 1 Bed and breakfast 55.00000
1 0.5 1 2 Apartment 91.57143
1 0.5 1 2 Boat 68.00000
1 0.5 1 2 Guest suite 60.00000
1 0.5 1 2 House 72.66667
1 0.5 1 3 Apartment 100.00000
1 1.0 0 1 Apartment 97.94118
1 1.0 0 1 Bed and breakfast 50.00000
1 1.0 0 1 Boutique hotel 79.00000
1 1.0 0 1 House 330.66667
1 1.0 0 2 Aparthotel 133.28571
1 1.0 0 2 Apartment 108.32635
1 1.0 0 2 Bed and breakfast 128.11111
1 1.0 0 2 Boat 110.94118
1 1.0 0 2 Boutique hotel 102.00000
1 1.0 0 2 Bungalow 125.00000
1 1.0 0 2 Cabin 135.00000
1 1.0 0 2 Casa particular (Cuba) 110.00000
1 1.0 0 2 Condominium 104.76923
1 1.0 0 2 Cottage 85.00000
1 1.0 0 2 Guest suite 108.16667
1 1.0 0 2 Guesthouse 117.60000
1 1.0 0 2 House 103.93750
1 1.0 0 2 Houseboat 142.37500
1 1.0 0 2 Loft 124.21212
1 1.0 0 2 Other 95.25000
1 1.0 0 2 Townhouse 112.82353
1 1.0 0 3 Apartment 114.33333
1 1.0 0 3 Bed and breakfast 160.00000
1 1.0 0 3 Boutique hotel 200.00000
1 1.0 0 3 Condominium 140.00000
1 1.0 0 3 Serviced apartment 250.00000
1 1.0 0 4 Apartment 131.61538
1 1.0 0 4 Guest suite 135.00000
1 1.0 0 4 Guesthouse 175.00000
1 1.0 1 1 Apartment 62.96400
1 1.0 1 1 Bed and breakfast 62.77778
1 1.0 1 1 Boat 39.00000
1 1.0 1 1 Boutique hotel 111.66667
1 1.0 1 1 Condominium 51.85714
1 1.0 1 1 Cottage 26.00000
1 1.0 1 1 Guest suite 80.00000
1 1.0 1 1 Guesthouse 103.33333
1 1.0 1 1 Hostel 39.00000
1 1.0 1 1 House 61.88462
1 1.0 1 1 Houseboat 55.00000
1 1.0 1 1 Loft 71.25000
1 1.0 1 1 Other 40.00000
1 1.0 1 1 Serviced apartment 149.00000
1 1.0 1 1 Tiny house 60.00000
1 1.0 1 1 Townhouse 61.70000
1 1.0 1 2 Aparthotel 165.88889
1 1.0 1 2 Apartment 116.43097
1 1.0 1 2 Barn 103.33333
1 1.0 1 2 Bed and breakfast 113.17935
1 1.0 1 2 Boat 137.77647
1 1.0 1 2 Boutique hotel 209.00000
1 1.0 1 2 Bungalow 96.33333
1 1.0 1 2 Cabin 93.20000
1 1.0 1 2 Campsite 70.00000
1 1.0 1 2 Casa particular (Cuba) 85.00000
1 1.0 1 2 Castle 150.00000
1 1.0 1 2 Chalet 83.00000
1 1.0 1 2 Condominium 114.64348
1 1.0 1 2 Cottage 128.25000
1 1.0 1 2 Earth house 80.00000
1 1.0 1 2 Guest suite 105.93750
1 1.0 1 2 Guesthouse 114.43750
1 1.0 1 2 Hotel 435.00000
1 1.0 1 2 House 94.42069
1 1.0 1 2 Houseboat 140.42373
1 1.0 1 2 Lighthouse 850.00000
1 1.0 1 2 Loft 151.63115
1 1.0 1 2 Other 93.96000
1 1.0 1 2 Serviced apartment 186.40909
1 1.0 1 2 Tent 75.00000
1 1.0 1 2 Tiny house 76.33333
1 1.0 1 2 Townhouse 95.71795
1 1.0 1 2 Villa 88.00000
1 1.0 1 3 Apartment 122.08835
1 1.0 1 3 Bed and breakfast 128.40000
1 1.0 1 3 Boat 176.66667
1 1.0 1 3 Condominium 80.00000
1 1.0 1 3 House 127.50000
1 1.0 1 3 Houseboat 151.80000
1 1.0 1 3 Loft 180.33333
1 1.0 1 3 Townhouse 60.25000
1 1.0 1 4 Aparthotel 164.00000
1 1.0 1 4 Apartment 147.65000
1 1.0 1 4 Bed and breakfast 299.00000
1 1.0 1 4 Boat 165.00000
1 1.0 1 4 Condominium 149.00000
1 1.0 1 4 Guest suite 165.00000
1 1.0 1 4 Guesthouse 250.00000
1 1.0 1 4 Hotel 69.00000
1 1.0 1 4 House 420.00000
1 1.0 1 4 Houseboat 325.00000
1 1.0 1 4 Loft 150.00000
1 1.0 1 4 Townhouse 138.33333
1 1.0 1 5 Apartment 104.50000
1 1.0 1 6 Apartment 130.00000
1 1.0 1 6 House 325.00000
1 1.0 2 1 Apartment 27.00000
1 1.0 2 1 Bed and breakfast 121.00000
1 1.0 2 2 Apartment 126.78102
1 1.0 2 2 Condominium 123.40000
1 1.0 2 2 House 106.63636
1 1.0 2 2 Houseboat 105.00000
1 1.0 2 2 Loft 180.00000
1 1.0 2 3 Apartment 136.09375
1 1.0 2 3 Condominium 100.00000
1 1.0 2 3 House 99.00000
1 1.0 2 3 Townhouse 100.00000
1 1.0 2 4 Apartment 167.57143
1 1.0 2 4 House 112.66667
1 1.0 2 4 Townhouse 165.00000
1 1.0 2 5 Apartment 205.50000
1 1.0 3 2 Apartment 91.00000
1 1.0 3 2 Other 295.00000
1 1.0 3 3 Apartment 212.25000
1 1.0 3 4 Apartment 142.50000
1 1.0 3 4 Loft 150.00000
1 1.0 3 4 Townhouse 130.00000
1 1.0 3 5 Townhouse 185.00000
1 1.0 4 1 Apartment 45.00000
1 1.0 4 2 Apartment 94.00000
1 1.0 NA 2 Apartment 123.00000
1 1.5 0 2 Apartment 118.85714
1 1.5 0 2 Boat 155.00000
1 1.5 0 2 Loft 200.00000
1 1.5 0 3 Apartment 85.00000
1 1.5 1 1 Apartment 65.04348
1 1.5 1 1 Bed and breakfast 77.85714
1 1.5 1 1 Condominium 90.00000
1 1.5 1 1 House 45.60000
1 1.5 1 2 Aparthotel 152.60000
1 1.5 1 2 Apartment 122.01389
1 1.5 1 2 Bed and breakfast 93.85714
1 1.5 1 2 Boat 184.00000
1 1.5 1 2 Cabin 80.00000
1 1.5 1 2 Condominium 116.00000
1 1.5 1 2 Guest suite 88.60000
1 1.5 1 2 House 86.02857
1 1.5 1 2 Houseboat 80.00000
1 1.5 1 2 Loft 131.81250
1 1.5 1 2 Other 245.00000
1 1.5 1 2 Serviced apartment 75.00000
1 1.5 1 2 Townhouse 100.10526
1 1.5 1 3 Apartment 140.06667
1 1.5 1 3 House 100.00000
1 1.5 1 4 Aparthotel 190.00000
1 1.5 1 4 Apartment 171.40000
1 1.5 1 4 Bed and breakfast 399.00000
1 1.5 1 4 Boat 420.00000
1 1.5 2 1 Apartment 129.00000
1 1.5 2 2 Apartment 129.09524
1 1.5 2 2 House 457.00000
1 1.5 2 2 Townhouse 180.00000
1 1.5 2 3 Apartment 166.00000
1 1.5 2 4 Apartment 162.62500
1 1.5 2 4 Townhouse 100.00000
1 1.5 2 5 Apartment 90.00000
1 1.5 2 8 Apartment 80.00000
1 1.5 3 4 Apartment 250.00000
1 2.0 0 1 Apartment 49.00000
1 2.0 1 1 Apartment 60.66667
1 2.0 1 1 House 40.00000
1 2.0 1 1 Townhouse 60.00000
1 2.0 1 2 Apartment 104.51852
1 2.0 1 2 Bed and breakfast 70.00000
1 2.0 1 2 Hostel 85.00000
1 2.0 1 2 House 62.50000
1 2.0 1 2 Serviced apartment 95.00000
1 2.0 1 2 Townhouse 91.80000
1 2.0 1 3 Apartment 225.00000
1 2.0 1 3 House 100.00000
1 2.0 1 4 Bed and breakfast 279.00000
1 2.0 2 2 Apartment 165.00000
1 2.0 2 4 Apartment 650.00000
1 2.5 1 1 Apartment 65.00000
1 2.5 1 2 Apartment 93.80000
1 2.5 1 2 House 138.33333
1 2.5 2 2 Apartment 180.00000
1 3.0 1 1 Apartment 80.00000
1 3.0 1 2 Condominium 75.00000
1 3.0 1 2 House 60.00000
1 3.0 3 4 House 300.00000
1 4.0 1 1 Apartment 50.00000
1 7.0 1 2 Apartment 95.00000
1 NA 0 1 House 900.00000
1 NA 1 2 Apartment 89.75000
1 NA 1 2 Bed and breakfast 90.00000
1 NA 1 4 Apartment 175.00000
1 NA 2 4 Apartment 750.00000
2 0.0 1 2 Apartment 71.00000
2 0.0 1 2 Boat 75.00000
2 0.5 0 4 Condominium 169.00000
2 0.5 1 2 Apartment 87.00000
2 0.5 1 2 Bed and breakfast 95.00000
2 0.5 1 2 Boat 50.00000
2 0.5 1 2 Boutique hotel 120.00000
2 0.5 1 3 Apartment 130.00000
2 0.5 1 3 Boat 80.00000
2 0.5 1 3 House 60.00000
2 0.5 1 4 Apartment 100.75000
2 0.5 1 4 Guest suite 85.00000
2 0.5 2 4 Apartment 185.00000
2 0.5 2 4 House 185.00000
2 1.0 0 2 Apartment 109.51923
2 1.0 0 2 Bed and breakfast 110.00000
2 1.0 0 2 Boat 120.00000
2 1.0 0 2 Cabin 75.00000
2 1.0 0 2 Condominium 169.00000
2 1.0 0 2 Guest suite 68.66667
2 1.0 0 2 Guesthouse 75.00000
2 1.0 0 2 House 108.33333
2 1.0 0 2 Loft 125.00000
2 1.0 0 2 Other 95.00000
2 1.0 0 2 Serviced apartment 249.00000
2 1.0 0 2 Townhouse 90.00000
2 1.0 0 3 Apartment 123.69565
2 1.0 0 3 Bed and breakfast 116.75000
2 1.0 0 3 Boat 75.00000
2 1.0 0 3 Cabin 120.00000
2 1.0 0 3 Guest suite 125.00000
2 1.0 0 3 Guesthouse 80.00000
2 1.0 0 3 Houseboat 97.50000
2 1.0 0 3 Loft 230.00000
2 1.0 0 3 Townhouse 94.00000
2 1.0 0 4 Apartment 151.66667
2 1.0 0 4 Bed and breakfast 170.00000
2 1.0 0 4 Boat 172.00000
2 1.0 0 4 Cabin 149.00000
2 1.0 0 4 Condominium 90.00000
2 1.0 0 4 Guest suite 95.00000
2 1.0 0 4 House 204.25000
2 1.0 0 4 Houseboat 85.00000
2 1.0 0 4 Loft 135.00000
2 1.0 0 4 Other 86.00000
2 1.0 0 4 Townhouse 110.00000
2 1.0 0 5 Apartment 130.00000
2 1.0 1 1 Apartment 77.80000
2 1.0 1 1 House 57.50000
2 1.0 1 2 Aparthotel 172.00000
2 1.0 1 2 Apartment 119.33259
2 1.0 1 2 Bed and breakfast 99.82979
2 1.0 1 2 Boat 100.15385
2 1.0 1 2 Boutique hotel 91.20000
2 1.0 1 2 Condominium 90.57143
2 1.0 1 2 Guest suite 108.40000
2 1.0 1 2 Guesthouse 89.50000
2 1.0 1 2 Hotel 140.00000
2 1.0 1 2 House 94.09375
2 1.0 1 2 Houseboat 181.57143
2 1.0 1 2 Loft 151.14286
2 1.0 1 2 Other 104.00000
2 1.0 1 2 Serviced apartment 84.00000
2 1.0 1 2 Tiny house 110.00000
2 1.0 1 2 Townhouse 99.90000
2 1.0 1 3 Apartment 125.95077
2 1.0 1 3 Bed and breakfast 138.00000
2 1.0 1 3 Boat 108.00000
2 1.0 1 3 Bungalow 95.00000
2 1.0 1 3 Cabin 85.00000
2 1.0 1 3 Condominium 178.83333
2 1.0 1 3 Guest suite 129.66667
2 1.0 1 3 House 108.41176
2 1.0 1 3 Houseboat 187.00000
2 1.0 1 3 Loft 160.50000
2 1.0 1 3 Nature lodge 140.00000
2 1.0 1 3 Serviced apartment 179.00000
2 1.0 1 3 Townhouse 123.11111
2 1.0 1 3 Villa 75.00000
2 1.0 1 4 Aparthotel 167.00000
2 1.0 1 4 Apartment 152.66940
2 1.0 1 4 Bed and breakfast 176.05882
2 1.0 1 4 Boat 204.46154
2 1.0 1 4 Boutique hotel 180.00000
2 1.0 1 4 Condominium 133.44444
2 1.0 1 4 Guest suite 133.25000
2 1.0 1 4 Guesthouse 105.00000
2 1.0 1 4 House 141.18182
2 1.0 1 4 Houseboat 187.70000
2 1.0 1 4 Loft 195.11111
2 1.0 1 4 Other 220.00000
2 1.0 1 4 Serviced apartment 150.00000
2 1.0 1 4 Townhouse 107.50000
2 1.0 2 1 Apartment 92.50000
2 1.0 2 2 Apartment 132.28082
2 1.0 2 2 Bed and breakfast 72.50000
2 1.0 2 2 Boat 188.00000
2 1.0 2 2 Condominium 113.00000
2 1.0 2 2 House 119.44444
2 1.0 2 2 Houseboat 345.00000
2 1.0 2 2 Loft 250.00000
2 1.0 2 2 Other 220.00000
2 1.0 2 2 Townhouse 150.00000
2 1.0 2 3 Apartment 145.11750
2 1.0 2 3 Bed and breakfast 112.00000
2 1.0 2 3 Boat 161.62500
2 1.0 2 3 Condominium 145.25000
2 1.0 2 3 Guest suite 149.00000
2 1.0 2 3 Guesthouse 99.00000
2 1.0 2 3 House 152.65000
2 1.0 2 3 Houseboat 215.00000
2 1.0 2 3 Loft 198.20000
2 1.0 2 3 Other 142.33333
2 1.0 2 3 Serviced apartment 160.00000
2 1.0 2 3 Townhouse 123.11111
2 1.0 2 4 Aparthotel 204.00000
2 1.0 2 4 Apartment 181.22114
2 1.0 2 4 Bed and breakfast 191.50000
2 1.0 2 4 Boat 204.41667
2 1.0 2 4 Condominium 187.29167
2 1.0 2 4 Guest suite 217.00000
2 1.0 2 4 House 172.63725
2 1.0 2 4 Houseboat 178.57895
2 1.0 2 4 Loft 259.46667
2 1.0 2 4 Serviced apartment 215.00000
2 1.0 2 4 Townhouse 215.37838
2 1.0 2 5 Apartment 186.76000
2 1.0 2 5 Boat 300.00000
2 1.0 2 5 House 130.00000
2 1.0 2 6 Apartment 220.62500
2 1.0 3 2 Apartment 109.50000
2 1.0 3 2 Townhouse 210.00000
2 1.0 3 3 Apartment 127.50000
2 1.0 3 3 House 150.00000
2 1.0 3 3 Townhouse 120.00000
2 1.0 3 4 Apartment 174.42308
2 1.0 3 4 Condominium 100.00000
2 1.0 3 4 House 149.42857
2 1.0 3 4 Houseboat 150.00000
2 1.0 3 4 Loft 800.00000
2 1.0 3 4 Townhouse 250.00000
2 1.0 3 5 Apartment 163.33333
2 1.0 3 5 House 259.00000
2 1.0 4 4 House 145.00000
2 1.5 0 2 Bed and breakfast 107.50000
2 1.5 0 3 Apartment 95.00000
2 1.5 0 3 Guest suite 190.00000
2 1.5 0 3 Guesthouse 115.00000
2 1.5 0 3 Loft 179.00000
2 1.5 0 4 Bed and breakfast 80.00000
2 1.5 1 1 Apartment 45.00000
2 1.5 1 1 Condominium 90.00000
2 1.5 1 2 Aparthotel 167.00000
2 1.5 1 2 Apartment 127.38596
2 1.5 1 2 Bed and breakfast 102.40000
2 1.5 1 2 Boat 239.50000
2 1.5 1 2 Guest suite 83.50000
2 1.5 1 2 Hotel 120.00000
2 1.5 1 2 House 95.20000
2 1.5 1 2 Other 90.00000
2 1.5 1 2 Serviced apartment 109.00000
2 1.5 1 2 Townhouse 98.50000
2 1.5 1 3 Apartment 141.38462
2 1.5 1 3 Condominium 108.00000
2 1.5 1 3 House 90.00000
2 1.5 1 3 Houseboat 99.00000
2 1.5 1 3 Loft 142.50000
2 1.5 1 3 Townhouse 107.50000
2 1.5 1 4 Aparthotel 225.00000
2 1.5 1 4 Apartment 152.95000
2 1.5 1 4 Bed and breakfast 240.00000
2 1.5 1 4 Condominium 150.00000
2 1.5 1 4 House 108.00000
2 1.5 1 4 Houseboat 150.00000
2 1.5 1 4 Serviced apartment 179.00000
2 1.5 1 6 Apartment 181.00000
2 1.5 2 2 Apartment 135.12500
2 1.5 2 2 House 137.50000
2 1.5 2 2 Townhouse 150.00000
2 1.5 2 3 Apartment 157.16981
2 1.5 2 3 House 110.71429
2 1.5 2 3 Houseboat 180.00000
2 1.5 2 3 Loft 225.00000
2 1.5 2 3 Townhouse 137.50000
2 1.5 2 4 Aparthotel 265.00000
2 1.5 2 4 Apartment 199.80531
2 1.5 2 4 Bed and breakfast 490.00000
2 1.5 2 4 Boat 185.00000
2 1.5 2 4 Boutique hotel 190.00000
2 1.5 2 4 Casa particular (Cuba) 180.00000
2 1.5 2 4 Condominium 169.75000
2 1.5 2 4 Guest suite 149.50000
2 1.5 2 4 Guesthouse 104.50000
2 1.5 2 4 House 202.88889
2 1.5 2 4 Houseboat 200.80000
2 1.5 2 4 Loft 310.36364
2 1.5 2 4 Serviced apartment 212.00000
2 1.5 2 4 Townhouse 210.20000
2 1.5 2 5 Apartment 245.16667
2 1.5 2 5 House 150.00000
2 1.5 2 6 Aparthotel 225.00000
2 1.5 2 6 Apartment 276.00000
2 1.5 3 3 Apartment 143.33333
2 1.5 3 4 Apartment 218.00000
2 1.5 3 4 Condominium 104.50000
2 1.5 3 4 House 113.33333
2 1.5 3 6 Apartment 295.00000
2 1.5 4 4 Apartment 190.00000
2 2.0 0 4 Apartment 200.00000
2 2.0 0 4 Townhouse 190.00000
2 2.0 1 2 Apartment 97.00000
2 2.0 1 2 Bed and breakfast 120.00000
2 2.0 1 2 House 60.00000
2 2.0 1 3 Apartment 100.00000
2 2.0 1 3 House 63.00000
2 2.0 1 4 Aparthotel 149.00000
2 2.0 1 4 Apartment 164.75000
2 2.0 1 4 House 154.50000
2 2.0 1 4 Other 159.00000
2 2.0 1 4 Townhouse 222.00000
2 2.0 2 2 Apartment 182.00000
2 2.0 2 2 Townhouse 190.00000
2 2.0 2 3 Apartment 137.16667
2 2.0 2 3 Houseboat 250.00000
2 2.0 2 3 Loft 180.00000
2 2.0 2 4 Apartment 247.03906
2 2.0 2 4 Bed and breakfast 227.57143
2 2.0 2 4 Boat 249.80000
2 2.0 2 4 Casa particular (Cuba) 400.00000
2 2.0 2 4 Condominium 257.25000
2 2.0 2 4 Guest suite 238.25000
2 2.0 2 4 House 197.61905
2 2.0 2 4 Houseboat 325.00000
2 2.0 2 4 Loft 279.00000
2 2.0 2 4 Serviced apartment 226.00000
2 2.0 2 4 Townhouse 256.50000
2 2.0 2 4 Villa 149.00000
2 2.0 2 5 Apartment 140.00000
2 2.0 2 6 House 190.00000
2 2.0 3 4 Apartment 281.25000
2 2.0 3 4 House 256.60000
2 2.0 3 6 Townhouse 189.50000
2 2.5 1 3 Apartment 150.00000
2 2.5 2 2 Apartment 150.00000
2 2.5 2 3 Apartment 200.00000
2 2.5 2 4 Apartment 251.55000
2 2.5 2 4 Guest suite 345.00000
2 2.5 2 4 House 195.00000
2 2.5 2 4 Houseboat 225.00000
2 2.5 2 4 Loft 212.00000
2 2.5 2 4 Serviced apartment 590.00000
2 2.5 2 4 Townhouse 512.50000
2 2.5 3 4 Apartment 245.00000
2 2.5 3 4 House 61.00000
2 3.0 1 2 Apartment 187.00000
2 3.0 1 2 Boat 51.42857
2 3.0 2 2 Apartment 70.00000
2 3.0 2 4 Apartment 400.00000
2 3.0 2 4 Condominium 350.00000
2 3.0 3 4 Apartment 175.00000
2 3.0 3 4 Townhouse 220.00000
2 3.5 2 4 Apartment 422.50000
2 3.5 2 4 House 90.00000
2 4.0 1 4 Apartment 60.00000
2 8.0 0 2 Condominium 120.00000
2 15.0 1 4 Apartment 175.00000
3 0.0 0 4 Boat 163.00000
3 0.0 1 4 Loft 107.00000
3 0.5 0 3 Boat 60.00000
3 0.5 0 4 Guest suite 125.00000
3 0.5 1 2 Boat 35.00000
3 0.5 1 3 Bed and breakfast 140.00000
3 0.5 1 3 Boat 59.00000
3 0.5 1 4 Bed and breakfast 54.00000
3 0.5 1 4 Boat 150.00000
3 0.5 3 4 Apartment 270.00000
3 1.0 0 2 Apartment 144.33333
3 1.0 0 3 Apartment 86.50000
3 1.0 0 3 Bed and breakfast 75.00000
3 1.0 0 3 Boat 195.00000
3 1.0 0 3 Chalet 80.00000
3 1.0 0 3 Guest suite 77.50000
3 1.0 0 3 Loft 99.00000
3 1.0 0 4 Aparthotel 210.00000
3 1.0 0 4 Apartment 140.66667
3 1.0 0 4 Bed and breakfast 120.00000
3 1.0 0 4 Cabin 160.00000
3 1.0 0 4 Cottage 115.00000
3 1.0 0 4 Guest suite 75.00000
3 1.0 0 4 House 199.00000
3 1.0 0 4 Houseboat 150.00000
3 1.0 0 4 Loft 240.00000
3 1.0 0 5 Apartment 85.00000
3 1.0 0 6 Apartment 190.00000
3 1.0 1 2 Apartment 130.55556
3 1.0 1 2 Boat 95.00000
3 1.0 1 2 Houseboat 199.00000
3 1.0 1 2 Loft 70.00000
3 1.0 1 2 Townhouse 159.66667
3 1.0 1 3 Apartment 129.62222
3 1.0 1 3 Bed and breakfast 96.00000
3 1.0 1 3 Boat 117.00000
3 1.0 1 3 Boutique hotel 79.00000
3 1.0 1 3 Condominium 110.00000
3 1.0 1 3 Guest suite 80.00000
3 1.0 1 3 Hotel 165.00000
3 1.0 1 3 House 135.00000
3 1.0 1 3 Loft 84.50000
3 1.0 1 3 Townhouse 85.00000
3 1.0 1 4 Aparthotel 203.25000
3 1.0 1 4 Apartment 168.18462
3 1.0 1 4 Bed and breakfast 139.66667
3 1.0 1 4 Boat 175.00000
3 1.0 1 4 Condominium 154.00000
3 1.0 1 4 Guest suite 60.00000
3 1.0 1 4 House 106.33333
3 1.0 1 4 Houseboat 462.50000
3 1.0 1 4 Loft 307.50000
3 1.0 1 4 Serviced apartment 149.00000
3 1.0 1 4 Townhouse 120.00000
3 1.0 1 5 Apartment 152.00000
3 1.0 1 5 Bed and breakfast 150.00000
3 1.0 1 5 House 161.33333
3 1.0 1 6 Apartment 415.00000
3 1.0 1 12 Apartment 262.50000
3 1.0 2 2 Apartment 136.41667
3 1.0 2 2 Boat 70.00000
3 1.0 2 2 Guesthouse 105.00000
3 1.0 2 2 House 140.00000
3 1.0 2 2 Houseboat 195.00000
3 1.0 2 2 Loft 162.50000
3 1.0 2 3 Apartment 148.43939
3 1.0 2 3 Boat 191.66667
3 1.0 2 3 House 143.16667
3 1.0 2 3 Houseboat 250.00000
3 1.0 2 3 Loft 179.00000
3 1.0 2 3 Other 135.00000
3 1.0 2 3 Townhouse 117.00000
3 1.0 2 4 Aparthotel 239.37500
3 1.0 2 4 Apartment 198.21034
3 1.0 2 4 Bed and breakfast 136.00000
3 1.0 2 4 Boat 228.78571
3 1.0 2 4 Bungalow 140.00000
3 1.0 2 4 Condominium 205.00000
3 1.0 2 4 Guest suite 85.00000
3 1.0 2 4 House 147.90323
3 1.0 2 4 Houseboat 238.30769
3 1.0 2 4 Loft 226.60000
3 1.0 2 4 Serviced apartment 349.50000
3 1.0 2 4 Townhouse 175.78947
3 1.0 2 4 Villa 200.00000
3 1.0 2 5 Apartment 200.33333
3 1.0 2 5 House 182.00000
3 1.0 2 5 Houseboat 225.00000
3 1.0 2 6 Apartment 238.44444
3 1.0 2 6 Loft 550.00000
3 1.0 2 7 Apartment 191.00000
3 1.0 3 1 Apartment 40.00000
3 1.0 3 2 Apartment 143.22222
3 1.0 3 2 House 123.33333
3 1.0 3 3 Apartment 161.18182
3 1.0 3 3 House 151.00000
3 1.0 3 3 Townhouse 120.00000
3 1.0 3 4 Apartment 204.22581
3 1.0 3 4 Boat 252.30000
3 1.0 3 4 Condominium 205.00000
3 1.0 3 4 Cottage 95.00000
3 1.0 3 4 House 179.15789
3 1.0 3 4 Houseboat 263.33333
3 1.0 3 4 Loft 311.85714
3 1.0 3 4 Townhouse 190.62500
3 1.0 3 4 Villa 225.00000
3 1.0 3 5 Apartment 194.50000
3 1.0 3 5 House 183.52632
3 1.0 3 5 Townhouse 122.33333
3 1.0 3 6 Apartment 260.14706
3 1.0 3 6 Boat 394.00000
3 1.0 3 6 Condominium 390.00000
3 1.0 3 6 House 295.50000
3 1.0 3 6 Loft 450.00000
3 1.0 3 6 Other 225.00000
3 1.0 3 6 Townhouse 160.00000
3 1.0 3 7 Apartment 248.00000
3 1.0 3 7 Townhouse 224.00000
3 1.0 3 8 Apartment 450.00000
3 1.0 3 8 House 420.00000
3 1.0 4 4 Apartment 209.66667
3 1.0 4 4 House 131.00000
3 1.0 4 5 Apartment 131.66667
3 1.0 NA 4 Apartment 179.00000
3 1.5 0 6 Boat 98.00000
3 1.5 1 3 Apartment 12.00000
3 1.5 1 3 Bed and breakfast 180.00000
3 1.5 1 4 Apartment 158.13333
3 1.5 1 4 Houseboat 176.00000
3 1.5 1 5 Apartment 90.00000
3 1.5 2 2 Apartment 149.33333
3 1.5 2 2 Houseboat 175.00000
3 1.5 2 3 Apartment 138.00000
3 1.5 2 3 Boat 190.00000
3 1.5 2 3 Condominium 90.00000
3 1.5 2 3 House 149.50000
3 1.5 2 3 Townhouse 354.00000
3 1.5 2 4 Aparthotel 224.85714
3 1.5 2 4 Apartment 209.12791
3 1.5 2 4 Boat 77.50000
3 1.5 2 4 Condominium 365.00000
3 1.5 2 4 House 164.42857
3 1.5 2 4 Houseboat 453.00000
3 1.5 2 4 Loft 209.00000
3 1.5 2 4 Serviced apartment 500.00000
3 1.5 2 4 Townhouse 192.80000
3 1.5 2 5 Apartment 244.14286
3 1.5 2 5 Guest suite 250.00000
3 1.5 2 6 Apartment 252.33333
3 1.5 2 6 Condominium 191.00000
3 1.5 2 6 House 169.00000
3 1.5 3 2 Apartment 134.66667
3 1.5 3 3 Apartment 192.00000
3 1.5 3 3 House 130.00000
3 1.5 3 4 Apartment 226.21538
3 1.5 3 4 Boat 157.50000
3 1.5 3 4 House 193.22222
3 1.5 3 4 Houseboat 325.00000
3 1.5 3 4 Loft 300.00000
3 1.5 3 4 Townhouse 211.40000
3 1.5 3 5 Apartment 275.81818
3 1.5 3 5 House 296.42857
3 1.5 3 5 Townhouse 220.00000
3 1.5 3 6 Apartment 195.90000
3 1.5 3 6 House 269.50000
3 1.5 3 6 Houseboat 249.00000
3 1.5 3 6 Townhouse 347.50000
3 1.5 3 7 Apartment 298.00000
3 1.5 3 7 Houseboat 280.00000
3 1.5 3 8 Apartment 650.00000
3 1.5 4 3 Apartment 139.00000
3 1.5 4 4 Apartment 200.00000
3 1.5 4 4 House 200.00000
3 1.5 4 4 Townhouse 125.00000
3 1.5 4 6 Apartment 244.00000
3 2.0 0 4 Apartment 125.00000
3 2.0 1 3 Loft 190.00000
3 2.0 1 4 Apartment 95.00000
3 2.0 1 4 Guest suite 145.00000
3 2.0 1 4 Serviced apartment 149.00000
3 2.0 2 3 Apartment 195.33333
3 2.0 2 3 Bed and breakfast 125.00000
3 2.0 2 4 Apartment 252.00000
3 2.0 2 4 Bed and breakfast 205.00000
3 2.0 2 4 Boat 188.50000
3 2.0 2 4 Condominium 250.00000
3 2.0 2 4 Guest suite 195.00000
3 2.0 2 4 House 226.25000
3 2.0 2 4 Houseboat 275.00000
3 2.0 2 4 Loft 320.00000
3 2.0 2 4 Townhouse 291.00000
3 2.0 2 5 Apartment 302.50000
3 2.0 2 5 House 295.00000
3 2.0 2 5 Houseboat 335.00000
3 2.0 2 5 Townhouse 155.00000
3 2.0 2 6 Apartment 350.00000
3 2.0 2 6 House 355.00000
3 2.0 3 3 House 74.00000
3 2.0 3 4 Apartment 263.32432
3 2.0 3 4 Boat 157.00000
3 2.0 3 4 Condominium 190.00000
3 2.0 3 4 House 220.61538
3 2.0 3 4 Houseboat 638.00000
3 2.0 3 4 Loft 499.66667
3 2.0 3 4 Serviced apartment 285.00000
3 2.0 3 4 Townhouse 325.23077
3 2.0 3 5 Apartment 258.00000
3 2.0 3 5 House 184.50000
3 2.0 3 6 Apartment 359.15385
3 2.0 3 6 Boat 299.00000
3 2.0 3 6 House 199.00000
3 2.0 3 6 Loft 575.00000
3 2.0 3 6 Townhouse 270.00000
3 2.0 3 7 Townhouse 150.00000
3 2.0 3 8 Apartment 450.00000
3 2.0 4 4 Apartment 149.00000
3 2.0 4 4 Houseboat 200.00000
3 2.0 4 6 Apartment 450.00000
3 2.5 2 4 Apartment 221.50000
3 2.5 2 4 Bed and breakfast 260.00000
3 2.5 2 4 House 270.00000
3 2.5 2 5 Loft 400.00000
3 2.5 3 4 Apartment 200.37500
3 2.5 3 4 Bed and breakfast 380.00000
3 2.5 3 4 House 218.00000
3 2.5 3 4 Loft 198.00000
3 2.5 3 4 Townhouse 277.20000
3 2.5 3 5 Apartment 250.00000
3 2.5 3 5 House 600.00000
3 2.5 3 6 Apartment 407.50000
3 2.5 3 6 House 274.50000
3 2.5 3 6 Townhouse 379.50000
3 2.5 3 7 Apartment 400.00000
3 2.5 4 4 Apartment 212.00000
3 2.5 4 4 Townhouse 475.00000
3 3.0 3 4 Apartment 375.00000
3 3.0 3 4 House 225.00000
3 3.0 3 4 Townhouse 360.00000
3 3.0 3 6 Apartment 600.00000
3 3.0 3 8 Apartment 121.00000
3 3.0 4 5 Apartment 375.00000
3 3.5 1 3 House 65.00000
3 3.5 3 4 House 350.00000
3 3.5 3 6 Loft 350.00000
4 0.0 2 4 Boat 175.00000
4 0.5 1 3 Apartment 125.00000
4 0.5 1 4 Bed and breakfast 109.00000
4 0.5 2 4 Boat 291.00000
4 1.0 0 4 Apartment 160.50000
4 1.0 0 4 Bed and breakfast 195.00000
4 1.0 0 4 Boat 93.00000
4 1.0 0 4 Boutique hotel 190.00000
4 1.0 0 4 Houseboat 200.00000
4 1.0 0 4 Loft 185.00000
4 1.0 0 4 Serviced apartment 299.00000
4 1.0 1 2 Apartment 133.00000
4 1.0 1 3 Apartment 475.00000
4 1.0 1 3 Bed and breakfast 160.00000
4 1.0 1 4 Aparthotel 302.00000
4 1.0 1 4 Apartment 188.06250
4 1.0 1 4 Bed and breakfast 138.00000
4 1.0 1 4 Boat 166.50000
4 1.0 1 4 Cabin 75.00000
4 1.0 1 4 Condominium 115.00000
4 1.0 1 4 Guesthouse 200.00000
4 1.0 1 4 House 131.87500
4 1.0 1 4 Houseboat 259.00000
4 1.0 1 4 Loft 360.00000
4 1.0 1 4 Townhouse 106.00000
4 1.0 1 6 Apartment 287.50000
4 1.0 1 8 Apartment 600.00000
4 1.0 2 2 Apartment 115.66667
4 1.0 2 2 House 135.00000
4 1.0 2 3 Apartment 124.75000
4 1.0 2 3 House 100.00000
4 1.0 2 4 Aparthotel 160.00000
4 1.0 2 4 Apartment 199.28750
4 1.0 2 4 Bed and breakfast 207.00000
4 1.0 2 4 Boat 226.58824
4 1.0 2 4 Cabin 200.00000
4 1.0 2 4 Chalet 90.00000
4 1.0 2 4 Condominium 133.33333
4 1.0 2 4 Cottage 125.00000
4 1.0 2 4 Guest suite 145.00000
4 1.0 2 4 Guesthouse 130.00000
4 1.0 2 4 House 181.69444
4 1.0 2 4 Houseboat 211.33333
4 1.0 2 4 Loft 234.28571
4 1.0 2 4 Serviced apartment 260.00000
4 1.0 2 4 Townhouse 191.08333
4 1.0 2 4 Villa 300.00000
4 1.0 2 5 Apartment 171.66667
4 1.0 2 5 Boat 250.00000
4 1.0 2 5 Condominium 250.00000
4 1.0 2 5 House 200.00000
4 1.0 2 5 Houseboat 150.00000
4 1.0 2 6 Aparthotel 269.00000
4 1.0 2 6 Apartment 470.00000
4 1.0 2 6 Townhouse 350.00000
4 1.0 3 2 Apartment 139.00000
4 1.0 3 3 Houseboat 180.00000
4 1.0 3 4 Aparthotel 244.00000
4 1.0 3 4 Apartment 197.32500
4 1.0 3 4 Bed and breakfast 320.00000
4 1.0 3 4 Boat 167.83333
4 1.0 3 4 Condominium 249.66667
4 1.0 3 4 Cottage 225.00000
4 1.0 3 4 House 167.95000
4 1.0 3 4 Houseboat 183.40000
4 1.0 3 4 Loft 181.66667
4 1.0 3 4 Serviced apartment 150.00000
4 1.0 3 4 Townhouse 186.55000
4 1.0 3 5 Apartment 257.58333
4 1.0 3 5 Boat 200.00000
4 1.0 3 5 Condominium 169.00000
4 1.0 3 5 House 176.80000
4 1.0 3 5 Loft 175.00000
4 1.0 3 5 Townhouse 117.00000
4 1.0 3 6 Apartment 248.77778
4 1.0 3 6 Condominium 127.50000
4 1.0 3 6 House 250.00000
4 1.0 3 6 Loft 295.00000
4 1.0 3 6 Townhouse 198.50000
4 1.0 3 7 Apartment 325.00000
4 1.0 3 7 House 215.00000
4 1.0 3 8 Apartment 236.00000
4 1.0 4 4 Apartment 221.72222
4 1.0 4 4 Condominium 350.00000
4 1.0 4 4 House 204.12500
4 1.0 4 4 Loft 275.00000
4 1.0 4 4 Townhouse 202.37500
4 1.0 4 5 Apartment 137.50000
4 1.0 4 5 House 138.75000
4 1.0 4 5 Townhouse 237.00000
4 1.0 4 6 Apartment 212.66667
4 1.0 4 6 House 228.40000
4 1.0 4 6 Houseboat 112.50000
4 1.0 4 6 Townhouse 256.66667
4 1.0 4 7 House 256.00000
4 1.0 4 7 Townhouse 400.00000
4 1.0 4 8 Apartment 400.00000
4 1.0 4 8 House 250.00000
4 1.5 1 4 Apartment 162.90000
4 1.5 1 4 Boat 117.50000
4 1.5 1 4 Loft 217.50000
4 1.5 2 2 Apartment 100.00000
4 1.5 2 2 Serviced apartment 299.00000
4 1.5 2 3 Apartment 100.00000
4 1.5 2 3 Condominium 74.00000
4 1.5 2 3 House 135.00000
4 1.5 2 4 Apartment 259.79104
4 1.5 2 4 Boat 250.00000
4 1.5 2 4 Boutique hotel 190.00000
4 1.5 2 4 Condominium 120.50000
4 1.5 2 4 Cottage 143.00000
4 1.5 2 4 Guest suite 127.00000
4 1.5 2 4 House 226.40000
4 1.5 2 4 Houseboat 299.00000
4 1.5 2 4 Loft 250.00000
4 1.5 2 4 Townhouse 245.80000
4 1.5 2 4 Villa 175.00000
4 1.5 2 5 Apartment 195.00000
4 1.5 2 5 House 125.00000
4 1.5 2 5 Townhouse 115.00000
4 1.5 2 6 Apartment 382.50000
4 1.5 2 6 House 230.00000
4 1.5 2 6 Serviced apartment 265.00000
4 1.5 2 7 Apartment 363.66667
4 1.5 3 2 Apartment 109.00000
4 1.5 3 3 Apartment 139.00000
4 1.5 3 4 Apartment 187.75610
4 1.5 3 4 Boat 175.00000
4 1.5 3 4 Condominium 275.00000
4 1.5 3 4 House 171.94118
4 1.5 3 4 Houseboat 275.00000
4 1.5 3 4 Loft 225.00000
4 1.5 3 4 Townhouse 169.33333
4 1.5 3 5 Apartment 290.00000
4 1.5 3 5 Condominium 179.00000
4 1.5 3 5 House 179.33333
4 1.5 3 5 Townhouse 125.00000
4 1.5 3 6 Apartment 800.00000
4 1.5 3 6 Boat 301.00000
4 1.5 3 6 Loft 329.00000
4 1.5 3 6 Townhouse 251.66667
4 1.5 4 4 Apartment 199.90000
4 1.5 4 4 House 173.83333
4 1.5 4 4 Townhouse 254.14286
4 1.5 4 5 Apartment 700.00000
4 1.5 4 5 House 173.33333
4 1.5 4 6 House 187.50000
4 1.5 4 6 Loft 230.00000
4 1.5 4 6 Townhouse 470.00000
4 1.5 4 8 House 150.00000
4 2.0 0 6 House 185.00000
4 2.0 1 4 Apartment 187.50000
4 2.0 1 4 Hostel 90.00000
4 2.0 1 4 House 120.00000
4 2.0 1 4 Other 269.00000
4 2.0 2 4 Apartment 249.51429
4 2.0 2 4 Bed and breakfast 195.00000
4 2.0 2 4 Condominium 175.00000
4 2.0 2 4 House 208.75000
4 2.0 2 4 Houseboat 275.00000
4 2.0 2 4 Loft 400.00000
4 2.0 2 4 Townhouse 226.25000
4 2.0 2 5 Apartment 187.50000
4 2.0 2 6 Boat 300.00000
4 2.0 2 6 Loft 175.00000
4 2.0 3 4 Apartment 295.24000
4 2.0 3 4 Condominium 250.00000
4 2.0 3 4 House 230.03333
4 2.0 3 4 Houseboat 375.00000
4 2.0 3 4 Loft 150.00000
4 2.0 3 4 Townhouse 281.81818
4 2.0 3 5 Apartment 245.00000
4 2.0 3 5 House 177.50000
4 2.0 3 5 Loft 158.00000
4 2.0 3 5 Townhouse 150.00000
4 2.0 3 6 Apartment 329.00000
4 2.0 3 6 House 140.00000
4 2.0 3 6 Houseboat 595.00000
4 2.0 3 6 Townhouse 225.00000
4 2.0 3 7 House 249.00000
4 2.0 3 8 House 200.00000
4 2.0 4 4 Apartment 273.00000
4 2.0 4 4 Boat 375.00000
4 2.0 4 4 House 236.40000
4 2.0 4 4 Houseboat 420.00000
4 2.0 4 4 Loft 935.00000
4 2.0 4 4 Townhouse 272.50000
4 2.0 4 4 Villa 200.00000
4 2.0 4 6 Apartment 344.25000
4 2.0 4 6 House 306.25000
4 2.0 4 6 Houseboat 275.00000
4 2.0 4 6 Loft 249.00000
4 2.0 4 6 Townhouse 438.33333
4 2.0 4 6 Villa 280.00000
4 2.0 4 7 Townhouse 310.00000
4 2.0 4 8 Apartment 431.16667
4 2.0 4 8 House 304.50000
4 2.0 4 8 Loft 300.00000
4 2.0 5 8 Apartment 650.00000
4 2.5 2 4 Apartment 286.42857
4 2.5 2 4 Boat 170.00000
4 2.5 2 4 Serviced apartment 250.00000
4 2.5 3 4 Apartment 294.81818
4 2.5 3 4 House 244.66667
4 2.5 3 4 Loft 250.00000
4 2.5 3 4 Townhouse 235.00000
4 2.5 3 6 House 300.00000
4 2.5 4 4 Apartment 249.33333
4 2.5 4 4 House 190.00000
4 2.5 4 4 Houseboat 460.00000
4 2.5 4 4 Loft 200.00000
4 2.5 4 4 Townhouse 350.00000
4 2.5 4 5 House 237.50000
4 2.5 4 5 Townhouse 180.00000
4 2.5 4 6 Boat 250.00000
4 2.5 4 6 House 121.00000
4 2.5 4 6 Townhouse 185.00000
4 2.5 4 6 Villa 325.00000
4 2.5 8 4 House 300.00000
4 3.0 2 4 Apartment 220.00000
4 3.0 3 4 Apartment 430.00000
4 3.0 3 4 Houseboat 363.00000
4 3.0 3 8 Apartment 240.00000
4 3.0 3 8 House 285.00000
4 3.0 4 4 Apartment 295.00000
4 3.0 4 4 House 216.66667
4 3.0 4 4 Townhouse 290.75000
4 3.0 4 6 Apartment 343.00000
4 3.0 4 7 House 390.00000
4 3.0 4 8 Apartment 850.00000
4 3.5 3 4 Apartment 285.00000
4 3.5 3 4 Townhouse 412.50000
4 3.5 3 6 Townhouse 350.00000
4 3.5 4 4 Apartment 460.00000
4 3.5 4 4 House 150.00000
4 3.5 4 4 Townhouse 200.00000
4 4.0 3 8 House 2200.00000
4 4.0 4 8 Townhouse 500.00000
4 5.0 4 4 House 180.00000
4 10.0 1 4 Townhouse 120.00000
4 100.5 1 4 Apartment 65.00000
4 NA 1 4 Apartment 100.00000
5 0.0 1 3 Boat 30.00000
5 1.0 0 5 Boat 175.00000
5 1.0 1 3 Apartment 110.00000
5 1.0 1 4 Apartment 295.00000
5 1.0 1 5 Loft 120.00000
5 1.0 1 6 Apartment 274.50000
5 1.0 2 4 Apartment 237.00000
5 1.0 2 4 Bed and breakfast 90.00000
5 1.0 2 4 Condominium 150.00000
5 1.0 2 4 Houseboat 175.00000
5 1.0 2 5 Apartment 188.77778
5 1.0 2 5 Guesthouse 199.00000
5 1.0 2 6 Apartment 155.00000
5 1.0 2 7 House 186.00000
5 1.0 2 8 Apartment 240.00000
5 1.0 3 2 Townhouse 99.00000
5 1.0 3 4 Apartment 200.00000
5 1.0 3 4 House 171.16667
5 1.0 3 4 Houseboat 275.00000
5 1.0 3 4 Loft 250.00000
5 1.0 3 4 Townhouse 183.00000
5 1.0 3 4 Villa 240.00000
5 1.0 3 5 Apartment 186.78571
5 1.0 3 5 Boat 185.00000
5 1.0 3 5 Condominium 240.00000
5 1.0 3 5 House 183.18182
5 1.0 3 5 Townhouse 303.00000
5 1.0 3 6 Apartment 198.00000
5 1.0 3 6 House 240.00000
5 1.0 3 6 Houseboat 150.00000
5 1.0 3 6 Loft 290.00000
5 1.0 3 7 Apartment 165.00000
5 1.0 3 7 Bed and breakfast 70.00000
5 1.0 3 8 Apartment 119.00000
5 1.0 4 4 Apartment 186.25000
5 1.0 4 4 House 175.37500
5 1.0 4 4 Loft 475.00000
5 1.0 4 4 Townhouse 206.00000
5 1.0 4 4 Villa 217.50000
5 1.0 4 5 Apartment 245.00000
5 1.0 4 5 House 224.83333
5 1.0 4 5 Houseboat 195.00000
5 1.0 4 5 Townhouse 267.66667
5 1.0 4 6 Townhouse 395.00000
5 1.0 4 8 Apartment 100.00000
5 1.0 5 4 Apartment 179.00000
5 1.0 5 4 House 200.00000
5 1.0 5 5 Villa 200.00000
5 1.5 2 4 Apartment 194.33333
5 1.5 2 4 Bed and breakfast 120.00000
5 1.5 2 4 House 175.00000
5 1.5 2 4 Loft 213.00000
5 1.5 2 4 Serviced apartment 450.00000
5 1.5 2 5 Apartment 544.50000
5 1.5 2 5 Boat 150.00000
5 1.5 3 4 Apartment 213.75000
5 1.5 3 4 House 200.37500
5 1.5 3 4 Townhouse 192.50000
5 1.5 3 4 Villa 250.00000
5 1.5 3 5 Apartment 249.00000
5 1.5 3 5 House 211.00000
5 1.5 3 5 Townhouse 224.00000
5 1.5 3 6 Apartment 249.00000
5 1.5 3 6 Villa 275.00000
5 1.5 3 7 Apartment 250.00000
5 1.5 4 4 Apartment 255.00000
5 1.5 4 4 House 232.00000
5 1.5 4 4 Loft 350.00000
5 1.5 4 4 Townhouse 150.00000
5 1.5 4 5 House 200.00000
5 1.5 4 6 House 245.00000
5 1.5 4 8 Boat 499.00000
5 1.5 5 6 Houseboat 300.00000
5 1.5 5 10 Apartment 1000.00000
5 2.0 2 4 Apartment 300.00000
5 2.0 2 4 House 185.00000
5 2.0 2 9 Apartment 100.00000
5 2.0 2 10 Townhouse 500.00000
5 2.0 3 4 Apartment 242.50000
5 2.0 3 4 House 212.00000
5 2.0 3 5 Apartment 250.00000
5 2.0 3 5 House 192.71429
5 2.0 3 5 Loft 545.00000
5 2.0 3 5 Townhouse 250.00000
5 2.0 3 7 Apartment 277.00000
5 2.0 3 8 House 328.00000
5 2.0 4 4 Condominium 175.00000
5 2.0 4 4 House 264.00000
5 2.0 4 4 Other 299.00000
5 2.0 4 4 Townhouse 231.00000
5 2.0 4 4 Villa 525.00000
5 2.0 4 5 Apartment 400.00000
5 2.0 4 5 House 190.75000
5 2.0 4 5 Houseboat 150.00000
5 2.0 4 5 Townhouse 314.66667
5 2.0 4 6 Apartment 280.00000
5 2.0 4 6 House 207.50000
5 2.0 4 6 Townhouse 280.00000
5 2.0 4 8 Townhouse 333.33333
5 2.0 4 9 House 170.00000
5 2.0 5 4 Apartment 295.00000
5 2.0 5 4 House 300.00000
5 2.0 5 5 Townhouse 250.00000
5 2.0 5 6 Boat 340.00000
5 2.0 5 8 Villa 350.00000
5 2.0 5 9 House 385.00000
5 2.0 5 10 Apartment 300.00000
5 2.0 5 10 House 825.00000
5 2.5 3 3 Apartment 275.00000
5 2.5 3 4 Apartment 406.66667
5 2.5 3 4 House 232.33333
5 2.5 3 4 Townhouse 290.00000
5 2.5 3 5 House 150.00000
5 2.5 3 5 Townhouse 320.00000
5 2.5 3 6 Houseboat 350.00000
5 2.5 3 6 Loft 325.00000
5 2.5 4 4 Apartment 750.00000
5 2.5 4 5 Townhouse 275.00000
5 2.5 4 6 House 450.00000
5 2.5 4 7 House 210.00000
5 2.5 4 8 House 300.00000
5 2.5 5 4 House 185.00000
5 2.5 5 4 Townhouse 217.50000
5 2.5 5 8 House 249.00000
5 2.5 5 10 Townhouse 999.00000
5 3.0 3 5 House 195.00000
5 3.0 3 5 Townhouse 500.00000
5 3.0 3 7 Apartment 530.00000
5 3.0 4 4 Townhouse 250.00000
5 3.0 4 8 Apartment 1250.00000
5 3.5 5 10 House 475.00000
5 5.5 5 8 Townhouse 2000.00000
6 0.5 2 6 Boat 200.00000
6 0.5 3 6 Boat 179.00000
6 1.0 1 5 Apartment 130.00000
6 1.0 1 6 Boat 348.00000
6 1.0 1 6 Townhouse 95.00000
6 1.0 1 16 Bed and breakfast 3142.00000
6 1.0 2 4 Apartment 240.00000
6 1.0 2 4 Boat 220.00000
6 1.0 2 4 Houseboat 385.00000
6 1.0 2 4 Townhouse 87.00000
6 1.0 2 5 Apartment 299.00000
6 1.0 2 5 Condominium 220.00000
6 1.0 2 6 Apartment 204.00000
6 1.0 2 6 Bed and breakfast 99.00000
6 1.0 2 6 Boat 394.00000
6 1.0 2 6 Condominium 159.00000
6 1.0 2 6 House 87.00000
6 1.0 2 8 Apartment 165.00000
6 1.0 3 3 House 150.00000
6 1.0 3 4 Apartment 282.75000
6 1.0 3 4 Condominium 325.00000
6 1.0 3 4 House 202.57143
6 1.0 3 4 Townhouse 219.50000
6 1.0 3 5 Apartment 115.00000
6 1.0 3 5 Condominium 345.00000
6 1.0 3 5 House 160.00000
6 1.0 3 5 Loft 300.00000
6 1.0 3 5 Townhouse 200.00000
6 1.0 3 6 Apartment 277.84615
6 1.0 3 6 House 261.00000
6 1.0 4 4 Apartment 256.66667
6 1.0 4 4 Boat 280.00000
6 1.0 4 4 House 398.33333
6 1.0 4 4 Townhouse 209.60000
6 1.0 4 5 House 178.33333
6 1.0 4 5 Townhouse 317.50000
6 1.0 4 6 House 219.50000
6 1.0 4 7 Apartment 650.00000
6 1.0 4 8 House 150.00000
6 1.0 5 4 House 130.00000
6 1.0 5 5 House 220.00000
6 1.0 5 6 House 225.00000
6 1.0 6 6 House 209.00000
6 1.5 2 4 Apartment 135.00000
6 1.5 2 4 House 350.00000
6 1.5 2 6 Apartment 110.00000
6 1.5 2 6 Loft 110.00000
6 1.5 3 4 Apartment 311.80000
6 1.5 3 4 House 166.66667
6 1.5 3 4 Houseboat 300.00000
6 1.5 3 5 Apartment 386.50000
6 1.5 3 6 Apartment 311.12500
6 1.5 3 6 Condominium 200.00000
6 1.5 3 6 House 225.00000
6 1.5 3 6 Serviced apartment 750.00000
6 1.5 3 6 Villa 375.00000
6 1.5 3 7 Boat 198.00000
6 1.5 4 4 Apartment 250.00000
6 1.5 4 4 House 110.00000
6 1.5 4 4 Townhouse 227.50000
6 1.5 4 4 Villa 195.00000
6 1.5 4 5 Apartment 140.00000
6 1.5 4 6 Apartment 300.00000
6 1.5 4 6 House 199.00000
6 1.5 4 6 Serviced apartment 650.00000
6 1.5 4 8 House 175.00000
6 2.0 0 6 Townhouse 165.00000
6 2.0 2 6 Apartment 268.50000
6 2.0 2 6 Boat 337.00000
6 2.0 2 6 Condominium 400.00000
6 2.0 3 4 Apartment 237.00000
6 2.0 3 4 House 180.00000
6 2.0 3 4 Loft 524.50000
6 2.0 3 4 Townhouse 353.00000
6 2.0 3 5 House 230.00000
6 2.0 3 6 Apartment 514.25000
6 2.0 3 6 Boat 169.50000
6 2.0 3 6 House 324.50000
6 2.0 3 6 Houseboat 400.00000
6 2.0 3 6 Townhouse 233.00000
6 2.0 3 8 House 200.00000
6 2.0 4 4 Apartment 292.16667
6 2.0 4 4 Barn 400.00000
6 2.0 4 4 House 248.25000
6 2.0 4 4 Townhouse 199.80000
6 2.0 4 5 Apartment 181.66667
6 2.0 4 5 House 191.66667
6 2.0 4 5 Loft 350.00000
6 2.0 4 6 Apartment 300.00000
6 2.0 4 6 Boat 275.00000
6 2.0 4 6 House 321.80000
6 2.0 4 6 Houseboat 445.00000
6 2.0 4 6 Loft 250.00000
6 2.0 4 6 Townhouse 267.00000
6 2.0 4 8 Apartment 240.00000
6 2.0 4 8 House 300.00000
6 2.0 5 4 Cottage 170.00000
6 2.0 5 4 House 275.00000
6 2.0 5 4 Townhouse 350.00000
6 2.0 5 6 Apartment 225.00000
6 2.0 5 6 House 300.00000
6 2.0 5 6 Townhouse 425.00000
6 2.0 5 7 House 400.00000
6 2.0 5 8 Apartment 250.00000
6 2.0 5 8 House 731.33333
6 2.0 5 10 Apartment 900.00000
6 2.5 3 4 Apartment 512.50000
6 2.5 3 4 Townhouse 407.50000
6 2.5 3 6 House 258.00000
6 2.5 3 6 Loft 425.00000
6 2.5 3 6 Townhouse 185.00000
6 2.5 4 4 Townhouse 228.25000
6 2.5 4 6 Apartment 270.00000
6 2.5 4 6 House 325.00000
6 2.5 4 8 House 177.00000
6 2.5 5 4 Condominium 400.00000
6 2.5 5 4 House 500.00000
6 2.5 5 6 House 282.00000
6 3.0 3 6 House 500.00000
6 3.0 4 4 Apartment 550.00000
6 3.0 4 4 Townhouse 350.00000
6 3.0 4 5 Townhouse 425.00000
6 3.0 4 8 Apartment 550.00000
6 3.0 4 8 Loft 745.00000
6 3.0 5 6 House 795.00000
6 3.0 5 8 Apartment 550.00000
6 3.0 5 11 House 495.00000
6 3.5 3 4 Apartment 200.00000
6 3.5 5 8 Townhouse 680.00000
6 4.0 6 8 Townhouse 650.00000
7 1.0 0 6 Loft 295.00000
7 1.0 2 10 Apartment 196.00000
7 1.0 3 4 Apartment 250.00000
7 1.0 3 4 House 130.00000
7 1.0 3 7 Apartment 258.33333
7 1.0 3 12 Boat 420.00000
7 1.0 4 4 Apartment 130.00000
7 1.0 4 6 Apartment 287.50000
7 1.0 4 6 Boat 230.00000
7 1.0 4 6 House 345.00000
7 1.0 4 7 Apartment 395.00000
7 1.0 4 7 House 299.00000
7 1.0 5 11 Townhouse 300.00000
7 1.5 2 8 Apartment 190.00000
7 1.5 3 4 Boat 299.00000
7 1.5 3 6 House 175.00000
7 1.5 4 7 Apartment 649.50000
7 2.0 3 7 House 215.00000
7 2.0 4 4 Apartment 1032.50000
7 2.0 4 4 House 210.00000
7 2.0 4 6 House 250.00000
7 2.0 4 6 Villa 285.00000
7 2.0 4 7 Apartment 350.00000
7 2.0 4 7 House 270.00000
7 2.0 4 7 Houseboat 386.00000
7 2.0 4 7 Villa 175.00000
7 2.0 5 4 House 300.00000
7 2.0 5 4 Townhouse 200.00000
7 2.0 5 6 Houseboat 190.00000
7 2.0 5 7 Apartment 425.00000
7 2.0 5 7 Townhouse 500.00000
7 2.0 5 7 Villa 200.00000
7 2.5 3 8 Apartment 154.00000
7 2.5 4 7 Apartment 450.00000
7 2.5 7 4 House 124.00000
7 3.0 4 4 Loft 800.00000
7 3.0 4 7 House 225.00000
7 4.0 6 8 Apartment 174.00000
7 4.5 5 7 House 350.00000
8 1.0 3 6 Townhouse 200.00000
8 1.0 3 8 Apartment 201.00000
8 1.0 3 8 House 185.00000
8 1.0 4 4 House 500.00000
8 1.0 4 6 Apartment 173.00000
8 1.0 4 8 Apartment 200.00000
8 1.0 4 8 Boat 150.00000
8 1.0 4 8 House 190.00000
8 1.5 2 8 House 175.00000
8 1.5 3 8 Apartment 79.00000
8 1.5 4 4 Apartment 950.00000
8 1.5 4 8 House 195.00000
8 1.5 4 8 Townhouse 229.00000
8 1.5 5 4 House 275.00000
8 1.5 5 8 Boat 250.00000
8 2.0 3 4 Apartment 250.00000
8 2.0 4 4 House 599.00000
8 2.0 4 4 Loft 245.00000
8 2.0 4 6 House 445.00000
8 2.0 4 8 Apartment 260.00000
8 2.0 4 8 Villa 400.00000
8 2.0 5 6 Apartment 315.00000
8 2.0 5 6 Houseboat 303.00000
8 2.0 5 7 Townhouse 185.00000
8 2.5 3 7 Apartment 139.00000
8 2.5 4 8 Apartment 408.50000
8 3.0 1 8 Bed and breakfast 175.00000
8 3.0 1 8 Hostel 175.00000
8 3.0 3 4 House 295.00000
8 3.0 4 6 Townhouse 205.00000
8 3.0 4 7 Townhouse 499.00000
8 3.0 4 8 House 240.00000
8 3.0 4 8 Serviced apartment 623.50000
8 3.0 4 12 Apartment 400.00000
8 3.0 6 4 House 200.00000
8 3.5 5 7 Serviced apartment 700.00000
8 3.5 5 12 Loft 600.00000
8 4.0 4 8 House 400.00000
9 2.0 6 9 House 185.00000
9 3.0 6 4 House 385.00000
10 0.5 1 10 Houseboat 250.00000
10 1.0 2 12 House 225.00000
10 1.5 2 8 Apartment 350.00000
10 1.5 5 10 House 200.00000
10 2.0 5 8 Townhouse 275.00000
10 2.0 5 10 House 450.00000
10 2.5 5 10 Apartment 999.00000
10 3.0 3 9 Apartment 795.00000
10 3.0 5 8 House 376.00000
10 3.5 5 10 House 299.00000
10 3.5 6 4 House 511.00000
10 4.0 6 6 Apartment 314.00000
11 2.0 4 16 Apartment 480.00000
11 2.0 5 10 House 700.00000
11 2.0 5 11 Serviced apartment 900.00000
12 1.0 1 12 Boat 550.00000
12 1.0 1 14 Loft 800.00000
12 1.0 2 12 House 200.00000
12 1.0 6 12 Boat 383.00000
12 1.5 3 12 Apartment 650.00000
12 1.5 5 12 Apartment 650.00000
12 2.0 4 12 Townhouse 345.00000
12 2.0 4 16 Apartment 480.00000
12 2.0 6 12 Boat 450.00000
12 2.5 6 4 Townhouse 450.00000
12 3.0 3 12 Bungalow 280.00000
12 3.0 6 12 Townhouse 500.00000
14 2.0 3 14 Boat 425.00000
14 2.0 7 14 Boat 575.00000
15 2.0 3 16 House 425.00000
16 1.0 5 16 Boat 490.00000
16 1.0 6 16 Boat 398.00000
16 2.0 5 16 Boat 600.00000
16 2.0 5 16 Houseboat 700.00000
16 2.0 6 16 Boat 474.00000
16 2.0 9 16 Boat 600.00000
16 2.0 10 16 Boat 382.00000
16 3.5 7 16 Apartment 1600.00000
16 4.0 10 16 Boat 597.50000
16 8.0 1 16 Bed and breakfast 106.00000
16 8.0 10 16 Boat 33.00000
17 5.0 5 17 Hotel 210.00000
18 1.0 6 16 Boat 495.00000
18 1.5 8 16 Boat 465.00000
18 2.0 8 16 Boat 440.00000
20 2.0 8 16 Boat 495.00000
22 2.0 11 16 Boat 447.00000
26 3.0 10 16 Boat 800.00000
32 4.0 12 16 Boat 286.66667

5) Amenities

Rooms amenities are also important. Whether your unit comes with a pool, parking space, fireplace, kitchen, or close to waterfront could largely change tourists’ staying experience. Hence, we look at all the individual amenities and their effect on price.

#pool
details.sf <- details.sf %>%
  mutate(pool = ifelse(str_detect(amenities, "Pool"), "Yes", "No"))

#Paid parking off premises
details.sf <- details.sf %>%
  mutate(parking = ifelse(str_detect(amenities, "Paid parking off premises"), 
                          "Yes", "No"))

#Indoor fireplace
details.sf <- details.sf %>%
  mutate(fireplace = ifelse(str_detect(amenities, "Indoor fireplace"), 
                          "Yes", "No"))

#Waterfront
details.sf <- details.sf %>%
  mutate(waterfront = ifelse(str_detect(amenities, "Waterfront"), 
                          "Yes", "No"))

#Kitchen
details.sf <- details.sf %>%
  mutate(kitchen = ifelse(str_detect(amenities, "Kitchen"), 
                          "Yes", "No"))

#Air conditioning
details.sf <- details.sf %>%
  mutate(AC = ifelse(str_detect(amenities, "Air conditioning"), 
                          "Yes", "No"))
amenitie_vars <- c('fireplace','waterfront','pool','parking','kitchen','AC')
plotList <- list()

for (i in amenitie_vars){
plotList[[i]] <- 
  details.sf %>%st_drop_geometry() %>% 
  dplyr::select(price,i) %>%
  filter(price<500) %>% 
  gather(Variable, value, -price) %>%
    ggplot(aes(value, price, fill=value)) + 
      geom_boxplot() +
      scale_fill_manual(values = c("#FFDD94", "#CCABDB")) +
      labs(x="Amenity Status", y="Price",
           title = i) +
      theme(legend.position = "none") +
  plotTheme()
}

do.call(grid.arrange,c(plotList, ncol = 3, top = "Price w/ vs. w/o Amenities"))

From the box plot above, we can tell that fireplace, waterfront, pool, and kitchen seem to have a decent influence on price, while parking and AC have subtle effect. Since Amsterdam is usually cool in the summer and chilly in winter, it makes sense why AC maybe less appealing than fireplace. We

Aggregated Amenities:

In addition to each amenities listed above, we also included a feature named ‘amenities.number’ to explore the aggregated effect of amenities. Sometimes, regardless of specific types of amenities, simply the fact of having multiple amenities may increase the price visitors are willing to pay for an Airbnb.

New Features & Engineering

In addition to internal features that we examined earlier, we also want to take some external factors that are critical for tourists into considerations – the neighborhood (area), distance to public transit stops, and distance to some tourists attractions (e.g. museums) and external amenities (supermarkets and convenience shops). As tourists can benefit a lot from close proximity to sites they want to visit or amenities, the price may go up for those units that are closer to those places.

New Feature 1: Spatial Lag & Neighborhood Effect

There is a subtle difference between neighborhood effect – spatial lag takes the price / revenue of surrounding areas and use the spatial lag revenue as a factor for pricing; neighborhood effect considers the spatial aspects and use neighborhood as a factor, since the location of a unit may silently speak for many other factors that may impact the price. Here we are considering both.

Neighborhood Effect

To account for neighborhood effect, we used the smaller scale 481 neighborhood system instead of the larger districts to increase precision.

details.sf.neighbor <- st_intersection(details.sf,zipcode4) %>% 
  dplyr::select(id, Postcode4) %>% 
  st_drop_geometry()

details.sf <- left_join(details.sf,details.sf.neighbor,by='id')
neighbor2 <- neighbor2 %>% 
  st_transform(st_crs(listings.sf))

listing.sf.neighbor2 <- st_intersection(listings.sf,neighbor2) %>% 
  dplyr::select(id, Buurt,Buurt_code) %>% 
  mutate(count=1) %>% st_drop_geometry()

listing.sf.neighbor2$id <- as.character(listing.sf.neighbor2$id)

detail.sf <- left_join(details.sf,listing.sf.neighbor2, by = "id")

Spatial Lag

To calculate spatial lag, we used revenue instead of price because while price may be a subjective decision by the host, revenue speaks more about the market and how this area is doing in terms of profitability. Whether or not a host is likely to profit may impact their business decisions.

occupancy3 <- occupancy %>%
  dplyr::rename(id = listing_id) 
  
occupancy3 <-  
  left_join(occupancy3, st_drop_geometry(details.sf), by = "id")
listing_panel <- listing_panel%>%
   dplyr::rename(id = listing_id)

revenue_panel <- merge(occupancy3,listing_panel[c("id","month","each_month_price")],by=c("id","month")) %>%
  mutate(revenue = each_month_price*monthly_occupancy)
annualrevenue <- revenue_panel %>%
  group_by(id) %>%
  dplyr::summarise(annual_revenue = sum(revenue))


annualrevenue<- left_join(details.sf, annualrevenue,by="id")%>%
    filter(!id %in% no_price)%>%
    mutate(bathrooms = as.numeric(bathrooms),
         bedrooms = as.numeric(bedrooms))
annualrevenue<- annualrevenue %>%
  drop_na(annual_revenue) %>%
  filter(annual_revenue <= 500000)

coords <- st_coordinates(annualrevenue) 

neighborList <- knn2nb(knearneigh(coords, 5))

spatialWeights <- nb2listw(neighborList, style="W")


annualrevenue$lagRevenue <- lag.listw(spatialWeights, annualrevenue$annual_revenue)
ggplot(annualrevenue)+
  geom_point(aes(x = price, y = annual_revenue), alpha = 0.26)+
  geom_smooth(aes(x = price, y =annual_revenue), method = "lm", se= FALSE, color = "orange")+
  labs(title="Price as a function of lagRevenue", y='Price', x = 'Lag Annual Revenue') +
  plotTheme()

The graph above shows price as function of lag annual revenue. We can recognize a clear positive correlation from this graph – the more money neighboring Airbnb makes, the higher an Airbnb is tend to price since they may have the confidence of having sufficient demand. We therefore also included lagRevenue into our model.

New Feature 2: Access to Public Transit

The second set of features is the proximity to public transit. We first plotted the existing metro and tram stations in the city. We can see a pretty clear pattern of higher density of Aibnb near stations. But, does it matter when it comes to pricing?

This also hints that if the government are to generate new policies for encouraging development in other areas, including directing more Airbnb hosts to rent out units in peripheral areas, they may need to solve the public transit accessibility issue first.

listings$longitude = as.numeric(listings$longitude)
listings$latitude = as.numeric(listings$latitude)
listings.sf<- listings %>% 
  st_as_sf(coords = c( "longitude","latitude"), crs = 4326, agr = "constant")

st_crs(metro) <- st_crs(listings.sf)

st_c <- st_coordinates

details.sf.c <- details.sf %>%
  st_transform('ESRI:102013') 

metro.c <- metro%>%
  st_transform('ESRI:102013') 
ggplot()+
  geom_sf(data = neighbor2, aes(fill=q5(airbnb.number)),color='transparent') +
  scale_fill_manual(values = Pink,
                     labels = qBr(neighbor2,'airbnb.number'), name = 'Count of Airbnb') +
  geom_sf(data=metro.c$geometry, aes(color=metro.c$Modaliteit)) +
  scale_color_manual(values=c(palette2[1], '#7171C6'), name = 'Type of Transit') +
  labs(title = "Public Transit & Number of Airbnb", subtitle = "Amsterdam, NL; 2018") +
  mapTheme()

#multi-ring buffer 
Metro_MRB <- multipleRingBuffer(st_union(metro.c), 6500, 500)

#USE FOR REG: MRB Spatial Join 
details.sf.c.MetroRings <-
  st_join(dplyr::select(details.sf.c, id),
          Metro_MRB) %>%
  st_drop_geometry() %>% 
  left_join(details.sf.c, annualrevenue,
            by="id") %>%
  st_sf()%>%
  mutate(metro.dist = distance/1000)

#Adding the variable to the data set
details.sf <- 
  left_join(details.sf, details.sf.c.MetroRings %>% st_drop_geometry() %>% dplyr::select(metro.dist, id), by="id")

#FOR VIS ONLY: Creating a summary table of the ring data 
details.Rings.Summary <- details.sf.c.MetroRings %>%
  dplyr::select(metro.dist, price)%>%
  st_drop_geometry()%>%
  group_by(metro.dist)%>%
  dplyr::summarize(Price=median(price, na.rm=T))

#FOR VIS ONLY: Line Plot of the summary table 
ggplot(data=details.Rings.Summary, aes(x=metro.dist, y=Price),)+
  geom_line(size=1.5)+
  geom_point(size = 3)+  
  labs(title = "Price as a Function of Distance from a Metro Station", 
       subtitle = "Amsterdam Airbnb Data, 2018", 
       x="Distance from a Metro Station (KM)",
       y="Price (2018 Euro)")+
  theme(plot.title = element_text(size=18))

The plot above shows an interesting pattern of the relationship between price and distance from metro station. we can see a declining trend from the closest to station to around 4.5 km, then a striking increase in price. This could be due to the fact that after 4.5 it falls into the close proximity to another station, hence the price is risen again. The dramatic ups and downs also signals that it might be a valid factor for pricing.

annualrevenue <-
  annualrevenue %>%
  left_join(details.sf.c.MetroRings %>% st_drop_geometry %>% dplyr::select(metro.dist, id), by = 'id')

New Feature 3: Proximity to Tourist Amenities

The third set of features we look at are tourist amenities, including UNESCO sites, parks, tourist attractions, museums, malls, convenience shops, plazas, and supermarkets. They are either possible incentives for tourists or just amenities for convenience / daily shopping. Given the fact that Airbnb is unlike hotel where all kinds of services are provided, tourists staying at Airbnb may be visiting shopping facilities more frequently to do last-minute shopping.

unesco <-
  #st_read('UnescoWerelderfgoed_region.shp') %>%
  st_read('geojson_lnglat.json') %>%
  st_transform('ESRI:102013')

parks <- st_read('parks.json') %>% 
  st_transform('ESRI:102013')

attraction <- st_read('amsterdam-attraction.csv') %>% 
  filter(lat != 'attraction')
attraction <- st_as_sf(attraction,coords = c('lng','lat'),crs = 4326) %>% 
  st_transform('ESRI:102013')

parks <- attraction %>% 
  filter(subCategory == 'Park')

museum <- attraction %>% 
  filter(subCategory == 'Museum')
#supermarkets
supermarkets <- getbb('Amsterdam') %>% 
  opq() %>% 
  add_osm_feature('shop','supermarket') %>% 
  osmdata_sf() 

supermarkets <- supermarkets$osm_points %>% 
  dplyr::select(geometry)%>% 
  st_transform('ESRI:102013')%>% 
  dplyr::select(geometry) %>% 
  mutate(Legend = "supermarkets")

convenienceshop <- getbb('Amsterdam') %>% 
  opq() %>% 
  add_osm_feature('shop','convenience') %>% 
  osmdata_sf() 

convenienceshop <- convenienceshop$osm_points %>% 
  dplyr::select(geometry)%>% 
  st_transform('ESRI:102013')%>% 
  dplyr::select(geometry) %>% 
  mutate(Legend = "convenienceshop")

mall <- getbb('Amsterdam') %>% 
  opq() %>% 
  add_osm_feature('shop','mall') %>% 
  osmdata_sf() 

mall<- mall$osm_points %>% 
  dplyr::select(geometry)%>% 
  st_transform('ESRI:102013') %>% 
  dplyr::select(geometry) %>% 
  mutate(Legend = "mall")

attraction <- st_as_sf(attraction,coords = c('lng','lat'),crs = 4326) %>% 
  st_transform('ESRI:102013')


plaza <- attraction %>% 
  filter(subCategory == 'Plaza') 


beach <- attraction %>% 
  filter(subCategory == 'Beach') 


nightclub <- attraction %>% 
  filter(subCategory == 'Nightclub') 
dist <- 1000

details.sf.c.attractions <- details.sf %>%
  dplyr::select(id)

#malls
mallBuffer <- st_union(st_buffer(mall, dist))%>%
    st_sf()

details.sf.c.attractions <- 
  rbind(
    details.sf.c[mallBuffer,] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(mall.close = "y"),
    details.sf.c[mallBuffer, op = st_disjoint] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(mall.close = "n"))
  
#supermarkets
supermarketsBuffer <- st_union(st_buffer(supermarkets, dist))%>%
    st_sf()

details.sf.c.attractions <- 
  rbind(
    details.sf.c[supermarketsBuffer,] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(supermarkets.close = "y"),
    details.sf.c[supermarketsBuffer, op = st_disjoint] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(supermarkets.close = "n"))

#dist.convenienceshop

details.sf.c.attractions <- 
  rbind(
    details.sf.c[st_union(st_buffer(convenienceshop, dist)),] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(convenienceshop.close = "y"),
    details.sf.c[st_union(st_buffer(convenienceshop, dist)), op = st_disjoint] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(convenienceshop.close = "n"))

#dist.museum
details.sf.c.attractions <- 
  rbind(
    details.sf.c[st_union(st_buffer(museum, dist)),] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(museum.close = "y"),
    details.sf.c[st_union(st_buffer(museum, dist)), op = st_disjoint] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(museum.close = "n"))

#dist.plaza
details.sf.c.attractions <- 
  rbind(
    details.sf.c[st_union(st_buffer(plaza, dist)),] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(plaza.close = "y"),
    details.sf.c[st_union(st_buffer(plaza, dist)), op = st_disjoint] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(plaza.close = "n"))

#dist.nightclub
details.sf.c.attractions <- 
  rbind(
    details.sf.c[st_union(st_buffer(nightclub, dist)),] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(nightclub.close = "y"),
    details.sf.c[st_union(st_buffer(nightclub, dist)), op = st_disjoint] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(nightclub.close = "n"))

#dist.beach
details.sf.c.attractions <- 
  rbind(
    details.sf.c[st_union(st_buffer(beach, dist)),] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(beach.close = "y"),
    details.sf.c[st_union(st_buffer(beach, dist)), op = st_disjoint] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(beach.close = "n"))

#dist.parks
details.sf.c.attractions <- 
  rbind(
    details.sf.c[st_union(st_buffer(parks, dist)),] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(parks.close = "y"),
    details.sf.c[st_union(st_buffer(parks, dist)), op = st_disjoint] %>%
      st_drop_geometry() %>%
      left_join(details.sf.c.attractions) %>%
      st_sf() %>%
      mutate(parks.close = "n"))

details.sf.attractions <-
  left_join(details.sf, st_drop_geometry(details.sf.c.attractions), by="id")
table.distance <- details.sf.attractions %>% 
  st_drop_geometry() %>% 
  dplyr::select(price.y, museum.close,plaza.close,nightclub.close,beach.close,
                  supermarkets.close, parks.close, mall.close, convenienceshop.close)

table.distance %>%
  gather(Variable, value, -price.y) %>%
    ggplot(aes(value, price.y, fill=value)) + 
      geom_bar(position = "dodge", stat = "summary", fun = "mean") + 
      facet_wrap(~Variable, scales = "free") +
      scale_fill_manual(values = palette2) +
      labs(x="Within 1KM?", y="Average Price", 
           title = "Feature Associations with Proximity to Attractions",
           subtitle = "Amsterdam Airbnbs, 2018") +
      theme(legend.position = "none")

Similar to internal amenities, we drew box plots for external amenities. We compared price of Airbnb that has particular amenities within the 1km walkable distance, versus without those amenities in close proximity. We can see that apart from beach, nightclubs, and parks, all five other factors seem to make a difference when it comes to determining Airbnb price.

annualrevenue <-
  annualrevenue %>%
  left_join(details.sf.c.attractions %>% st_drop_geometry %>% dplyr::select(id, convenienceshop.close, mall.close, museum.close, plaza.close, supermarkets.close), by = 'id')

Feature Review: Correlation Matrix

The correlation matrix below is a quick check-up on whether our factors are correlated to each other. If they are, we will choose one to include in model and the other(s) to disregard. Apart from beds and bedrooms, all other factors seem to be fine to be included in the model simultaneously.

numericVars <- 
  select_if(st_drop_geometry(annualrevenue), is.numeric) %>% na.omit() %>% 
  dplyr::select(annual_revenue,price,beds, bedrooms, bathrooms, 
                              minimum_nights,
                              amenities.number, metro.dist)

ggcorrplot(
  round(cor(numericVars), 1), 
  p.mat = cor_pmat(numericVars),
  colors = c("#4757a2", "white", "#E46B45"),
  type="lower",
  insig = "blank") +  
    labs(title = "Correlation across numeric variables") 

Regression Model

We are using linear regression OLS model for this machine learning task.

Data Split: Testing & Training

To train and test our model, we are splitting the existing data into 60% for training and 40% for testing. Since several neighborhoods only have 1 Airbnb in the area, we are keeping those data in the training set to avoid errors. However, we are aware that this results more neighbors having NAs.

annualrevenue <- merge(annualrevenue,listing.sf.neighbor2[c("id", "Buurt")], by = "id")
#Split training and test set
annualrevenue <- annualrevenue%>% st_drop_geometry()
set.seed(31497)

inTrain <- caret::createDataPartition(
  y =  paste(annualrevenue$Buurt),
  p = .6, list = FALSE)

annualrevenue.training <- st_drop_geometry(annualrevenue)[inTrain,]
annualrevenue.test     <- st_drop_geometry(annualrevenue)[-inTrain,]

Regression Results

The long table below shows the regression results from our model. The model has \(R^2\) of 0.426 and most of the features we included appear to be significant. Although 0.426 may not be a high model for price prediction, we want to acknowledge the fact that Airbnb price may be more subjective, fluctuating, and unstable than house prices due to many unforeseeable factors.

reg.annualrevenue <- lm(price ~ ., data = st_drop_geometry(annualrevenue) %>% 
             dplyr::select(price, beds, bedrooms, bathrooms, accommodates,
                              pool, parking, kitchen, AC, fireplace,
                              room_type,property_type,bed_type, Buurt,
                              minimum_nights, convenienceshop.close, mall.close, museum.close,
                              plaza.close, supermarkets.close,
                              amenities.number,lagRevenue, metro.dist)) 

stargazer(reg.annualrevenue,
          type = "text",
          title ="Regression Output",
          single.row = TRUE,
          out.header = TRUE)
## 
## Regression Output
## =======================================================================
##                                                 Dependent variable:    
##                                             ---------------------------
##                                                        price           
## -----------------------------------------------------------------------
## beds                                               0.553 (0.779)       
## bedrooms                                         21.595*** (1.066)     
## bathrooms                                        4.544*** (0.703)      
## accommodates                                     22.155*** (0.754)     
## poolYes                                           15.749* (8.801)      
## parkingYes                                       9.563*** (1.447)      
## kitchenYes                                        4.264* (2.301)       
## ACYes                                            22.615*** (2.752)     
## fireplaceYes                                     33.248*** (2.498)     
## room_typePrivate room                           -34.166*** (1.650)     
## room_typeShared room                            -42.477*** (9.784)     
## property_typeApartment                          -37.675*** (9.809)     
## property_typeBarn                                -29.573 (40.038)      
## property_typeBed and breakfast                  -28.035*** (10.546)    
## property_typeBoat                               -31.779*** (10.661)    
## property_typeBoutique hotel                      -12.533 (17.841)      
## property_typeBungalow                            -22.145 (29.906)      
## property_typeCabin                               -21.923 (23.194)      
## property_typeCamper/RV                           -90.810 (55.749)      
## property_typeCampsite                            -69.031 (57.643)      
## property_typeCasa particular (Cuba)               -4.534 (35.637)      
## property_typeCastle                              -37.605 (77.178)      
## property_typeChalet                              -34.975 (45.723)      
## property_typeCondominium                        -36.010*** (10.696)    
## property_typeCottage                             -28.512 (25.435)      
## property_typeEarth house                         -52.881 (76.736)      
## property_typeGuest suite                        -40.507*** (11.684)    
## property_typeGuesthouse                          -22.132 (15.862)      
## property_typeHostel                              -29.629 (41.344)      
## property_typeHotel                                -3.484 (30.731)      
## property_typeHouse                              -30.511*** (10.081)    
## property_typeHouseboat                            -6.386 (11.136)      
## property_typeLighthouse                         667.496*** (79.423)    
## property_typeLoft                                 -3.672 (10.514)      
## property_typeNature lodge                         26.590 (81.860)      
## property_typeOther                              -35.733** (14.762)     
## property_typeServiced apartment                  29.532** (13.812)     
## property_typeTent                                -43.168 (80.574)      
## property_typeTiny house                          -36.244 (35.847)      
## property_typeTownhouse                          -26.219** (10.295)     
## property_typeVilla                               -13.132 (17.276)      
## bed_typeCouch                                    -26.797 (43.084)      
## bed_typeFuton                                     -7.595 (22.902)      
## bed_typePull-out Sofa                             0.927 (20.872)       
## bed_typeReal Bed                                  10.019 (19.847)      
## BuurtAalsmeerwegbuurt West                      35.143*** (10.604)     
## BuurtAlexanderplein e.o.                         42.658* (24.094)      
## BuurtAmstel III deel A/B Noord                    -7.352 (76.806)      
## BuurtAmstelglorie                                 -0.891 (25.590)      
## BuurtAmstelkwartier Noord                        32.510** (13.989)     
## BuurtAmstelkwartier West                          -2.734 (35.511)      
## BuurtAmstelkwartier Zuid                          33.744 (76.823)      
## BuurtAmstelpark                                  -71.799 (77.047)      
## BuurtAmstelveldbuurt                            126.564*** (13.380)    
## BuurtAmsterdamse Bos                              19.128 (26.876)      
## BuurtAmsterdamse Poort                            -9.780 (24.864)      
## BuurtAndreasterrein                               13.350 (23.928)      
## BuurtAnjeliersbuurt Noord                       57.773*** (12.510)     
## BuurtAnjeliersbuurt Zuid                        54.526*** (11.949)     
## BuurtArchitectenbuurt                             3.238 (18.204)       
## BuurtBalboaplein e.o.                             15.673 (11.988)      
## BuurtBanne Noordoost                             -22.560 (23.110)      
## BuurtBanne Noordwest                              16.230 (25.795)      
## BuurtBanne Zuidoost                              -19.975 (18.654)      
## BuurtBanne Zuidwest                               2.862 (21.075)       
## BuurtBanpleinbuurt                               42.261** (21.480)     
## BuurtBedrijvencentrum Osdorp                      36.418 (76.491)      
## BuurtBedrijvencentrum Westerkwartier             -24.935 (32.409)      
## BuurtBedrijvengebied Cruquiusweg                  3.315 (39.166)       
## BuurtBedrijvengebied Veelaan                      16.839 (76.510)      
## BuurtBedrijvengebied Zeeburgerkade               84.986* (44.902)      
## BuurtBedrijvenpark Lutkemeer                     -103.888 (77.467)     
## BuurtBedrijventerrein Hamerstraat                 -4.208 (25.927)      
## BuurtBedrijventerrein Landlust                    15.188 (16.131)      
## BuurtBedrijventerrein Schinkel                    21.193 (16.474)      
## BuurtBeethovenbuurt                             55.193*** (21.216)     
## BuurtBegijnhofbuurt                             117.235*** (17.552)    
## BuurtBelgiëplein e.o.                             0.776 (35.267)       
## BuurtBellamybuurt Noord                         32.077*** (11.585)     
## BuurtBellamybuurt Zuid                           26.075** (10.877)     
## BuurtBertelmanpleinbuurt                          21.082 (20.081)      
## BuurtBetondorp                                   -23.166 (20.862)      
## BuurtBG-terrein e.o.                            59.245*** (15.166)     
## BuurtBijlmermuseum Noord                          37.116 (35.804)      
## BuurtBijlmermuseum Zuid                          -50.627 (35.775)      
## BuurtBijlmerpark Oost                             -5.176 (54.717)      
## BuurtBlauwe Zand                                 -17.971 (16.018)      
## BuurtBloemenbuurt Noord                           -2.490 (16.294)      
## BuurtBloemenbuurt Zuid                           -12.445 (16.044)      
## BuurtBloemgrachtbuurt                           64.940*** (11.472)     
## BuurtBorgerbuurt                                33.633*** (11.700)     
## BuurtBorneo                                       3.687 (14.120)       
## BuurtBosleeuw                                     -0.833 (11.513)      
## BuurtBretten Oost                                 63.320 (76.814)      
## BuurtBuiksloterbreek                             -10.179 (28.781)      
## BuurtBuiksloterdijk West                          -4.209 (35.731)      
## BuurtBuiksloterham                                22.447 (32.598)      
## BuurtBuikslotermeer Noord                        -22.314 (25.913)      
## BuurtBuikslotermeerplein                          2.998 (23.198)       
## BuurtBuitenveldert Midden Zuid                   33.960** (16.100)     
## BuurtBuitenveldert Oost Midden                    8.646 (18.357)       
## BuurtBuitenveldert West Midden                   81.099** (35.860)     
## BuurtBuitenveldert Zuidoost                       -0.105 (17.897)      
## BuurtBuitenveldert Zuidwest                       2.636 (15.970)       
## BuurtBurgemeester Tellegenbuurt Oost            42.951*** (13.872)     
## BuurtBurgemeester Tellegenbuurt West             30.002** (14.444)     
## BuurtBurgwallen Oost                            132.658*** (13.129)    
## BuurtBuurt 10                                    -33.986 (30.284)      
## BuurtBuurt 2                                      -3.997 (21.681)      
## BuurtBuurt 3                                     -20.596 (14.300)      
## BuurtBuurt 4 Oost                                 -0.237 (22.640)      
## BuurtBuurt 5 Noord                               -19.185 (32.533)      
## BuurtBuurt 5 Zuid                                -16.319 (24.444)      
## BuurtBuurt 6                                      11.239 (38.780)      
## BuurtBuurt 7                                      10.404 (34.916)      
## BuurtBuurt 8                                      0.677 (24.243)       
## BuurtBuurt 9                                     -54.151 (44.566)      
## BuurtBuyskade e.o.                                17.604 (12.147)      
## BuurtCalandlaan/Lelylaan                         -14.475 (26.851)      
## BuurtCentrumeiland                                23.713 (76.744)      
## BuurtCircus/Kermisbuurt                          -62.709 (47.663)      
## BuurtCoenhaven/Mercuriushaven                     38.978 (76.894)      
## BuurtColumbusplein e.o.                           17.873 (11.601)      
## BuurtConcertgebouwbuurt                         62.511*** (15.124)     
## BuurtCornelis Douwesterrein                       11.140 (55.841)      
## BuurtCornelis Schuytbuurt                       89.987*** (13.469)     
## BuurtCornelis Troostbuurt                       36.467*** (10.813)     
## BuurtCremerbuurt Oost                           41.714*** (11.358)     
## BuurtCremerbuurt West                           27.583*** (10.287)     
## BuurtCzaar Peterbuurt                             5.140 (13.933)       
## BuurtD-buurt                                      -2.483 (31.090)      
## BuurtDa Costabuurt Noord                        49.643*** (10.461)     
## BuurtDa Costabuurt Zuid                         55.354*** (11.598)     
## BuurtDapperbuurt Noord                           25.849** (11.398)     
## BuurtDapperbuurt Zuid                             12.369 (11.625)      
## BuurtDe Aker Oost                                 -5.281 (16.205)      
## BuurtDe Aker West                               -45.290** (22.895)     
## BuurtDe Bongerd                                  -18.050 (17.858)      
## BuurtDe Eenhoorn                                  13.326 (19.758)      
## BuurtDe Kleine Wereld                            -14.556 (28.514)      
## BuurtDe Klenckebuurt                              49.772 (39.176)      
## BuurtDe Omval                                    41.803* (25.042)      
## BuurtDe Punt                                      1.612 (20.281)       
## BuurtDe Wester Quartier                         41.068*** (13.754)     
## BuurtDe Wetbuurt                                  -5.922 (18.107)      
## BuurtDe Wittenbuurt Noord                       39.645*** (13.968)     
## BuurtDe Wittenbuurt Zuid                          22.435 (20.261)      
## BuurtDelflandpleinbuurt Oost                      16.932 (28.012)      
## BuurtDelflandpleinbuurt West                      9.075 (16.126)       
## BuurtDen Texbuurt                               64.358*** (14.564)     
## BuurtDiamantbuurt                                 15.154 (12.765)      
## BuurtDiepenbrockbuurt                             37.977 (35.253)      
## BuurtDon Bosco                                    9.422 (13.824)       
## BuurtDorp Driemond                                4.599 (38.102)       
## BuurtDorp Sloten                                  -4.319 (23.412)      
## BuurtDriehoekbuurt                              51.107*** (11.854)     
## BuurtDuivelseiland                              63.847*** (14.525)     
## BuurtDurgerdam                                   -18.683 (24.346)      
## BuurtE-buurt                                     -14.550 (26.618)      
## BuurtEcowijk                                      12.248 (18.174)      
## BuurtEendrachtspark                              -12.432 (76.556)      
## BuurtElandsgrachtbuurt                          76.607*** (11.300)     
## BuurtElzenhagen Noord                           -30.912** (15.413)     
## BuurtElzenhagen Zuid                              13.170 (76.587)      
## BuurtEmanuel van Meterenbuurt                    -12.440 (18.810)      
## BuurtEntrepot-Noordwest                           2.098 (18.430)       
## BuurtErasmusparkbuurt Oost                        -0.855 (13.980)      
## BuurtErasmusparkbuurt West                        4.838 (10.971)       
## BuurtF-buurt                                     -12.408 (23.723)      
## BuurtFannius Scholtenbuurt                      29.590*** (11.030)     
## BuurtFelix Meritisbuurt                         93.404*** (12.472)     
## BuurtFilips van Almondekwartier                   21.730 (13.752)      
## BuurtFlevopark                                    4.273 (39.199)       
## BuurtFrankendael                                  6.655 (27.035)       
## BuurtFrans Halsbuurt                            35.892*** (11.737)     
## BuurtFrederik Hendrikbuurt Noord                42.887*** (10.746)     
## BuurtFrederik Hendrikbuurt Zuidoost             43.797*** (11.042)     
## BuurtFrederik Hendrikbuurt Zuidwest              23.461* (14.169)      
## BuurtFrederikspleinbuurt                        51.355*** (14.135)     
## BuurtG-buurt Noord                                -4.115 (35.838)      
## BuurtG-buurt Oost                                 -0.201 (22.728)      
## BuurtG-buurt West                                -17.985 (21.250)      
## BuurtGaasperdam Noord                            -20.529 (26.076)      
## BuurtGaasperdam Zuid                            -72.633** (35.403)     
## BuurtGaasperpark                                  35.262 (46.883)      
## BuurtGaasperplas                                 -17.549 (40.470)      
## BuurtGein Noordoost                              -11.997 (21.083)      
## BuurtGein Noordwest                              -25.475 (30.374)      
## BuurtGein Zuidwest                                5.333 (54.608)       
## BuurtGein Zuioost                                -44.856 (28.689)      
## BuurtGelderlandpleinbuurt                         0.861 (14.579)       
## BuurtGerard Doubuurt                            56.063*** (11.816)     
## BuurtGeuzenhofbuurt                               18.096 (12.169)      
## BuurtGibraltarbuurt                               2.262 (11.913)       
## BuurtGouden Bocht                               82.485*** (20.082)     
## BuurtGroenmarktkadebuurt                        41.381*** (15.872)     
## BuurtGrunder/Koningshoef                          38.471 (26.588)      
## BuurtHaarlemmerbuurt Oost                       63.105*** (13.646)     
## BuurtHaarlemmerbuurt West                       46.023*** (12.272)     
## BuurtHakfort/Huigenbos                           -31.004 (33.124)      
## BuurtHarmoniehofbuurt                            53.500** (25.994)     
## BuurtHaveneiland Noord                            -4.536 (19.420)      
## BuurtHaveneiland Noordoost                        1.689 (14.176)       
## BuurtHaveneiland Noordwest                        -2.227 (17.525)      
## BuurtHaveneiland Oost                             -0.716 (13.827)      
## BuurtHaveneiland Zuidwest/Rieteiland West         -8.744 (14.549)      
## BuurtHelmersbuurt Oost                          44.404*** (11.693)     
## BuurtHemelrijk                                  50.912*** (14.572)     
## BuurtHemonybuurt                                49.384*** (11.273)     
## BuurtHercules Seghersbuurt                      53.134*** (12.052)     
## BuurtHet Funen                                    18.021 (17.656)      
## BuurtHiltonbuurt                                 82.887** (39.047)     
## BuurtHolendrecht Oost                            -44.064 (32.802)      
## BuurtHolendrecht West                           205.055*** (76.640)    
## BuurtHolysloot                                   -22.619 (38.805)      
## BuurtHondecoeterbuurt                           52.824*** (15.023)     
## BuurtHoptille                                    -15.954 (33.171)      
## BuurtHouthavens Oost                             38.354* (19.973)      
## BuurtHouthavens West                              22.414 (17.319)      
## BuurtIJplein e.o.                                 8.815 (15.117)       
## BuurtIJsbaanpad e.o.                             46.965** (19.821)     
## BuurtIJselbuurt Oost                              20.715 (13.380)      
## BuurtIJselbuurt West                              13.147 (14.760)      
## BuurtJacob Geelbuurt                              0.439 (35.231)       
## BuurtJacques Veldmanbuurt                         -4.501 (14.411)      
## BuurtJan Maijenbuurt                              9.378 (12.603)       
## BuurtJava-eiland                                  2.706 (17.084)       
## BuurtJohan Jongkindbuurt                          -3.148 (35.282)      
## BuurtJohannnes Vermeerbuurt                     63.062*** (14.138)     
## BuurtJohn Franklinbuurt                           7.940 (13.218)       
## BuurtJulianapark                                  2.471 (32.453)       
## BuurtK-buurt Midden                              -20.507 (54.839)      
## BuurtK-buurt Zuidoost                            -27.612 (30.855)      
## BuurtK-buurt Zuidwest                           -128.402* (76.745)     
## BuurtKadijken                                    33.967** (14.208)     
## BuurtKadoelen                                    -20.864 (19.761)      
## BuurtKalverdriehoek                             59.001*** (16.908)     
## BuurtKantershof                                  -12.207 (27.747)      
## BuurtKattenburg                                   6.718 (21.034)       
## BuurtKazernebuurt                                 26.966 (21.453)      
## BuurtKelbergen                                   -21.085 (45.075)      
## BuurtKNSM-eiland                                  22.409 (14.883)      
## BuurtKolenkitbuurt Noord                         -12.633 (19.292)      
## BuurtKolenkitbuurt Zuid                          -11.316 (15.550)      
## BuurtKoningin Wilhelminaplein                     17.071 (17.421)      
## BuurtKop Zeedijk                                57.007*** (15.070)     
## BuurtKop Zuidas                                  -13.790 (27.047)      
## BuurtKortenaerkwartier                           21.010* (12.324)      
## BuurtKortvoort                                    -7.313 (39.791)      
## BuurtKromme Mijdrechtbuurt                        9.217 (13.704)       
## BuurtL-buurt                                      -7.308 (18.376)      
## BuurtLaan van Spartaan                            17.335 (16.672)      
## BuurtLandelijk gebied Driemond                    20.437 (46.925)      
## BuurtLandlust Noord                               7.127 (12.959)       
## BuurtLandlust Zuid                                12.593 (11.073)      
## BuurtLangestraat e.o.                           78.452*** (13.039)     
## BuurtLastage                                    66.541*** (15.161)     
## BuurtLegmeerpleinbuurt                           26.057* (13.519)      
## BuurtLeidsebuurt Noordoost                      79.708*** (13.367)     
## BuurtLeidsebuurt Noordwest                      58.334*** (16.701)     
## BuurtLeidsebuurt Zuidoost                       56.561*** (16.549)     
## BuurtLeidsebuurt Zuidwest                       82.906*** (18.482)     
## BuurtLeidsegracht Noord                         75.210*** (15.624)     
## BuurtLeidsegracht Zuid                          87.187*** (15.923)     
## BuurtLeliegracht e.o.                           79.910*** (12.941)     
## BuurtLinnaeusparkbuurt                           23.250* (13.644)      
## BuurtLizzy Ansinghbuurt                          30.984** (12.536)     
## BuurtLoenermark                                   3.716 (28.501)       
## BuurtLootsbuurt                                  29.297** (12.326)     
## BuurtLouis Crispijnbuurt                         -12.846 (23.901)      
## BuurtLucas/Andreasziekenhuis e.o.                 8.827 (30.273)       
## BuurtMarathonbuurt Oost                           10.275 (14.847)      
## BuurtMarathonbuurt West                           10.361 (12.136)      
## BuurtMarcanti                                    34.746* (17.892)      
## BuurtMarine-Etablissement                         27.550 (22.065)      
## BuurtMarjoleinterrein                             15.026 (45.641)      
## BuurtMarkengouw Midden                            8.654 (23.136)       
## BuurtMarkengouw Noord                             0.352 (54.750)       
## BuurtMarkengouw Zuid                             -30.527 (77.427)      
## BuurtMarkthallen                                 -14.467 (27.017)      
## BuurtMarnixbuurt Midden                         52.587*** (18.366)     
## BuurtMarnixbuurt Noord                          52.212*** (13.867)     
## BuurtMarnixbuurt Zuid                             28.248 (18.388)      
## BuurtMedisch Centrum Slotervaart                  8.119 (76.304)       
## BuurtMeer en Oever                                -6.555 (22.580)      
## BuurtMercatorpark                                 -8.618 (28.595)      
## BuurtMiddelveldsche Akerpolder                   -10.055 (32.293)      
## BuurtMiddenmeer Noord                             2.136 (13.939)       
## BuurtMiddenmeer Zuid                              -3.485 (11.770)      
## BuurtMinervabuurt Midden                        59.670*** (17.911)     
## BuurtMinervabuurt Noord                         137.250*** (17.985)    
## BuurtMinervabuurt Zuid                           30.847* (16.988)      
## BuurtMolenwijk                                    7.879 (47.972)       
## BuurtMuseumplein                                  33.482 (30.397)      
## BuurtNDSM terrein                                 38.013 (24.132)      
## BuurtNes e.o.                                   61.427*** (15.508)     
## BuurtNieuw Sloten Noordoost                       19.301 (30.212)      
## BuurtNieuw Sloten Noordwest                       12.948 (20.509)      
## BuurtNieuw Sloten Zuidoost                        -6.390 (30.260)      
## BuurtNieuw Sloten Zuidwest                       -19.907 (26.601)      
## BuurtNieuwe Diep/Diemerpark                       27.710 (34.973)      
## BuurtNieuwe Kerk e.o.                           62.775*** (13.374)     
## BuurtNieuwe Meer                                 -17.787 (77.403)      
## BuurtNieuwe Oosterbegraafplaats                   -8.324 (54.505)      
## BuurtNieuwendammerdijk Oost                       5.505 (23.703)       
## BuurtNieuwendammerdijk Zuid                      -18.956 (35.639)      
## BuurtNieuwendammmerdijk West                      -0.222 (16.668)      
## BuurtNieuwendijk Noord                          53.961*** (17.194)     
## BuurtNieuwmarkt                                 95.116*** (14.936)     
## BuurtNintemanterrein                             -28.671 (54.595)      
## BuurtNoorder IJplas                            -560.382*** (78.785)    
## BuurtNoorderstrook Oost                           35.727 (77.329)      
## BuurtNoorderstrook West                          -20.494 (55.569)      
## BuurtNoordoever Sloterplas                       41.632** (16.688)     
## BuurtNoordoostkwadrant Indische buurt             8.097 (11.638)       
## BuurtNoordwestkwadrant Indische buurt Noord       10.170 (10.875)      
## BuurtNoordwestkwadrant Indische buurt Zuid        12.617 (11.035)      
## BuurtOlympisch Stadion e.o.                      -11.080 (21.226)      
## BuurtOokmeer                                      3.976 (35.074)       
## BuurtOostelijke Handelskade                      53.438** (23.312)     
## BuurtOostenburg                                   8.970 (13.605)       
## BuurtOosterdokseiland                           103.886*** (28.691)    
## BuurtOosterpark                                  36.641* (19.489)      
## BuurtOosterparkbuurt Noordwest                   21.189* (11.615)      
## BuurtOosterparkbuurt Zuidoost                    19.151* (11.582)      
## BuurtOosterparkbuurt Zuidwest                    22.854* (12.348)      
## BuurtOostoever Sloterplas                         12.604 (18.768)      
## BuurtOostpoort                                    9.940 (13.424)       
## BuurtOostzanerdijk                               -58.987* (30.654)     
## BuurtOrteliusbuurt Midden                         13.155 (12.993)      
## BuurtOrteliusbuurt Noord                          5.393 (14.167)       
## BuurtOrteliusbuurt Zuid                          21.303* (12.895)      
## BuurtOsdorp Midden Noord                          2.813 (28.524)       
## BuurtOsdorp Midden Zuid                          -13.031 (28.489)      
## BuurtOsdorp Zuidoost                              2.288 (18.314)       
## BuurtOsdorper Binnenpolder                       -28.462 (34.018)      
## BuurtOsdorper Bovenpolder                        -55.751 (46.204)      
## BuurtOsdorpplein e.o.                             -1.599 (24.680)      
## BuurtOude Kerk e.o.                             88.680*** (14.048)     
## BuurtOveramstel                                  -38.943 (78.582)      
## BuurtOverbraker Binnenpolder                      2.642 (39.450)       
## BuurtOverhoeks                                    -8.471 (28.812)      
## BuurtOvertoomse Veld Noord                        10.442 (14.895)      
## BuurtOvertoomse Veld Zuid                         -1.944 (15.673)      
## BuurtP.C. Hooftbuurt                            124.309*** (17.771)    
## BuurtPapaverweg e.o.                             34.358** (15.318)     
## BuurtParamariboplein e.o.                         13.248 (11.008)      
## BuurtPark de Meer                                 4.538 (23.197)       
## BuurtPark Haagseweg                              -33.029 (55.070)      
## BuurtParooldriehoek                              36.841** (18.254)     
## BuurtPasseerdersgrachtbuurt                     101.365*** (16.250)    
## BuurtPieter van der Doesbuurt                     4.515 (12.540)       
## BuurtPlan van Gool                                -3.698 (20.008)      
## BuurtPlanciusbuurt Noord                        154.868*** (28.469)    
## BuurtPlanciusbuurt Zuid                           34.560 (54.513)      
## BuurtPlantage                                   59.099*** (13.903)     
## BuurtPostjeskade e.o.                             16.998 (11.540)      
## BuurtPrinses Irenebuurt                           25.598 (19.521)      
## BuurtRAI                                          1.285 (28.473)       
## BuurtRansdorp                                     2.395 (34.602)       
## BuurtRapenburg                                  41.950*** (14.449)     
## BuurtRechte H-buurt                              -14.913 (31.052)      
## BuurtReguliersbuurt                             62.708*** (22.361)     
## BuurtReigersbos Midden                            0.656 (27.370)       
## BuurtReigersbos Noord                            -28.550 (27.384)      
## BuurtReigersbos Zuid                             -30.475 (39.331)      
## BuurtRembrandtpark Noord                          13.570 (18.052)      
## BuurtRembrandtpark Zuid                           1.266 (15.429)       
## BuurtRembrandtpleinbuurt                        55.087*** (16.197)     
## BuurtRI Oost terrein                              1.334 (17.115)       
## BuurtRieteiland Oost                              43.203 (35.955)      
## BuurtRietlanden                                   19.336 (15.679)      
## BuurtRijnbuurt Midden                             12.306 (13.507)      
## BuurtRijnbuurt Oost                              21.192* (12.649)      
## BuurtRijnbuurt West                               24.166 (19.644)      
## BuurtRobert Scottbuurt Oost                       -0.528 (14.182)      
## BuurtRobert Scottbuurt West                       -6.388 (13.206)      
## BuurtRode Kruisbuurt                             -42.921 (39.230)      
## BuurtSarphatiparkbuurt                          44.888*** (10.434)     
## BuurtSarphatistrook                             48.620*** (12.610)     
## BuurtScheepvaarthuisbuurt                       61.247*** (14.374)     
## BuurtScheldebuurt Midden                          13.446 (12.850)      
## BuurtScheldebuurt Oost                            13.921 (13.515)      
## BuurtScheldebuurt West                          32.905*** (12.108)     
## BuurtSchellingwoude Oost                         -20.788 (18.184)      
## BuurtSchellingwoude West                          15.337 (29.080)      
## BuurtSchinkelbuurt Noord                         22.049* (11.483)      
## BuurtSchinkelbuurt Zuid                           -1.373 (14.346)      
## BuurtSchipluidenbuurt                            -18.646 (39.209)      
## BuurtScience Park Noord                          -25.326 (18.232)      
## BuurtScience Park Zuid                           -15.565 (44.660)      
## BuurtSlotermeer Zuid                              4.268 (19.022)       
## BuurtSloterpark                                  -23.782 (32.128)      
## BuurtSloterweg e.o.                              -43.376 (29.676)      
## BuurtSpaarndammerbuurt Midden                     9.669 (16.993)       
## BuurtSpaarndammerbuurt Noordoost                  8.748 (13.413)       
## BuurtSpaarndammerbuurt Noordwest                  14.722 (18.096)      
## BuurtSpaarndammerbuurt Zuidoost                 40.224*** (15.425)     
## BuurtSpaarndammerbuurt Zuidwest                   14.183 (12.958)      
## BuurtSpiegelbuurt                               77.317*** (13.896)     
## BuurtSporenburg                                   16.444 (14.146)      
## BuurtSportpark Middenmeer Noord                   21.238 (44.697)      
## BuurtSportpark Middenmeer Zuid                   -33.635 (44.821)      
## BuurtSportpark Voorland                         153.078** (76.493)     
## BuurtSpuistraat Noord                           68.250*** (13.482)     
## BuurtSpuistraat Zuid                            77.142*** (15.916)     
## BuurtStaalmanbuurt                                11.387 (15.377)      
## BuurtStaatsliedenbuurt Noordoost                 29.695** (14.322)     
## BuurtStationsplein e.o.                           18.527 (76.586)      
## BuurtSteigereiland Noord                          -5.236 (18.046)      
## BuurtSteigereiland Zuid                          -16.147 (15.167)      
## BuurtSurinamepleinbuurt                           18.667 (14.021)      
## BuurtSwammerdambuurt                            36.237*** (11.890)     
## BuurtTeleport                                     13.365 (54.698)      
## BuurtTerrasdorp                                   -2.750 (18.774)      
## BuurtTransvaalbuurt Oost                          15.728 (11.435)      
## BuurtTransvaalbuurt West                          8.459 (11.885)       
## BuurtTrompbuurt                                  20.013* (11.199)      
## BuurtTuindorp Amstelstation                       11.242 (30.257)      
## BuurtTuindorp Frankendael                        -24.270 (20.284)      
## BuurtTuindorp Nieuwendam Oost                    -33.380* (17.267)     
## BuurtTuindorp Nieuwendam West                     -8.461 (23.350)      
## BuurtTuindorp Oostzaan Oost                      -22.166 (20.554)      
## BuurtTuindorp Oostzaan West                       1.991 (42.408)       
## BuurtTwiske Oost                                  -5.724 (56.857)      
## BuurtTwiske West                                 -16.365 (27.132)      
## BuurtUilenburg                                  50.065*** (15.528)     
## BuurtUtrechtsebuurt Zuid                        81.331*** (14.899)     
## BuurtValeriusbuurt Oost                         143.453*** (17.448)    
## BuurtValeriusbuurt West                          29.094** (14.588)     
## BuurtValkenburg                                 51.168*** (16.977)     
## BuurtVan Brakelkwartier                           24.482 (17.919)      
## BuurtVan der Helstpleinbuurt                    38.043*** (11.264)     
## BuurtVan der Kunbuurt                             17.229 (32.617)      
## BuurtVan der Pekbuurt                             18.104 (14.073)      
## BuurtVan Loonbuurt                              64.899*** (14.123)     
## BuurtVan Tuyllbuurt                              24.039** (12.128)     
## BuurtVelserpolder West                            -0.864 (18.161)      
## BuurtVeluwebuurt                                  27.693 (24.907)      
## BuurtVenserpolder Oost                            6.983 (18.951)       
## BuurtVliegenbos                                  30.749* (18.348)      
## BuurtVogelbuurt Noord                             0.660 (18.896)       
## BuurtVogelbuurt Zuid                              10.296 (12.825)      
## BuurtVogeltjeswei                                -41.887 (55.083)      
## BuurtVondelpark Oost                            222.054*** (39.257)    
## BuurtVondelpark West                             40.640* (23.101)      
## BuurtVondelparkbuurt Midden                     56.025*** (14.602)     
## BuurtVondelparkbuurt Oost                       49.935*** (14.228)     
## BuurtVondelparkbuurt West                       32.328*** (11.935)     
## BuurtVU-kwartier                                  17.262 (35.274)      
## BuurtWalvisbuurt                                  -2.932 (30.566)      
## BuurtWaterloopleinbuurt                         56.782*** (19.302)     
## BuurtWeesperbuurt                               48.865*** (12.069)     
## BuurtWeespertrekvaart                             27.345 (22.646)      
## BuurtWeesperzijde Midden/Zuid                     17.374 (11.621)      
## BuurtWerengouw Midden                             6.548 (18.799)       
## BuurtWerengouw Noord                              18.019 (54.737)      
## BuurtWerengouw Zuid                              -42.950* (24.471)     
## BuurtWestelijke eilanden                        44.903*** (12.544)     
## BuurtWesterdokseiland                             18.241 (15.565)      
## BuurtWestergasfabriek                             8.334 (21.213)       
## BuurtWesterstaatsman                             20.759* (11.094)      
## BuurtWestlandgrachtbuurt                          1.127 (10.936)       
## BuurtWeteringbuurt                              68.284*** (12.230)     
## BuurtWG-terrein                                 50.943*** (12.285)     
## BuurtWielingenbuurt                              35.890** (15.025)     
## BuurtWildeman                                    -30.603 (22.270)      
## BuurtWillemsparkbuurt Noord                     94.285*** (14.971)     
## BuurtWillibrordusbuurt                           26.405** (11.784)     
## BuurtWittenburg                                   19.359 (15.341)      
## BuurtWoon- en Groengebied Sloterdijk              16.308 (30.396)      
## BuurtZaagpoortbuurt                               24.086 (15.808)      
## BuurtZamenhofstraat e.o.                          19.933 (76.758)      
## BuurtZeeburgerdijk Oost                          -55.122 (54.562)      
## BuurtZeeburgereiland Noordoost                    27.169 (45.547)      
## BuurtZeeburgereiland Noordwest                    25.575 (39.263)      
## BuurtZeeburgereiland Zuidoost                    -11.476 (76.909)      
## BuurtZeeburgereiland Zuidwest                     5.873 (26.803)       
## BuurtZeeheldenbuurt                             34.190*** (12.658)     
## BuurtZorgvlied                                   -28.302 (45.551)      
## BuurtZuidas Noord                                 14.054 (39.275)      
## BuurtZuidas Zuid                                  -1.807 (21.834)      
## BuurtZuiderhof                                    34.334 (76.955)      
## BuurtZuiderkerkbuurt                            103.652*** (15.067)    
## BuurtZuidoostkwadrant Indische buurt              3.734 (13.171)       
## BuurtZuidwestkwadrant Indische buurt              6.375 (13.211)       
## BuurtZuidwestkwadrant Osdorp Noord               -16.907 (27.027)      
## BuurtZuidwestkwadrant Osdorp Zuid                 -2.947 (15.901)      
## BuurtZunderdorp                                  -24.548 (24.942)      
## minimum_nights                                    -0.030 (0.044)       
## convenienceshop.closey                           -12.880** (5.087)     
## mall.closey                                       5.973** (2.872)      
## museum.closey                                      2.385 (3.227)       
## plaza.closey                                       5.450 (5.895)       
## supermarkets.closey                               3.592 (11.073)       
## amenities.number                                 0.437*** (0.069)      
## lagRevenue                                      -0.00002 (0.00003)     
## metro.dist                                        -5.364 (5.335)       
## Constant                                          39.299 (26.996)      
## -----------------------------------------------------------------------
## Observations                                          19,952           
## R2                                                     0.427           
## Adjusted R2                                            0.412           
## Residual Std. Error                             75.861 (df = 19453)    
## F Statistic                                 29.054*** (df = 498; 19453)
## =======================================================================
## Note:                                       *p<0.1; **p<0.05; ***p<0.01

MAPE (Mean Absolute Percentage Error)

By comparing the predicted price and actual price of our testing set, we summarized the errors in the table and map down below. Our model has a mean absolute percentage error of 29%, and it seems to be doing a better job in the central area than peripheral areas. As we will show in the following section, our model’s general predictibility is higher in central areas, given the abundance of existing data concentrating in that area.

annualrev_predict_test <- annualrevenue.test %>%
  mutate(Prediction = predict(reg.annualrevenue, newdata = annualrevenue.test)) %>%
  mutate(Prediction = ifelse(Prediction > 0, Prediction, mean(annualrevenue.training$price)))%>%
  filter(price!=0)%>%
  drop_na(Prediction)%>%
  mutate(AE = abs(Prediction-price),
         APE = AE/Prediction)

test_result <- data.frame(MAE = c(mean(annualrev_predict_test$AE, na.rm=T)),
              MAPE = c(scales::percent(mean(annualrev_predict_test$APE, na.rm=T)))) 

test_result %>%
  kable(caption = "Figure 8. Mean absolute error and MAPE for a single test set")%>%
  kable_styling("striped", full_width = F)
Figure 8. Mean absolute error and MAPE for a single test set
MAE MAPE
42.91289 30%
palette5 <- c("#ffffd4", "#fed98e", "#fe9929", "#d95f0e", "#993404")

annualrev_predict_test%>%
  group_by(Buurt) %>%
  dplyr::summarize(mean.APE = mean(APE, na.rm = T)) %>%
  ungroup() %>% 
  left_join(neighbor2,by = "Buurt") %>%
    st_sf() %>%
    ggplot() + 
      geom_sf(aes(fill = mean.APE),colour = 'transparent') +
      scale_fill_gradient(low = palette5[1], high = palette5[5],
                          name = "MAPE") +
      labs(title = "Average Test Set MAPE"
           #,subtitle = "2019"
           ) +
      mapTheme()

Cross Validation: LOGO (Leave One Group Out)

LOGO (Leave One Group Out) is a type of cross validation that is similar to K-fold but takes spatial aspects into consideration – taking one neighborhood out at a time for cross validating. Since the airbnb location is critical in this project, we think LOGO would be a more suitable way for testing out our model. Here we use 481 ‘buurt (buurten)’ (neighborhood in dutch) defined by the city.

reg.vars <- c("beds", "bedrooms", "bathrooms", "accommodates",
                              "pool", "parking", "kitchen", "AC", "fireplace",
                              "room_type",  "bed_type",
                              "amenities.number","lagRevenue", "convenienceshop.close", "mall.close",
                              "museum.close",
                              "plaza.close", "supermarkets.close")

airbnb.location <- details.sf %>% dplyr::select(id)

annualrev_predict_test <- annualrev_predict_test %>% left_join(airbnb.location, by='id')
colnames(annualrev_predict_test)[1] =  "identifier"

reg.spatialCV <- crossValidate(
  dataset = annualrev_predict_test,
  id = "Buurt",
  dependentVariable = "price",
  indVariables = reg.vars) %>%
    dplyr::select(identifier = Buurt, price, Prediction, geometry)
reg.spatialCV <-
  reg.spatialCV %>%
  mutate(Error = Prediction - price)

error_by_reg_and_fold <-
  reg.spatialCV  %>%
  group_by(identifier) %>%
  dplyr::summarize(Mean_error = mean(Error, na.rm=T),
                   MAE = mean(abs(Mean_error), na.rm=T),
                   SD_MAE = mean(abs(Mean_error), na.rm=T)) %>%
  ungroup()

st_drop_geometry(error_by_reg_and_fold) %>%
    dplyr::summarize(Mean_MAE = round(mean(MAE), 2),
              SD_MAE = round(sd(MAE), 2)) %>%
  kable() %>%
    kable_styling("striped", full_width = F) 
Mean_MAE SD_MAE
24.58 25.45

From the LOGO-CV result, our mean absolute error is 25.1 euro, with a 23.77 euro standard deviation. This means that on average our prediction could be 25.1 euro off, higher or lower. Given our predictability being ~42%, this is an expected and acceptable error to be observed.

Since earlier we observed a clustering in central areas, we are curious to see how our model performs in areas with more existing Airbnb vs. less. Hence we split neighborhoods into those with more than 50 Airbnb vs. less than 50, checked the respective mean absolute error for the high vs. low count groups, then plotted the mean error in each neighborhood.

#Counting per neighborhood
neighbourhoodCount <- annualrevenue %>%
  dplyr::count(Buurt)

#Joining to new spatial db
neighbourhoodHL <- neighbor2 %>%
  left_join(st_drop_geometry(neighbourhoodCount), by = "Buurt")%>%
  mutate(Airbnb1k = ifelse(n < 50, "Low", "High"))%>%
  st_transform(st_crs(error_by_reg_and_fold))

#spatial join of the essential comparison data
st_join(error_by_reg_and_fold, neighbourhoodHL) %>% #fill in data frame with error column here
  group_by(Airbnb1k) %>%
  dplyr::summarize(mean.MAE = scales::percent(mean(MAE, na.rm = T))) %>% #fill in error column here
  st_drop_geometry() %>%
  spread(Airbnb1k, mean.MAE) %>%
  kable(caption = "<strong>Test set MAE within Neighborhoods Above or Below 50 Listings </strong>")%>%
  kable_styling()
Test set MAE within Neighborhoods Above or Below 50 Listings
High Low
1 585% 2 880%

The mean absolute error in area with higher count of Airbnb is significantly lower than the area with lower count, according to the data. The map below has lower-count areas in grey shade. By comparing shaded (lower count) to unshaded (higher count) areas, we can see that the shaded areas have more variation while the unshaded areas have mean errors closer to zero – suggesting a better performance in higher count area.

colnames(error_by_reg_and_fold)[1] = "Buurt"

new <-
  neighbor2 %>% dplyr::select(Buurt, geometry) %>%
  left_join(st_drop_geometry(error_by_reg_and_fold), by = 'Buurt')
  

Low_Count_Boundary <-
  st_union(neighbourhoodHL %>% filter(Airbnb1k == 'Low'))

 mycol <- rgb(220,220,220, max = 255, alpha = 90, names = "blue50")

ggplot() +
  geom_sf(data=new, aes(fill=Mean_error), color=NA) +
  scale_fill_gradient(low = '#91bfdb', high = '#fc8d59', na.value = 'white', name = "Mean Error") +
  labs(title = "Mean Error (LOGO-CV)", subtitle = "Amsterdam, NL") + 
  geom_sf(data=Low_Count_Boundary, color="black", fill = mycol, size=0.7) + mapTheme() 

Conclusion

In conclusion, our model gives a decent prediction for airbnb price in Amsterdam, although for it to be launched for our users, new hosts in Amsterdam, we would need more upgrades and feature engineering. From the results of cross validation, our model is better predicting price in areas with higher concentration of existing Airbnb in comparison to lower density areas, given the fact that more existing data is provided. We hope to improve this model / app and launch it for new hosts to utilize and better price their units in the near future. We will come insightful comments and feedback from Amsterdam locals.

In addition, as this report demonstrate, many features incorporated in this model are linked specifically to Amsterdam, such as property type (given Amsterdam’s boat house and other interesting architectural types) and specific amenities (such as fireplaces). At this stage, we are refraining from attempting to apply this model to other cities around the world. At the end of the day, each city (especially cities famous for tourism) have their unique selling points that attract tourists, and that is the reason why tourism and Airbnb exist in the first place.

While our model is primarily built for new hosts, some of the analysis included in this report would also be helpful for policy makers as risk assessment. Although it is reasonable to try to develop all areas in the city, simply banning short-term rental in central areas may be detrimental to tourism yet not benefiting the peripheral areas of the city. By transforming this price-prediction model into a risk-prediction model, policy-makers will have more insights on which areas are potentially exploiting short-term rental. Policy-makers and planners can also work together to install amenities that are favorable by tourists, such as public transit and convenience shops, to direct flow of tourists to certain areas. In sum, information in this report could be helpful to policy makers as well.