Análise dos Dados do Airbnb — Munique
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 propriedadename
: título da propriedadehost_id
: número de identificação do anfitriãohost_name
: nome do anfitriãoneighbourhood_group
: tipo de bairro da propriedade (essa variável não apresenta valor válido)neighbourhood
: nome do bairro da propriedadelatitude
: coordenada de latitude da propriedadelongitude
: coordenada de longitude da propriedaderoom_type
: tipo de acomodação oferecida pelo anfitriãoprice
: preço da diária da propriedade na moeda localminimum_nights
: quantidade mínima de diárias estabelecida pelo anfitriãonumber_of_reviews
: quantidade de comentários deixados por hóspedes após estadia na propriedadelast_review
: data do último comentário deixado por hóspedereviews_per_month
: quantidade de comentários por mêscalculated_host_listings_count
: quantidade de propriedades do mesmo anfitriãoavailability_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: 16id 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
elast_review
têm aproximadamente 25% em valores nulos. - As variáveis
host_name
ename
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.
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
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.
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
Através do heatmap plotado, é possível observar algumas correlações entre as variáveis:
- as variáveis
number_of_reviews
ereviews_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àvelminimum_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.
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.