Análise dos Dados do Airbnb — Munique

Pandas Couple
7 min readFeb 19, 2021

--

Cidade foto criado por wirestock

O Airbnb é um serviço online que conecta pessoas que querem viajar com anfitriões que querem alugar suas propriedades.

Sem possuir nenhum hotel, já é considerado a maior empresa hoteleira da atualidade.

No final de 2018, com 10 anos de fundada, a Startup já havia hospedado mais de 300 milhões de pessoas ao redor de todo o mundo, desafiando as redes hoteleiras tradicionais.

Uma das iniciativas do Airbnb é disponibilizar dados do site, para algumas das principais cidades do mundo. Por meio do site independente inside Airbnb, é possível baixar uma grande quantidade de dados para desenvolver projetos e soluções de Data Science.

A proposta desse projeto é analisar os dados referentes à cidade de Munique, e obter o perfil das reservas feitas na cidade.

Para isto, iremos responder as seguintes perguntas:

  • Qual a média dos preços de aluguel das propriedades em Munique?
  • Qual o tipo de propriedade mais alugada no Airbnb em Munique?
  • Qual a localidade mais cara para se hospedar em Munique?
  • Qual é a média do mínimo de diárias para se hospedar em Munique?

Vamos lá!

Obtenção dos Dados

Os dados aqui utilizados foram obtidos a partir do inside Airbnb, um site independente de análise de dados públicos do Airbnb.

O arquivo listings.csv - Summary information and metrics for listings in Munich (good for visualisations) foi baixado para esta análise exploratória inicial.

Análise dos Dados

Afim de explicar como os dados estão estruturados, temos em seguida uma legenda das variáveis utilizadas.

Lista de variáveis

  • id: número de identificação da propriedade
  • name: título da propriedade
  • host_id: número de identificação do anfitrião
  • host_name: nome do anfitrião
  • neighbourhood_group: tipo de bairro da propriedade (essa variável não apresenta valor válido)
  • neighbourhood: nome do bairro da propriedade
  • latitude: coordenada de latitude da propriedade
  • longitude: coordenada de longitude da propriedade
  • room_type: tipo de acomodação oferecida pelo anfitrião
  • price: preço da diária da propriedade na moeda local
  • minimum_nights: quantidade mínima de diárias estabelecida pelo anfitrião
  • number_of_reviews: quantidade de comentários deixados por hóspedes após estadia na propriedade
  • last_review: data do último comentário deixado por hóspede
  • reviews_per_month: quantidade de comentários por mês
  • calculated_host_listings_count: quantidade de propriedades do mesmo anfitrião
  • availability_365: disponibilidade da propriedade ao longo de um ano

Antes de dar início, iremos analisar as 5 primeiras entradas para verificar a aparência do dataset:

Variáveis e entradas

Iremos apresentar o número de atributos e de entradas o conjunto em análise possui, assim como identificar os tipos.

Vale ressaltar que o dataset utilizado (listings.csv - Summary information and metrics for listings in Munich) é uma versão "resumida" dos dados. No mesmo site existe também uma versão mais detalhada (listings.csv.gz - Detailed Listings data for Munich) com 4815 entradas e 74 variáveis.

Entradas:	 4815
Variáveis: 16
id int64
name object
host_id int64
host_name object
neighbourhood_group float64
neighbourhood object
latitude float64
longitude float64
room_type object
price int64
minimum_nights int64
number_of_reviews int64
last_review object
reviews_per_month float64
calculated_host_listings_count int64
availability_365 int64
dtype: object

Valores ausentes no dataset

Prezando pela qualidade do dataset em análise, é importante entender no início se a quantidade de valores nulos são significativos comparados ao total de entradas.

neighbourhood_group               1.000000
reviews_per_month 0.238214
last_review 0.238214
host_name 0.000208
name 0.000208
availability_365 0.000000
calculated_host_listings_count 0.000000
number_of_reviews 0.000000
minimum_nights 0.000000
price 0.000000
room_type 0.000000
longitude 0.000000
latitude 0.000000
neighbourhood 0.000000
host_id 0.000000
id 0.000000
dtype: float64

A partir da relação obtida, é possível observar:

  • A variável neighbourhood_group tem sua totalidade em valores nulos.
  • As variáveis reviews_per_month e last_review têm aproximadamente 25% em valores nulos.
  • As variáveis host_name e name têm aproximadamente 0,2% em valores nulos.
  • As demais variáveis não possuem valores nulos.

Distribuição das variáveis

Para identificar a distribuição das variáveis, será plotado o histograma.

histogramas das variáveis numéricas

Detecção de outliers

Pela distribuição do histograma plotado acima, é possível verificar indícios da presença de outliers.

