Bu çalışmada Nycflights veri seti kullanılmıştır. Veri seti, 2013 yılı boyunca New York’taki üç havalimanından yapılan uçuşlara ilişkin bilgileri içermektedir.
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.2
## ✔ ggplot2 4.0.0 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.1.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(nycflights13)
library(ggplot2)
glimpse(flights)
## Rows: 336,776
## Columns: 19
## $ year <int> 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2…
## $ month <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ day <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ dep_time <int> 517, 533, 542, 544, 554, 554, 555, 557, 557, 558, 558, …
## $ sched_dep_time <int> 515, 529, 540, 545, 600, 558, 600, 600, 600, 600, 600, …
## $ dep_delay <dbl> 2, 4, 2, -1, -6, -4, -5, -3, -3, -2, -2, -2, -2, -2, -1…
## $ arr_time <int> 830, 850, 923, 1004, 812, 740, 913, 709, 838, 753, 849,…
## $ sched_arr_time <int> 819, 830, 850, 1022, 837, 728, 854, 723, 846, 745, 851,…
## $ arr_delay <dbl> 11, 20, 33, -18, -25, 12, 19, -14, -8, 8, -2, -3, 7, -1…
## $ carrier <chr> "UA", "UA", "AA", "B6", "DL", "UA", "B6", "EV", "B6", "…
## $ flight <int> 1545, 1714, 1141, 725, 461, 1696, 507, 5708, 79, 301, 4…
## $ tailnum <chr> "N14228", "N24211", "N619AA", "N804JB", "N668DN", "N394…
## $ origin <chr> "EWR", "LGA", "JFK", "JFK", "LGA", "EWR", "EWR", "LGA",…
## $ dest <chr> "IAH", "IAH", "MIA", "BQN", "ATL", "ORD", "FLL", "IAD",…
## $ air_time <dbl> 227, 227, 160, 183, 116, 150, 158, 53, 140, 138, 149, 1…
## $ distance <dbl> 1400, 1416, 1089, 1576, 762, 719, 1065, 229, 944, 733, …
## $ hour <dbl> 5, 5, 5, 5, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 6, 6…
## $ minute <dbl> 15, 29, 40, 45, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0…
## $ time_hour <dttm> 2013-01-01 05:00:00, 2013-01-01 05:00:00, 2013-01-01 0…
Uçuş mesafesi ile uçuş süresi arasındaki ilişki dağılım grafiği ie incelenmiştir.
ggplot(flights, aes(x = distance, y = air_time)) +
geom_point(alpha = 0.3, color = "orange") +
geom_smooth(method = "lm", se = TRUE) +
labs(
title = "Mesafe ile Uçuş Süresi İlişkisi",
x = "\nMesafe (mil)",
y = "Uçuş süresi (dakika)\n"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 9430 rows containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Removed 9430 rows containing missing values or values outside the scale range
## (`geom_point()`).
Grafik incelendiğinde,noktalar genel olarak pozitif yönlü bir doğrusal
eğilim göstermektedir. Yani uçuş mesafesi arttıkça, uçuş süresi de
artmaktadır. Değişkenlerin sürekli olması ve değişkenler arasında
doğrusal bir ilişki olması sebebiyle dağılım grafiği uygun bir seçim
olmakla birlikte alternatif olarak geom_density de seçilebilir.
2013 yılında New York’taki üç havalimanından (EWR, JFK, LGA) yapılan uçuşların sayısı sütun grafiği ile incelenmiştir. Kategorik değişkenler olması sebebiyle sütun grafiği tercih edilmştir.Benzer şekilde geom_ col da kullanılabilir.
ggplot(flights, aes(x = origin, fill = origin)) +
geom_bar() +
labs(title = "\nHavalimanlarına Göre Uçuş Sayısı",
x = "\nKalkış Havalimanı", y = "Uçuş Sayısı\n") +
theme_minimal()
Buna göre, EWR havalimanı yaklaşık 125.000 uçuşla en fazla kalkış yapılan havalimanıdır.Onu JFK ve LGA avalimanları takip etmektedir.
Grafikte 2013 yılı boyunca New York’taki üç havalimanından (EWR, JFK, LGA) yapılan uçuşların varış gecikmeleri karşılaştırması için boxpilot grafiği kullanılmıştır.
ggplot(flights, aes(x = origin, y = arr_delay, fill = origin)) +
geom_boxplot() +
labs(
title = "Havalimanına Göre Varış Gecikmeleri Dağılımı",
x = "\nKalkış Havalimanı",
y = "Varış Gecikmesi (dakika)\n"
) +
theme_light()
## Warning: Removed 9430 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
Tüm havalimanlarında gecikmelerin medyan değerinin 0’a yakın olduğu, yani uçuşların yarısının zamanında veya küçük gecikmelerle tamamlandığı görülmektedir. Havalimanları arasında genel dağılım benzer olsa da, EWR havalimanında uç değerlerin biraz daha fazla olduğu fark edilmektedir.
nycflights13 veri setindeki uçuşların kalkış gecikmelerinin dağılımı histogram grafiğinde gösterilmiştir. Alternatif olarak geom_density grafiği de kullanılabilir.
ggplot(flights, aes(x = dep_delay)) +
geom_histogram(bins = 60, fill = "skyblue", color = "white") +
geom_vline(xintercept = 0, color = "red", linetype = "dashed", size = 1) +
labs(
title = "\nKalkış Gecikmelerinin Dağılımı",
x = "\nKalkış Gecikmesi (dakika)",
y = "Uçuş Sayısı\n"
) +
theme_light()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: Removed 8255 rows containing non-finite outside the scale range
## (`stat_bin()`).
Grafiğe göre çoğu uçuş zamanında veya küçük gecikmelerle kalkmıştır. Grafiğin sağa çarpık yapısı, az sayıda uçuşta aşırı gecikmelerin yaşandığını göstermektedir.
Newyorktaki üç havalimanında yaşanan aylık ortalama varış gecikmelerini incelemek için çizgi grafiği kullanılmıştır.
# Aylık ortalama varış gecikmeleri
aylik_gecikme <- flights %>%
group_by(origin, month) %>%
summarise(ort_gecikme = mean(arr_delay,na.rm = TRUE), .groups = "drop")
ggplot(aylik_gecikme, aes(x = month, y = ort_gecikme, color = origin, group = origin)) +
geom_line() +
geom_point() +
facet_wrap(~ origin, ncol = 1) +
scale_x_continuous(
breaks = 1:12,
labels = c("Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara")
) +
labs(
title = "Havalimalarının Aylık Ortalama Varış Gecikme Trendi",
x = "\nAy",
y = "Ortalama Varış Gecikmesi (dakika)\n"
) +
theme_light()
Grafikte her panel, bir havalimanını temsil etmektedir. EWR havalimanında gecikmelerin diğer havalimanlarına kıyasla daha yüksek olduğu dikkat çekmektedir. JFK havalimanında gecikmeler yaz aylarında (Haziran–Temmuz) artarken, sonbahar aylarında azalmaktadır. LGA havalimanında ise yılın büyük kısmında gecikmeler görece düşüktür. Aralık ayında tüm havalimanlarında ortalama gecikme süresinin arttığı görülmektedir.
Bu haftaki ödevde veri seti ve değişken tercihlerini bizim yapıyor olmamız, değişken belirlemek ve onlara uygun grafikleri oluşturmak için pek çok deneme yapmamı sağladı. Dolayısıyla da öğretici oldu. Ders notları ile birlikte yoğun pratik yapmak daha pekişmesini sağladı.