Temel bilgiler

library(knitr)
library(xtable)

library(papeR)#pdf formatı için tablolar
library(tidyverse)
airbnb<-read.csv("airbnb.csv")

Verisetimiz airbnb ye aittir. New york şehrinde kiralanan konaklama yerlerini dair bilgiler içirmektedir. kaggle linki:https://www.kaggle.com/dgomonov/new-york-city-airbnb-open-data?select=AB_NYC_2019.csv

Değişkenlerimizi açıklayalım.

degiskenler<-colnames(airbnb)
kable(degiskenler, col.names = "Degiskenler")
Degiskenler
id
name
host_id
host_name
neighbourhood_group
neighbourhood
latitude
longitude
room_type
price
minimum_nights
number_of_reviews
last_review
reviews_per_month
calculated_host_listings_count
availability_365

id , name,host_id ,host_name değişkenleri konak sahibi ve konak kiralayan gibi bilgilerini içerir. neighbourhood_group ,neighbourhood değişkenleri ilçe mahalle bilgisidir. latitude longitude konum bilgileridir. room_type evin paylaşımlı mı evin tümü mü yoksa oda mı bilgisini ifada eder. price: konaklama bedeli minimum nights:en az kiralanabilecek gün gece sayısı number of reviews:kaç adet yorum değerlendirme aldığı review per month: aylık ortalam review sayısı avaibilitiy_365 senede kaç gün müsait bilgisi calculated_host_listings_count:listemele sayısı

Verimizdeki değişkenleri açıkladık kısaca bir veri özeti alalım.

“kaç farklı mahalle ve ev tipi var?”

$neighbourhood_group [1] “Brooklyn” “Manhattan” “Queens” “Staten Island” [5] “Bronx”

$room_type [1] “Private room” “Entire home/apt” “Shared room”

Numerik değişkenlerin temel istatistikleri

evlerin ortalama satış fiyatları ve standart fiyatlarla alakalı temel bir bilgi verebiliyor. Bununla beraber yorum sayılar hakkında temel bilgileri detaylı analizlerde değerlendiriyor olacağız.

Peki eksik verimiz var mı?

sum(is.na(airbnb))
## [1] 10052

Reviews_per_month değişkeni hariç tüm değişkenlerimiz tamamen dolu çok önemli bir değişken olmaması sebebiyle gözarda edebiliriz.

Veri görselleştirme

Görsellerimizi fiyat değişkeni üzerinden devam ettireceğiz. Daha sonra diğer değişkenlerin birbirleriyle alakalı ilişklerine dikkat edeceğiz.Öncelikli olarak ilçelerin fiyatları üzerindeki etkilerine göz atalım.

colnames(airbnb)
##  [1] "id"                             "name"                          
##  [3] "host_id"                        "host_name"                     
##  [5] "neighbourhood_group"            "neighbourhood"                 
##  [7] "latitude"                       "longitude"                     
##  [9] "room_type"                      "price"                         
## [11] "minimum_nights"                 "number_of_reviews"             
## [13] "last_review"                    "reviews_per_month"             
## [15] "calculated_host_listings_count" "availability_365"

Bölgelerin fiyatlara etkisi

Öncelikli olarak ev fiyatlarını etkileyen diğer değişkenleri inceyeceğiz. Bu şekilde konaklama bedelleri hakkında bir bilgi edinebiliyor olacağız.

ggplot(airbnb,aes(x=neighbourhood_group,y=price))+geom_violin()

Bu durum hiç hoş olmadı evlerin aykırı değerlerinin aşırı derecede fazla olması sebebiyle fiyatlar hakkında tam net görüş alamıyoruz.fiyatları 3000’den az olacak şekilde filtre edip tekrar bakalım.

ggplot(airbnb,aes(x=neighbourhood_group,y=price))+geom_violin(aes(fill=neighbourhood_group))+ylim(c(0,3000)) 

Artık daha anlaşılabilir ve yorum yapılabilir bir hal aldı. veriyi incelediğimizde ucuzdan pahalıya doğru staten island>Bronx>Queens>Brooklyn>Manhattan olarak söyleyebiliriz. karo şekli ile en pahalı bölgenin meşhur Manhattan olduğunu görüyoruz.

Fakat daha mantıklısı fiyat değişkenini logaritmik tabanda göstermektir.Bu durum aykırı değişkenleri dağılımın normalleşmesi adına uygun bir hareket olacaktır.

ggplot(airbnb,aes(log(price)))+geom_density(fill="#69b3a2", color="#e9ecef", alpha=0.8)+theme_bw()+labs(x="ücret",y="yoğunluk(log)",title = "Fiyatların logaritmik dağılım grafiği")

Oda tipinin fiyatlara olan etkisi

ggplot(airbnb,aes(x=room_type,y=log(price)))+geom_violin(aes(fill=room_type)) + ylab("Ücret") +
         xlab("Oda tipi")

En yüksek fiyatların ev içerisinde hakimiyet oranı arttıkta fiyatların arrtığını görmekteyiz. Bununla beraber özel oda fiyatlarının belirgin fiyat aralığı olduğunu görebiliyoruz. Logaritmik tabana almanın yorumlama açısından gerçekten çok etkili olduğunu tekrardan belirtebiliriz.