Os valores das variáveis price, minimum_nights e não seguem uma distruição, e distorcem toda a representação gráfica. Para confirmar, há duas maneiras rápidas que auxiliam a detecção de outliers. São elas:

  • Resumo estatístico por meio do método describe()
  • Plotar boxplots para as variáveis
resumo estatístico das variáveis numéricas

Olhando o resumo estatístico acima, podemos confirmar algumas hipóteses como:

  • A variável price possui 75% do valor abaixo de 120, porém seu valor máximo é 8255.
  • A quantidade mínima de noites (minimum_nights) está acima de 365 dias no ano.

Para identificar os outliers iremos plotar o gráfico boxplot para visualizar a homogeneidade dos dados dessas duas variáveis.

  • variável minimum_nights : gráfico boxplot e imprimir a quantidade de valores acima de 10 dias
  • variável price : gráfico boxplot e imprimir a quantidade de valores acima de 600 euros

Já que identificamos outliers nas variáveis price e minimum_nights, vamos agora limpar o DataFrame delas e plotar o novo histograma.

histograma sem outliers das variáveis numéricas

Analise da correlação entre as variáveis

Neste momento procuramos avaliar a intensidade das relações entre duas variáveis, e isso é feito através do coeficiente de correlação.

Para isto, iremos:

  • Criar uma matriz de correlação
  • Gerar um heatmap a partir dessa matriz, usando a biblioteca seaborn
matriz de correlação entre as variáveis numéricas
heatmap da correlação entre as variáveis numéricas

Através do heatmap plotado, é possível observar algumas correlações entre as variáveis:

  • as variáveis number_of_reviews e reviews_per month como era de se esperar, tem uma correlação positiva e de alto valor, já que quanto mais avaliações por mês, maior o número total de avaliações.
  • a variável price tem uma correlação negativa com a variàvel minimum_nights, o que é curioso já que seria esperado uma correlação positiva.

Respondendo às perguntas

Vamos então finalmente responder às perguntas propostas:

Q1. Qual a média dos preços de aluguel das pripriedades em Munique?

O preço médio da diária na cidade de Munique é de € 113.06

Q2. Qual o tipo de propriedade mais alugada no Airbnb em Munique?

Existem alguns tipos de propriedades a serem alugadas pelo Airbnb como apartamentos/casas inteiras, somente um quarto de uma casa, um quarto dividido e até mesmo um quarto de hotel.

A variável room_type indica o tipo de propriedade que está anunciada no site. Vamos contar a quantidade de ocorrências de cada tipo de propriedade usando o método value_counts() afim de identificar o tipo mais alugado.

  • quantidade de cada tipo de imóvel disponível
Entire home/apt    2465
Private room 2050
Shared room 80
Hotel room 62
Name: room_type, dtype: int64
  • porcentagem de cada tipo de imóvel disponível
Entire home/apt    0.529311
Private room 0.440198
Shared room 0.017178
Hotel room 0.013313
Name: room_type, dtype: float64

Praticamente metade das propriedades alugadas são do tipo apartamentos/casas inteiras e a outra metade é do tipo quartos particulares.

Q3. Qual a localidade mais cara para se hospedar em Munique?

Faremos uma comparação das localidades (bairros) em função do preço usando groupby().

neighbourhood
Ludwigsvorstadt-Isarvorstadt 148.787645
Altstadt-Lehel 146.521739
Schwanthalerhöhe 136.692308
Feldmoching-Hasenbergl 127.861538
Sendling 118.685535
Au-Haidhausen 108.505455
Maxvorstadt 107.342105
Tudering-Riem 104.181818
Sendling-Westpark 100.971264
Schwabing-West 99.962500
Name: price, dtype: float64

Plotando as propriedades pela latidude e longitude onde fica mais fácil visualizar como se fosse um mapa da cidade.

gráfico de dispersão

Q4. Qual é a média do mínimo de diárias para se hospedar em Munique?

O anfitrião tem a possibilidade de escolher a quantidade mínima de diárias é conveniente para ele receber os hóspedes.

A média da quantidade mínima de diárias para se hospedar em Munique é de 8 diárias.

Conclusões

Foi feita apenas uma análise superficial na base de dados do Airbnb para a cidade de Munique, porém já foi possível perceber a presença de outliers em algumas das variáveis.

Para uma análise mais próxima da realidade, seria interessante a participação de algum nativo da cidade, ou alguém que conheça bem a cidade afim de auxiliar na percepção de outros outliers e dados estranhos e sua manipulação para um resultado mais verídico.

Por fim, vale lembrar que este dataset é uma versão resumida, ideal apenas para uma abordagem inicial. Recomenda-se que seja usado, em uma próxima análise exploratória, o conjunto de dados mais detalhados, com 74 atributos disponíveis.

--

--

Pandas Couple
Pandas Couple

Written by Pandas Couple

Casal de Cientistas de Dados, contribuindo para a comunidade de Data Science.

No responses yet