Przedstawienie zbioru


Zbiór MetroCommutes, pochodzący z biblioteki Stat2Data, zawiera łącznie 2000 rekordów z informacjami na temat przejazdów przez miasto, jakie odbywali mieszkańcy czterech obszarów metropolitalnych. W zbiorze tym znajdują się dane o długości trasy w milach oraz czasu przejazdu w minutach, gdzie jedna obserwacja to jeden losowo wybrany przejazd.

library(Stat2Data)

Dane zebrane zostały z następujących miast:

Flaga Miasto Populacja Powierzchnia
Boston 675 647 232,11 km2
Houston 2 288 250 1739,6 km2
Minneapolis 382 578 151,3 km2
Waszyngton (D.C.) 705 749 177 km2

Zapoznanie ze strukturą zbioru


Aby przeprowadzić analizę, zapoznajmy się najpierw z budową zbioru danych MetroCommutes:

data("MetroCommutes")
attach(MetroCommutes)
summary(MetroCommutes)
##           City        Distance           Time       
##  Boston     :500   Min.   :  0.00   Min.   :  0.00  
##  Houston    :500   1st Qu.:  5.00   1st Qu.: 15.00  
##  Minneapolis:500   Median : 10.00   Median : 20.00  
##  Washington :500   Mean   : 14.52   Mean   : 26.32  
##                    3rd Qu.: 20.00   3rd Qu.: 35.00  
##                    Max.   :100.00   Max.   :180.00

Zbiór zawiera 3 zmienne: nazwę miasta, którego dotyczą dane, długość trasy [mile], a także czas przejazdu [min] jednostki do celu. W każdym mieście zanotowano po 500 obserwacji.

head(MetroCommutes)
##     City Distance Time
## 1 Boston        8   20
## 2 Boston        5   30
## 3 Boston       10   40
## 4 Boston       10   15
## 5 Boston       15   25
## 6 Boston       25   35

Porównanie czasu przejazdu


Pierwszą, podstawową analizą, jakiej dokonamy, będzie analiza średniego czasu przejazdu w minutach we wszystkich czterech miastach. Do wizualizacji wykorzystamy bibliotekę ggplot2 oraz patchwork.

library(ggplot2)
library(patchwork)

# Średnie czasy przejazdu w danych miastach
boston_tsr = mean(MetroCommutes[MetroCommutes$City == "Boston","Time"])
houston_tsr = mean(MetroCommutes[MetroCommutes$City == "Houston","Time"])
minneapolis_tsr = mean(MetroCommutes[MetroCommutes$City == "Minneapolis","Time"])
washington_tsr = mean(MetroCommutes[MetroCommutes$City == "Washington","Time"])

miasto = c("Boston","Houston","Minneapolis","Washington")
tsr = c(boston_tsr,houston_tsr,minneapolis_tsr,washington_tsr)

# Ramka danych ze średnimi wartościami kolumny "Time" dla każdego miasta
miasto_tsr = data.frame(
  miasto, tsr
)

miasto_tsr
##        miasto    tsr
## 1      Boston 25.746
## 2     Houston 25.098
## 3 Minneapolis 22.742
## 4  Washington 31.690

Jak można zauważyć, najdłużej do miejsca docelowego dojeżdżają mieszkańcy Waszyngtonu (ponad 31,5 min.), najkrócej – mieszkańcy Minneapolis.

Ponadto, wszystkie miasta znajdują się poniżej średniej ogólnej, która jest zdecydowanie zawyżana przez Waszyngton.

Porównanie dystansu


Przyjrzymy się teraz średniemu dystansowi w milach, jaki codziennie pokonują mieszańcy danych miast.

# Średnie przebywane dystanse w danych miastach
boston_dsr = mean(MetroCommutes[MetroCommutes$City == "Boston","Distance"])
houston_dsr = mean(MetroCommutes[MetroCommutes$City == "Houston","Distance"])
minneapolis_dsr = mean(MetroCommutes[MetroCommutes$City == "Minneapolis","Distance"])
washington_dsr = mean(MetroCommutes[MetroCommutes$City == "Washington","Distance"])

dsr = c(boston_dsr,houston_dsr,minneapolis_dsr,washington_dsr)

# Ramka danych ze średnimi wartościami kolumny "Distance" dla każdego miasta
miasto_dsr = data.frame(
  miasto, dsr
)

miasto_dsr
##        miasto    dsr
## 1      Boston 12.038
## 2     Houston 15.760
## 3 Minneapolis 14.346
## 4  Washington 15.918

Największy dystans przejeżdża się w Waszyngtonie - jest to średnio prawie 16 mil, gdzie w Bostonie jest to tylko przeciętnie 12 mil.

Boston i Minneapolis znajdują się pod linią, która wyznacza ogólną średnią, która wynosi 14.5155. Średni dystans przejazdu w Waszyngtonie i Houston jest z kolei porównywalny.