ggplot(data = airbnb, mapping = aes(x = price)) +
         geom_histogram(mapping = aes(fill = room_type), bins = 70, size = 1.3, color = "black") +
         theme_minimal() +
         ylab("") +
         xlab("Ücret") +
         ggtitle("1000 dolardan az ücretli konaklamaların histogram dağılımı")+xlim(c(0,1000))

ggplot(data = airbnb, mapping = aes(x = log(price))) +
         geom_histogram(mapping = aes(fill = room_type), bins = 70, size = 1.3, color = "black") +
         theme_minimal() +
         ylab("") +
         xlab("Ücret") +
         ggtitle("logaritmik fiyat tabanına göre konaklamaların histogram dağılımı")

Bu şekilde daha anlaşılır bir hale geldi. Şöyleki paylaşımlar konaklama yerlerinin fiyatları dibi süpürürcesine düşük ve sayıları az. Bununla beraber özel odaların 0-100 aralığında oldukça fazla sayıda olduklarını görüyoruz.evin tamamını kiralık olan konaklama yerleri ise 0-500 fiyatı arasında çoğunlukla bulunduklarını üst fiyat çerçevesinde nadir evlerin olduğunu görmekteyiz.

En çok hangi ev tipi tercih ediliyor?

Daha fazla tercih edilen ev tipinin daha fazla incelemesi bulunacaktır bu durumu box plot ile gösterelim.

ggplot(airbnb,aes(x=room_type,y=log(number_of_reviews)))+geom_boxplot(aes(fill=room_type))+labs(x="Konaklama tipi",
                                                                                                y="logaritmik tabanda yorum sayısı",
                                                                                                title = "ev tipine göre yorum sayısı")

Ev tiplerine göre alınan yorumlarda grafik üzerinden anlamlı bir fark olup olmadığını söyleyemiyorum. Bu durumda insanların deneyimlerini paylaşmayı sevdiklerini ifade edebiliriz.

Fiyatları gruplara ayırarak kıyaslama

Fiyatları belli aralıklara göre sınırlayalım ve bu durum üzerinden nasıl değişiklikler gözlemleyeceğiz öğrenelim.Sınıflandırmayı veriyi eşit parçalara bölebilmek adına yüzdelik dilimlerine göre yapıyor olacağız.

z<-airbnb[order(airbnb$price),"price"] %>% quantile()
z
##    0%   25%   50%   75%  100% 
##     0    69   106   175 10000

Yüzdelik dilimlere göre verimiz. Anlaşılacağı üzere konaklama yerlerinin çok az bir kısmı(%25) 175 dolardan fazla fiyata kiralanıyor. Bu fiyat aralıklarını pricegrup adındaki bir değişkene atayarak devam edelim.

airbnb<-airbnb[order(airbnb$price),] #verilerini sıraladım

airbnb$pricegroup<-NA #değişkeni oluşturdum

#her bir if döngüsünde veriye aralık belirlenerek gözlemin şartı karşılayıp karşılayamadığına bakılır.
#uyan şarta göre dönüşüm işlemi gerçekleştirilir.
for(i in 1:nrow(airbnb)){
  
if(airbnb$price[i]<=z[[2]] ) {
  airbnb$pricegroup[i]=1}
  else if(airbnb$price[i]<=z[[3]]){
    airbnb$pricegroup[i]=2}
  else if(airbnb$price[i]<=z[[4]]){
     airbnb$pricegroup[i]=3}
  else if(airbnb$price[i]<=z[[5]]){
     airbnb$pricegroup[i]=4}
  }

Yeni değişkenimizi oluşturduk

is.na(airbnb$pricegroup) %>% sum() 
## [1] 0

Fiyat aralıklarına göre ilçe değerleri

ggplot(airbnb,aes(x=pricegroup))+geom_bar(aes(fill=neighbourhood_group))+facet_wrap(~neighbourhood_group)+
   theme(legend.position="none")+labs(title = "ilçelere göre fiyatların değişim sıkalası",
                                      y="Adet",
                                      x="Fiyat Grupları")

Bronx ve staten island üzerinde diğer konaklama alanlarına kıyaslandığında konaklama alanı neredeyse yoktur.En popüler konaklama alanlarının öncelikle brooklyn sonra manhattan olduğunu görebiliriz. Manhattın diğer ilçelerden farklı olarak yüksek fiyat sıkalasında daha fazla konaklama yeri barındırmaktadır.

Fiyat aralıklarına göre

ggplot(airbnb,aes(x=pricegroup))+geom_bar(aes(fill=room_type))+facet_wrap(~room_type)+
   theme(legend.position="none")+labs(title = "Konak tipine göre fiyatların değişim sıkalası",
                                      y="Adet",
                                      x="Fiyat Grupları")

Ucuz ev arayanlar için en uygun tercih özel odalar iken mahremiyeti önemseyen insanların daha yüksek ödemeler yapması gerketiğini kolay bir şekilde görüyoruz. Son olarak bu 2 grafiği birlikte gösterim.

ggplot(airbnb,aes(x=pricegroup))+geom_bar(aes(fill=room_type))+facet_wrap(~neighbourhood_group)+labs(title = "Konak tipi ve konuma göre fiyatların değişim sıkalası",
                                      y="Adet",
                                      x="Fiyat Grupları")