Zależność między długością trasy a czasem jej trwania


Sprawdźmy, czy istnieje związek pomiędzy długością trasy, którą przebywają mieszkańcy wszystkich miast, a czasem jej trwania. Użyjemy do tego gotowej funkcji cor(), która oblicza współczynnik korelacji pomiędzy zmienną niezależną (x) oraz zależną (y).

cor(MetroCommutes$Distance, MetroCommutes$Time, method = "pearson")
## [1] 0.7643507

Współczynnik korelacji Pearsona o wartości 0.7643507 wskazuje na silną dodatnią zależność liniową pomiędzy dystansem trasy, a czasem wymaganym do jej przebycia.

Mimo że zależność ta może wydawać się oczywista, w niektórych miastach możliwe jest przejechanie dłuższych dystansów w krótszym czasie, niż w miastach pozostałych. Przeanalizujmy to, przedstawiając cztery wykresy rozrzutu czasu przejazdu oraz jego dystansu dla każdego z miast.

Jak widać, nie na każdym wykresie obserwacje ustawiają się w jednakowy sposób - oznacza to, że nie każde miasto radzi sobie z płynnością ruchu w sposób jednakowy. Dokładniejszych informacji dostarczą nam współczynniki korelacji dla każdego z miast, pojedynczo.

cor_b = cor(MetroCommutes$Distance[MetroCommutes$City == 'Boston'], MetroCommutes$Time[MetroCommutes$City == 'Boston'])
cor_h = cor(MetroCommutes$Distance[MetroCommutes$City == 'Houston'], MetroCommutes$Time[MetroCommutes$City == 'Houston'])
cor_m = cor(MetroCommutes$Distance[MetroCommutes$City == 'Minneapolis'], MetroCommutes$Time[MetroCommutes$City == 'Minneapolis'])
cor_w = cor(MetroCommutes$Distance[MetroCommutes$City == 'Washington'], MetroCommutes$Time[MetroCommutes$City == 'Washington'])
Miasto Wartość współczynnika korelacji
Boston 0.7360845
Houston 0.8295624
Minneapolis 0.8291097
Washington 0.722672

Czas trwania podróży najbardziej zależy od dystansu w Houston i Minneapolis - tam współczynniki są najwyższe. Niższe, porównywalne jego wartości w Waszyngtonie i Bostonie mogą świadczyć o tym, że w tych miastach wpływ innych czynników, takich jak zatory uliczne lub efektywność komunikacji miejskiej, jest na czas podróży większy.

Zależność tę możemy przedstawić nanosząc dodatkowo linie funkcji regresji liniowej na wykresy dla każdej miejscowości.

Wnioski


Porównanie

Porównajmy średnie wartości danych zmiennych między miastami.

miasto_tsr # Ramka danych ze średnimi czasami przejazdu
##        miasto    tsr
## 1      Boston 25.746
## 2     Houston 25.098
## 3 Minneapolis 22.742
## 4  Washington 31.690
miasto_dsr # Ramka danych ze średnimi przejeżdżanymi dystansami
##        miasto    dsr
## 1      Boston 12.038
## 2     Houston 15.760
## 3 Minneapolis 14.346
## 4  Washington 15.918

Złączmy obie ramki danych w jedną, kompletną ramkę, którą zilustrujemy na wykresie.

miasto_xsr = merge(miasto_dsr, miasto_tsr)
wykres_sr = ggplot(data=miasto_xsr, aes(x=dsr, y=tsr, col=miasto)) + geom_point() + labs(
  title = "Średnie dystanse oraz czasy \nprzejazdów w danych miastach",
  x = "Średni pokonywany dystans [mile]",
  y = "Średni czas przejazdu [min]",
  col = "Miasto"
)

wykres_sr + theme_light()

Podsumowanie

  • Dzięki graficznej prezentacji danych od razu zauważalne jest, jak bardzo Waszyngton odbiega od pozostałych miast - zarówno średni czas, jak i pokonywany w tej miejscowości przeciętny dystans są najwyższe.
  • Mimo że pokonywane w Waszyngtonie odległości są znaczne, Houston, gdzie są one na porównywalnym poziomie, znacznie lepiej radzi sobie pod względem średniego czasu przejazdu. Nie świadczy to dobrze o efektywności przemieszczania się w stolicy USA.
  • W Bostonie pokonuje się średnio najmniej mil spośród tych czterech miast. Nie oznacza to jednak, że jest to miasto najmniejsze - zajmuje ono drugie miejsce spośród prezentowanej czwórki.
  • W Minneapolis przeciętna podróż przez miasto trwa najkrócej.

Źródła


Zbiór MetroCommutes, Biblioteka Stat2Data

Dziękuję za uwagę!