Wielowymiarowa Analiza Rezerwacji Hotelowych
1. Wprowadzenie
1.1. Motywacja i cel pracy
Rezerwacje hotelowe są integralną częścią branży turystycznej i hotelarskiej, która dynamicznie się rozwija i w której decyzje biznesowe w dużej mierze opierają się na danych. Każdego dnia hotele przyjmują setki, a nawet tysiące gości, a systemy rezerwacyjne gromadzą szczegółowe informacje o czasie dokonania rezerwacji, liczbie osób, długości pobytu, typie hotelu czy dodatkowych usługach. Choć dane te są dostępne, rzadko analizuje się je kompleksowo, aby zrozumieć wzorce zachowań klientów i czynniki wpływające na anulowanie rezerwacji.
Zbiór danych o rezerwacjach hotelowych zawiera wiele powiązanych ze sobą zmiennych, takich jak typ hotelu, czas oczekiwania na przyjazd, liczba dorosłych i dzieci, sezonowość, liczba wcześniejszych anulacji czy liczba specjalnych próśb. Ponieważ cech jest wiele i mogą one wpływać na siebie nawzajem, trudno jest je analizować pojedynczo. Dlatego w projekcie zastosowano metody wielowymiarowej analizy danych, które pozwalają zidentyfikować najważniejsze zależności i wzorce w zbiorze danych.
Celem projektu jest lepsze zrozumienie zachowań klientów hotelowych, identyfikacja czynników wpływających na anulowanie rezerwacji oraz wykrycie naturalnych grup rezerwacji, które różnią się między sobą pod względem charakterystyki gości i wzorców pobytu. W tym celu wykorzystano m.in. analizę głównych składowych (PCA), metody klasteryzacji oraz inne techniki eksploracyjne, które pomagają uporządkować dane i wydobyć najważniejsze informacje.
Główne cele projektu to:
- zbadanie zależności między różnymi cechami rezerwacji hotelowych,
- identyfikacja zmiennych, które najbardziej wpływają na anulowanie rezerwacji,
- zastosowanie PCA do redukcji wymiarowości i interpretacji składowych,
- wykrycie naturalnych grup rezerwacji przy użyciu metod analizy skupień (klastrów),
- ocena przydatności zastosowanych metod w analizie danych hotelowych i podejmowaniu decyzji biznesowych.
1.2. Opis problemu badawczego
Powyżej przedstawiono ogólny kontekst problemu związanego z rezerwacjami hotelowymi. Zbiór danych zawiera wiele zmiennych opisujących rezerwacje – zarówno cechy gości, jak i szczegóły dotyczące pobytu czy anulowania rezerwacji. Ich wzajemne powiązania są złożone i trudne do analizy bez zastosowania odpowiednich metod statystycznych i eksploracyjnych.
W związku z tym w projekcie należy odpowiedzieć na kilka kluczowych pytań badawczych:
- Które cechy rezerwacji (np. czas oczekiwania na przyjazd, liczba osób, typ hotelu) są ze sobą najsilniej powiązane?
- Które zmienne mają największy wpływ na anulowanie rezerwacji?
- Czy można zidentyfikować naturalne grupy rezerwacji, np. według charakterystyki gości, typu hotelu lub wzorców pobytu?
- Czy zastosowanie metod redukcji wymiarowości (np. PCA) pozwala lepiej zrozumieć strukturę danych i ułatwia interpretację powiązań między zmiennymi?
1.3. Opis danych
Dane wykorzystane w projekcie pochodzą z publicznego repozytorium Kaggle i są dostępne pod adresem https://www.kaggle.com/datasets/mojtaba142/hotel-booking. Zbiór obejmuje rezerwacje dokonane w dwóch typach hoteli – city hotel i resort hotel – w okresie od lipca 2015 do sierpnia 2017. Dane są kompletne, liczne i dobrze przystosowane do analiz wielowymiarowych.
Jako zmienną objaśnianą przyjęto zmienną is_canceled, która wskazuje, czy rezerwacja została anulowana. Pozostałe zmienne ilościowe i kategoryczne podzielono na grupy w zależności od ich potencjalnego wpływu na ryzyko anulowania rezerwacji, co pozwala badać zarówno czynniki stymulujące, jak i hamujące rezerwacje.
Struktura zbioru:
- liczba obserwacji: 119 390
- liczba zmiennych: 36
Zmienna objaśniana:
- is_canceled
Zmienna objaśniana została wyszczególniona w celu ułatwienia analizy rozkładów i zależności korelacyjnych. Jako główny wskaźnik analizowanego zjawiska umożliwia ocenę wpływu pozostałych zmiennych na jej wartości oraz identyfikację czynników odpowiadających za obserwowane zróżnicowanie danych. W dalszej części analizy odstąpiono od podziału na zmienną objaśnianą i objaśniające, ponieważ zastosowane metody (PCA oraz klasteryzacja) mają charakter eksploracyjny i służą identyfikacji struktury oraz zależności pomiędzy wszystkimi zmiennymi jednocześnie.
Zmienne objaśniające:
Stymulanty - ich wzrost zmniejsza prawdopodobieństwo anulowania pobytu:
- previous_bookings_not_canceled → lojalność klienta,
- is_repeated_guest → lojalność klienta,
- total_of_special_requests → większe zaangażowanie klienta,
- stays_in_weekend_nights → dłuższy pobyt → mniejsza szansa anulowania,
- stays_in_week_nights → dłuższy pobyt → mniejsza szansa anulowania,
- adults → rezerwacje rodzinne są stabilniejsze,
- children → rezerwacje rodzinne są stabilniejsze,
- babies → rezerwacje rodzinne są stabilniejsze,
- required_car_parking_spaces → klient raczej planuje przyjazd.
Destymulanty - ich wzrost zwiększa ryzyko anulowania:
- lead_time → im wcześniej rezerwacja, tym większa szansa anulowania,
- previous_cancellations → historia anulowań,
- booking_changes → niestabilność rezerwacji,
- days_in_waiting_list → niepewność dostępności,
- adr (średnia cena za noc) → droższe rezerwacje częściej anulowane.
Nominanty - świetnie nadają się do kodowania, mogą wejść do PCA (po kodowaniu) lub klasteryzacji
- arrival_date_month,
- arrival_date_week_number,
- hotel (City / Resort),
- market_segment,
- distribution_channel,
- meal,
- country,
- reserved_room_type,
- assigned_room_type,
- deposit_type,
- customer_type.
Pozostałe zmienne i ich zastosowanie analityczne w projekcie
arrival_date_year, arrival_date_day_of_month → zmienne czasowe, które można jedynie wykorzystać do analizy kontekstowej oraz tworzenia nowych cech;
reservation_status, reservation_status_date → zmienne opisujące status rezerwacji są bezpośrednio powiazane ze zmienną objaśniającą; zostały wykluczone z modelowania, aby uniknąć wycieku informacji (data leakage);
agent, company, name, email, phone.number, credit_card → zmienne identyfikujące o braku interpretacji ekonomicznej i istotności analitycznej, zawierają bardzo dużo kategorii, przez co mogą zdominować PCA; zostały wykluczone z modelowania, ale zostają do opisu danych.
1.4. Identyfikacja zmiennych binarnych
W zbiorze pznajdują się dwie zmienne binarne: zmienna objaśniana - odwołanie_rezerwacji oraz zmienna objaśniająca powracający_gość.
2. Analiza eksploracyjna danych
2.1. Podstawowe statystyki opisowe
Przeprowadzono analizę statystyczną zmiennych ilościowych, binarnych oraz kategorycznych.
Zmienne ilościowe opisano za pomocą następujących statystyk: wartość minimalna i maksymalna, średnia, odchylenie standardowe oraz kwantyle 1, 2 (mediana) i 3. Niepokojąca jest ujemna wartość średniej ceny za noc, którą poddano dodatkowej analizie w kolejnych etapach przetwarzania danych.
W zbiorze znajdują się również dwie zmienne binarne: zmienna objaśniana odwołanie_rezerwacji oraz zmienna objaśniająca powracający_gość. Kolumna Procent_1 przedstawia odsetek obserwacji, w których zmienna przyjmuje wartość 1. Rezerwację odwołało niecałe 38% gości, a zaledwie 3,19% odwiedzających powraca do tego hotelu.
Zmienne kategoryczne opisano pod względem najczęściej występujących wartości wraz z ich udziałem w całym zbiorze.
2.2. Analiza rozkładów
2.2.1. Histogramy dla zmiennych ilościowych w postaci logarytmicznej
Histogramy zmiennych ilościowych zaprezentowano z wykorzystaniem logarytmicznej osi OY, co pozwoliło odsłonić strukturę rozkładów niewidoczną przy klasycznej skali. Wynika to z faktu, że we wszystkich przypadkach zdecydowanie dominuje wartość „0”, skutecznie maskująca zróżnicowanie pozostałych obserwacji.
Rozkłady zmiennych liczba_dzieci, liczba_niemowląt oraz wymagane_miejsca_parkingowe charakteryzują się wyraźnym skupieniem obserwacji w dolnym zakresie oraz obecnością wartości skrajnych (np. 10 dzieci w jednej obserwacji), które zostaną odpowiednio przekształcone w dalszej części analizy. Z kolei zmienne wcześniejsze_rezerwacje nieodwołane, liczba_zmian_rezerwacji oraz liczba_dni_na_liście_oczekujących wykazują mniejsze zróżnicowanie - odchylenia od wartości centralnych są ograniczone, a rozkłady pozostają bardziej zwarte. Zmienna wcześniejsze_odwołania charakteryzuje się nieregularnym, „poszarpanym” przebiegiem, co utrudnia jednoznaczną identyfikację jej rozkładu. Mimo to, podobnie jak w przypadku pozostałych analizowanych zmiennych, największe zagęszczenie obserwacji występuje w dolnym zakresie wartości. Wspólną cechą wszystkich analizowanych zmiennych jest asymetria prawostronna, co wskazuje na obecność nielicznych, lecz istotnych obserwacji o wyższych wartościach.
2.2.2. Histogramy dla pozostałych zmiennych ilościowych
Analizowane pięć zmiennych liczbowych wykazuje wyraźnie zróżnicowane kształty rozkładów, co widać na przygotowanych histogramach. W każdej z nich obserwacje koncentrują się głównie przy niskich wartościach, jednak tylko zmienna czas_wyprzedzenia_rezerwacji prezentuje typowy rozkład prawoskośny, wskazując, że większość rezerwacji dokonywana jest z niewielkim wyprzedzeniem, przy jednoczesnym istnieniu nielicznych, bardzo odległych terminów. W przypadku zmiennej liczba_nocy_tygodniowych rozkład jest zbliżony do normalnego, co sugeruje równomierne rozłożenie długości pobytów tygodniowych wokół wartości średniej. Pozostałe trzy zmienne - liczba_specjalnych_próśb, liczba_nocy_weekendowych oraz liczba_dorosłych - nie wykazują jednoznacznych, charakterystycznych form rozkładu. Histogramy pokazują ich nieregularne, niejednorodne rozmieszczenie, z niewielkimi skupieniami w dolnym zakresie i obecnością wartości odstających. Analiza wizualna tych wykresów pozwala zidentyfikować zarówno typowe zachowania, jak i obserwacje nietypowe, które mogą wymagać uwzględnienia przy dalszej modelowej analizie.
2.2.3. Histogramy dla zmiennych kategorycznych
Wykresy rozkładów zmiennych kategorycznych pozwoliły przyjrzeć się strukturze danych, wskazać dominujące kategorie oraz wstępnie ocenić zmienne potencjalnie wpływające na odwołanie_rezerwacji. Na podstawie wizualizacji można zauważyć, że największe zróżnicowanie udziału odwołań występuje w przypadku zmiennej rodzaj_depozytu, co sugeruje jej kluczową rolę w dalszej analizie. Wyraźne różnice między kategoriami widać również w zmiennych segment_rynku, kanał_dystrybucji oraz typ_klienta, co odzwierciedla różne profile klientów i sposoby dokonywania rezerwacji. Zmienne takie jak rodzaj_wyżywienia i typ_hotelu również wykazują dominację niektórych kategorii; choć same w sobie nie decydują bezpośrednio o odwołaniach, mogą wspomagać analizę w połączeniu z innymi cechami, np. ceną czy długością pobytu. Wykresy zmiennych czasowych, miesiąc_przyjazdu i numer_tygodnia_przyjazdu, pokazują okresy planowanych pobytów i pozwalają uchwycić sezonowe wzorce rezerwacji, które mogą pośrednio wpływać na częstość anulowań. Na tej podstawie zmienne rodzaj_depozytu, segment_rynku, kanał_dystrybucji, typ_klienta, a także miesiąc_przyjazdu i numer_tygodnia_przyjazdu wydają się najbardziej wartościowe do dalszej analizy.
Analiza wykresów rozkładów zmiennych liczbowych i kategorycznych pozwoliła poznać strukturę danych i zidentyfikować obserwacje odstające. W zmiennych liczbowych dominują niskie wartości, a niektóre, jak czas_wyprzedzenia_rezerwacji czy liczba_nocy_tygodniowych, wykazują wyraźne kształty rozkładu. Wśród zmiennych kategorycznych największe różnice w udziale odwołań występują w rodzaj_depozytu, segment_rynku, kanał_dystrybucji i typ_klienta, natomiast rodzaj_wyżywienia, typ_hotelu oraz zmienne czasowe mogą pełnić rolę wspomagającą. Wnioski z wykresów wskazują, które cechy warto uwzględnić w dalszej analizie odwołania_rezerwacji.
2.3. Analiza korelacji
Analizę korelacji przeprowadzono dla następujących zmiennych ilościowych oraz dla zmiennej objaśnianej:
- wcześniejsze_rezerwacje_nieodwołane,
- liczba_specjalnych_próśb,
- liczba_nocy_weekendowych,
- liczba_nocy_tygodniowych,
- liczba_dorosłych,
- liczba_dzieci,
- liczba_niemowląt,
- wymagane_miejsca_parkingowe,
- czas_wyprzedzenia_rezerwacji,
- wcześniejsze_odwołania,
- liczba_zmian_rezerwacji,
- liczba_dni_na_liście_oczekujących,
- średnia_cena_za_noc,
- powracający_gość,
- odwołanie_rezerwacji.
Łatwo zauważyć, że wśród analizowanych zmiennych nie występuje wiele silnych zależności. Największą zależność dodatnią widać między liczbą nocy weekendowych oraz liczbą nocy tygodniowych. Z kolei najbardziej zauważalna zależność ujemna występuje między liczbą specjalnych próśb a zmienną objaśnianą. Kolejne zauważalne relacje występują głównie przy zmiennej objaśnianej. Poniżej przeprowadzono szczegółową analizę korelacji.
2.3.1. Testy istotności korelacji
H0: Nie istnieje istotna statystycznie korelacja pomiędzy
porównywanymi zmiennymi (r = 0).
HA: Istnieje istotna statystycznie korelacja pomiędzy porównywanymi
zmiennymi (r ≠ 0).
- Test istotności korelacji zmiennych liczba_nocy_weekendowych oraz liczba_nocy_tygodniowych:
r = 0.499
p-value = 0
Współczynnik korelacji r = 0.499 wskazuje na umiarkowaną dodatnią zależność między zmiennymi. Bardzo niska wartość p-value (≈ 0) pozwala odrzucić hipotezę zerową, co oznacza, że dłuższe pobyty obejmujące weekend częściej wiążą się również z większą liczbą nocy w dni robocze.
- Test istotności korelacji zmiennych liczba_specjalnych_próśb oraz odwołanie_rezerwacji:
r = -0.235
p-value = 0
Ujemna korelacja (r = -0.235) oznacza słabą, lecz istotną zależność – im więcej specjalnych próśb, tym mniejsze prawdopodobieństwo odwołania rezerwacji. Wartość p-value ≈ 0 potwierdza istotność statystyczną tej relacji.
- Test istotności korelacji zmiennych wymagane_miejsca_parkingowe oraz odwołanie_rezerwacji:
r = -0.195
p-value = 0
Wartość r = -0.195 wskazuje na słabą ujemną korelację. Istotne statystycznie p-value sugeruje, że klienci wymagający miejsc parkingowych rzadziej odwołują rezerwacje.
- Test istotności korelacji zmiennych czas_wyprzedzenia_rezerwacji oraz odwołanie_rezerwacji:
r = 0.293
p-value = 0
Dodatnia korelacja r = 0.293 oznacza słabą do umiarkowanej zależność – im wcześniejsza rezerwacja, tym większe prawdopodobieństwo jej odwołania. Niska wartość p-value potwierdza istotność statystyczną wyniku.
- Test istotności korelacji zmiennych wcześniejsze_odwołania oraz odwołanie_rezerwacji:
r = 0.11
p-value = 0
Współczynnik r = 0.11 wskazuje na bardzo słabą, lecz dodatnią zależność. Pomimo niskiej siły korelacji, wynik jest istotny statystycznie, co sugeruje, że klienci z historią odwołań nieznacznie częściej anulują kolejne rezerwacje.
- Test istotności korelacji zmiennych liczba_zmian_rezerwacji oraz odwołanie_rezerwacji:
r = -0.144
p-value = 0
Ujemna korelacja r = -0.144 wskazuje na słabą zależność – większa liczba zmian rezerwacji wiąże się z mniejszym prawdopodobieństwem jej odwołania. Istotność statystyczna potwierdzona niskim p-value.
- Test istotności korelacji zmiennych powracający_gość oraz odwołanie_rezerwacji:
r = -0.085
p-value = 0
Bardzo słaba ujemna korelacja (r = -0.085) wskazuje, że powracający goście nieco rzadziej odwołują rezerwacje. Mimo niewielkiej siły zależności, wynik jest istotny statystycznie.
Analiza korelacji wykazała, że wszystkie badane zależności są istotne statystycznie (p < 0,05), jednak w większości przypadków mają one słabą siłę. Najsilniejszą, umiarkowaną dodatnią korelację zaobserwowano pomiędzy liczbą nocy weekendowych i tygodniowych (r = 0,499). Pozostałe zmienne wykazują jedynie słabe lub bardzo słabe związki z odwołaniem rezerwacji, co oznacza, że choć zależności te są statystycznie istotne, ich znaczenie praktyczne jest ograniczone.
2.4. Analiza braków danych
Analiza braków wykazała, że występują one w trzech zmiennych:
liczba_dzieci (4 braki),
firma (112 593 braków),
agent_rezerwacji (16 340 braków).
Wartości NA stanowią:
mniej niż 1% obserwacji zmiennej liczba_dzieci,
blisko 100% wartości zmiennej firma,
niecałe 14% obserwacji zmiennej agent_rezerwacji.
W dalszej części pracy zostanie omówione podejście do ich uzupełnienia oraz odpowiednia „obróbka” braków danych, uwzględniająca charakter poszczególnych zmiennych i wpływ na analizę.
2.5. Analiza obserwacji odstających
Analiza obserwacji odstających została przeprowadzona dla zmiennych ilościowych.
2.5.1 Wykresy pudełkowe ze standaryzacją
Ogólna analiza odchyleń przy wykorzystaniu boxplotów pokazuje, w których zmiennych ilościowych występują wartości odstające. Poniżej przeprowadzona zostanie szczegółowa analiza odchyleń za pomocą wykresów kwantyl-kwantyl.
2.5.2. Wykresy kwantyl-kwantyl z określeniem skośności i kurtozy
Analiza rozkładów zmiennych ilościowych przy użyciu boxplotów, a także wartości skośności (skewness) i kurtozy (kurtosis) pozwoliła zidentyfikować zmienne z odchyleniami i wartościami odstającymi. Wysokie wartości skewness wskazują na asymetrię rozkładu, a wysokie wartości kurtosis – na spiczastość i ciężkie ogony. W takich przypadkach lepszą miarą tendencji centralnej niż średnia jest mediana. Szczegółowe interpretacje dla każdej zmiennej znajdują się w powyższej tabeli.
2.5.3. Wielowymiarowa analiza odchyleń względem zmiennej objaśnianej
W kolejnym kroku przeprowadzono wielowymiarową analizę odchyleń z wykorzystaniem relacji między zmienną objaśnianą odwołanie rezerwacji a zmiennymi objaśniającymi.
Analiza odległości Cooka dla poszczególnych zmiennych objaśniających wykazała zróżnicowany stopień wpływu obserwacji nietypowych na stabilność estymowanych parametrów modelu. Szczególną uwagę należy zwrócić na zmienne liczba_dorosłych oraz średnia_cena_za_noc, gdzie zidentyfikowano punkty (m.in. nr 2174 oraz 48515) o ekstremalnie wysokich wartościach statystyki \(D\), sięgających poziomu 0.8, co wskazuje na ich krytyczny wpływ na dopasowanie modelu. Znaczące wartości odstające o charakterze punktów wpływowych obserwuje się również dla zmiennych liczba_niemowląt (obserwacja 46620, \(D \approx 0.3\)). Istotne zakłócenia odnotowano także w przypadku zmiennych wcześniejsze_rezerwacje_nieodwołane oraz liczba_zmian_rezerwacji. Warto także zwrócić uwagę na liczbę_dni_na_liście_oczekujących oraz wcześniejsze_odwołania, w których obserwuje się pojedyncze, lecz wysokie wartości odstające. W pozostałych przypadkach, takich jak liczba_specjalnych_próśb czy czas_wyprzedzenia_rezerwacji, wartości odległości Cooka są rzędu \(10^{-3}\) lub mniejsze, co sugeruje brak dominujących outlierów zaburzających wyniki. W celu zapewnienia wiarygodności prognoz i uniknięcia biasu wynikającego z jednostkowych anomalii, rekomenduje się usunięcie obserwacji o najwyższym wpływie z wyżej wymienionych sześciu zmiennych, a następnie ponowną kalibrację modelu na oczyszczonym zbiorze danych.
3. Czyszczenie danych
3.1. Obsługa braków wartości
3.1.1. Analiza występowania braków danych
Poniżej przeprowdzono dokładną analizę braków danych w zmiennych liczba_dzieci, agent_rezerwacji oraz firma, mającą na celu wskazanie dalszego postępowania.
W celu dokładniejszej analizy utworzono wykres UpSet, który prezentuje współwystępowanie braków między zmiennymi. Wynika z niego, że:
dla zmiennej liczba_dzieci wszystkie 4 braki występują współzależnie: 2 braki z wartościami NA w zmiennej firma oraz 2 braki z brakami we wszystkich dwóch pozostałych analizowanych zmiennych;
dla zmiennej agent_rezerwacji ok. 9,8 tys. braków (ok. 59.72%) występuje wspólnie z brakami w zmiennej firma, a 2 braki, jak już ustalono, wraz z brakami w pozostałych zmiennych. Natomiast blisko 6,6 tys. braków (ok. 40.27%) występuje niezależnie;
w zmiennej firma, poza wskazanymi zależnościami braków, zdecydowana większość wartości NA (ok. 91.33%) występuje niezależnie.
Test MCAR
H0: dane są MCAR - braki danych są całkowicie losowe
HA: dane nie są MCAR - braki danych są zależne od danych
Test Little’a dla braków danych wykazał istotność statystyczną (χ² = 633.62, df = 6, p < 0.001), co pozwala odrzucić hipotezę zerową o losowym występowaniu braków (MCAR). Oznacza to, że brakujące wartości w danych nie występują całkowicie losowo i mogą zależeć od innych zmiennych. W związku z tym dalsza analiza wymaga zastosowania odpowiednich metod radzenia sobie z brakami danych, takich jak imputacja lub modele uwzględniające ich obecność.
3.1.2. Usuwanie braków danych
Na podstawie powyższej analizy wysunięto następujące wnioski:
- zmienna lista_dzieci
Wartości NA występujące w tej zmiennej stanowią marginalny odsetek obserwacji (0,003%). Ponadto, współwystępują one z brakami w pozostałych analizowanych pod kądtem braków zmiennych. Zaleca się wobec tego usunięcie rekordów z brakami, bez stosowania imputacji.
- zmienna agent_rezerwacji
Brakujące wartości zmiennej agent_rezerwacji stanowią 13,69% wartości tej zmiennej i są one w 59,72% współzależne z brakami w zmiennej firma. Wobec tego, zaleca się zastosowanie prostej imputacji tych wartości średnią lub medianą wartości tej zmiennej, bądź uzupełnianie jej poprzez wielokrotną imputację, np. przy pomocy pakietu “mice”. Z uwagi jednak na charakter i specyfikę wartości zmiennej agent_rezerwacji, tj. ID agencji podróży, która dokonała rezerwacji, zasadnym uznano usunięcie tej zmiennej z dalszej analicy.
- zmienna firma
Braki w zmiennej firma, przez wzgląd, iż stanowią ponad 94% wszystkich wartości tej zmiennej, odbierają jej wartość informacyjną, wobec czego należy usunąć tę zmienną.
Liczba obserwacji w zbiorze po usunięciu braków w zmiennej liczba_dzieci: 119386
Liczba zmiennych w zbiorze po usunięciu zmiennej agent_rezerwacji oraz firma: 34
3.2. Obsługa obserwacji odstających
W celu redukcji wartości odtsających zdecydowano się na zastosowanie podejścia mieszanego. Na podstawie analizy boxplotów, miar skośności i kurtozy zidentyfikowano zmienne charakteryzujące się silnymi odchyleniami od symetrii oraz obecnością wartości ekstremalnych. Dodatkowo wykorzystano analizę odległości Cooka, która pozwoliła wskazać obserwacje silnie wpływowe, mogące w istotny sposób zakłócić dalszą analizę głównych składowych oraz analizę skupień, znanych z wysokiej wrażliwości na obserwacje odstające.
3.2.1. Usunięcie wartości skrajnych
Aby ograniczyć wpływ obserwacji odstających na wariancję i odległości między obiektami, przed przeprowadzeniem analiz usunięto najbardziej wpływowe obserwacje, wyznaczone na podstawie statystyki Cooka, przyjmując próg \(4/n\).
W konsekwencji usunięto 2725 obserwacji (2.28%) o najwyższym wpływie na dopasowanie modelu.
3.2.2. Winsoryzacja
W kolejnym etapie rozważono sposób ograniczenia wpływu wartości odstających w zmiennych ilościowych o wysokiej skośności (skewness > 1). W dostosowywaniu winsonizacji uwzględniono również charakter zmiennych oraz ich potencjalny wpływ na analizę głównych składowych (PCA) oraz analizę skupień.
Dla zmiennych o szerokim zakresie wartości i wyraźnych wartościach skrajnych (takich jak średnia_cena_za_noc czy liczba_dni_na_liście_oczekujących), które mogłyby silnie wpływać na wariancję i odległości pomiędzy obserwacjami, zastosowano winsoryzację opartą na percentylach 1% i 99%. Wybór tej metody był uzasadniony tym, że reguła IQR prowadziła do modyfikacji większego odsetka danych (ok. 3.18% w przypadku zmiennej o najwyższej skośności spośród wskazanych - tj. średnia_cena_za_noc (skew = 10,5)), co przy tak dużym zbiorze danych mogłoby prowadzić do nadmiernego wygładzenia rozkładów.
Metoda percentylowa pozwoliła ograniczyć wpływ najbardziej skrajnych obserwacji (ok. 0.98% danych dla zmiennej o najwyższym skewness), zachowując jednocześnie strukturę zmienności istotną dla dalszych analiz wielowymiarowych. Pozwoliło to zmniejszyć wpływ ekstremów bez utraty istotnych obserwacji oraz uniknąć nadmierną modyfikację danych, charakterystyczną dla reguły IQR w przypadku rozkładów silnie skośnych.
3.2.3. Ograniczenie zmiennych “z góry”
Zmienne takie, jak liczba_niemowląt, liczba_zmian_rezerwacji, wcześniejsze_rezerwacje_nieodwołane i wcześniejsze_odwołania, w których zdecydowana większość obserwacji przyjmowała wartość 0, nie zostały poddane klasycznej winsoryzacji percentylowej, ponieważ mogłoby to prowadzić do utraty informacji lub powstania wartości NA. W ich przypadku zastosowano jedynie kontrolowane ograniczenie najwyższych wartości, co pozwoliło zmniejszyć wpływ pojedynczych obserwacji skrajnych na analizę PCA i skupień, bez zmiany interpretacji tych zmiennych.
3.2.4. Pozostawienie istotnych wartości odstających
Pozostałe zmienne o umiarkowanej skośności i niższej statystyce Cooka (liczba_dzieci, liczba_specjalnych_próśb, liczba_nocy_weekendowych, liczba_nocy_tygodniowych, liczba_dorosłych, czas_wyprzedzenia_rezerwacji, wcześniejsze_odwołania, liczba_zmian_rezerwacji, wymagane_miejsca_parkingowe), były poddane jedynie ograniczeniu wynikającemu z ewentualnego przekroczenia progu \(4/n\) dla statystyki Cooka (\(D\)). Przez wzgląd na fakt, że ich wartości i zakres nie stwarzały jednak ryzyka nadmiernego wpływu pojedynczych obserwacji na analizę wielowymiarową, nie zastosowano dla nich innych, celowych modyfikacji mających na celu spłaszczenie bądź ograniczenie zakresu ich wartości. Dzięki temu zachowano maksymalną informacyjność tych zmiennych, jednocześnie minimalizując wpływ ekstremów w najbardziej krytycznych kolumnach.
3.2.5. Podsumowanie wartości zmiennych po przekształceniach
INTERPRETACJE:
1. Średnia cena za noc
Na pierwszym wykresie widać, jak ekstremalne wartości odstające
przekraczające 5000 jednostek całkowicie zniekształciły skalę i
uniemożliwiły analizę rozkładu. Po usunięciu tych błędnych lub
nietypowych rekordów, skala osi Y uległa znacznemu zawężeniu, co
pozwoliło na wyraźne przedstawienie struktury cenowej z medianą
oscylującą w okolicach 95 jednostek. Dzięki temu zabiegowi dane stały
się czytelne, ujawniając, że większość cen mieści się w przedziale od 70
do 125, podczas gdy pozostałe wartości powyżej 200 stanowią już tylko
nieliczne i łatwe do zidentyfikowania punkty.
2. Liczba dni na liście oczekujących
Ponownie obsługa outlierów pozwoliła na ograniczenie osi Y poprawiając
czytelność wyników. Porównanie wykresów pokazuje, że przed obróbką dane
były silnie obciążone ekstremalnymi wartościami odstającymi, sięgającymi
blisko 400 dni, co spłaszczało główną część rozkładu do poziomu
zerowego. Poprzez usunięcie tych najbardziej oddalonych punktów i
zawężenie skali osi Y do 80 jednostek, udało się uzyskać znacznie
większą szczegółowość danych, choć sam kształt pudełka nadal pozostaje
minimalny ze względu na dużą koncentrację obserwacji przy wartościach
bliskich zeru. Taka transformacja pozwala na lepszą identyfikację
“łagodniejszych” wartości odstających i pokazuje, że po odrzuceniu
ekstremów większość pozostałych incydentalnych oczekiwań mieści się w
zakresie do około 75 dni.
3. Liczba niemowląt
Pierwotny wykres wskazywał na obecność nierealistycznych wartości
odstających, sięgających nawet 10 niemowląt, co w kontekście rezerwacji
hotelowej jest niemal niemożliwe. Po procesie czyszczenia zmienna ta
została sprowadzona do stałej wartości równej zero, co widać na wykresie
„po” jako pojedynczą, poziomą linię. Oznacza to, że po odrzuceniu
błędnych lub ekstremalnie rzadkich rekordów, cecha ta przestała
wykazywać zmienność w analizowanym zbiorze danych.
4. Liczba zmian rezerwacji
5. Wcześniejsze rezerwacje nieodwołane
Pierwotne zbiory danych zawierały liczne wartości odstające, sięgające
nawet 60 modyfikacji w przypadku zmiennej wcześniejsze rezerwacje
nieodwołane, co niemal całkowicie maskowało rzeczywistą strukturę
rezerwacji. Po przeprowadzeniu procesu czyszczenia danych i zawężeniu
skali do zakresu od 0 do 3 rozkłady stały się znacznie bardziej
przejrzyste. W przypadku zmiennej liczba zmian rezerwacji drugi
wykres wskazuje, że zdecydowana większość klientów nie dokonuje żadnych
modyfikacji swoich zamówień. Z kolei dla zmiennej wcześniejsze
rezerwacje nieodwołane oczyszczony rozkład ujawnia typową strukturę
lojalności klientów, pozbawioną zniekształceń wynikających z
pojedynczych, ekstremalnych obserwacji. Usunięcie wartości skrajnych
umożliwiło również wyodrębnienie rzadkich, lecz wiarygodnych przypadków,
w których liczba zmian mieści się w przedziale od 1 do 3, stanowiących
obecnie czytelny margines analizowanego zbioru.
6. Wcześniejsze odwołania
Proces czyszczenia danych wyeliminował ekstremalne wartości odstające
sięgające 25 incydentów, które całkowicie zniekształcały obraz
statystyczny grupy. Po zawężeniu skali do zakresu 0–1, wykres stał się
czytelny i wykazał, że po usunięciu anomalii typowa aktywność w tym
obszarze ogranicza się do pojedynczych przypadków. Taka korekta
pozwoliła przejść od chaotycznego zbioru punktów do klarownej
prezentacji, w której jedynym istotnym punktem poza zerem jest wartość
1.
7. Liczba dorosłych
W wyniku czyszczenia danych usunięto skrajne i nierealistyczne
obserwacje odstające, które przed korektą osiągały nawet 50–60 osób w
ramach pojedynczej rezerwacji. Po ograniczeniu zakresu wartości do
przedziału 0–4 wykres stał się czytelny i jednoznacznie pokazał, że
najczęściej występują rezerwacje obejmujące 2 osoby dorosłe, co
odpowiada medianie analizowanego zbioru. Eliminacja anomalii pozwoliła
na uzyskanie spójnego i wiarygodnego rozkładu, odzwierciedlającego
naturalne zróżnicowanie liczebności grup podróżnych, które mieści się w
granicach od 0 do 4 osób i było wcześniej całkowicie zaburzone przez
błędy danych.
Powyższe tabele prezentują porównanie statystyk opisowych zmiennych ilościowych przed i po ich przekształceniu. W pierwszym kroku wyświetlana jest tabela zawierająca statystyki dla danych przed czyszczeniem. Następnie dla zbioru bez outlierów obliczane są podstawowe miary statystyczne. Zaprezentowano je w drugiej tabeli jako dane po przetworzeniu. Dodatkowo w tabeli końcowej wizualnie wyróżnione zostają wiersze odpowiadające zmiennym, które uległy zmianie podczas procesu czyszczenia danych.
Po usunięciu wartości odstających zmieniły się kluczowe miary statystyczne zmiennych ilościowych. Wartości minimalne i maksymalne zostały zredukowane do realistycznych granic, co sprawiło, że średnie i odchylenia standardowe stały się bardziej reprezentatywne dla większości obserwacji. Mediany i kwartyle pozostały względnie stabilne, natomiast zakresy międzykwartylowe lepiej oddają naturalne zróżnicowanie danych, bez zaburzeń spowodowanych ekstremalnymi rekordami. Dzięki temu rozkłady zmiennych stały się czytelniejsze, a interpretacja wyników bardziej wiarygodna.
Powyższa tabela porównująca skośność zmiennych ilościowych przed i po usunięciu wartości odstających oblicza dla każdej zmiennej skośność w oryginalnym zbiorze i w oczyszczonym. Następnie wylicza różnicę w wartościach bezwzględnych, pokazując, jak bardzo rozkład zbliżył się do symetrii. Wyniki wyświetlano w formie tabeli, w której wyróżniono w jakim procencie uległ poprawie parametr skośności po edycji danych.
Największej poprawie uległa zmienna wcześniejsze_odwołania (20,54%), liczba_dorosłych (17,81%) oraz wcześniejsze_rezerwacje_nieodwołane (16,74%). Dla pozostałych zmiennych zmiana jest niewielka lub nawet ujemna – np. liczba_dzieci (-0,34%). Mimo to przeprowadzona obsługa wartości odstających jest uzasadniona, ponieważ zapewnia spójność metodologiczną i minimalizuje potencjalne zakłócenia w dalszych analizach.
4. Obróbka zmiennych
4.1. Tworzenie nowych zmiennych
Do zbioru dodano nową zmienną - zmiana_pokoju, która sprawdza, czy rodzaj przydzielonego pokoju różnił się od pokoju pierwotnie zarezerwowanego przez klienta. Przyjmuje następujące wartości:
1 (rodzaj pokoju zarezerwowanego różni się od przydzielonego)
0 (rodzaj pokoju pozostał bez zmian)
Połączono także zmienne liczba_nocy_weekendowych oraz liczba_nocy_tygodniowych w celu utworzenia zmiennej o większej sile informacyjnej - liczba_nocy, opisującej łączną długość pobytu.
W podobnym celu powstała zmienna liczba_osób charakteryzująca łączną liczbę gości, utworzoną ze zmeinnych: liczba_dorosłych, liczba_dzieci i liczba_niemowląt.
4.2. Usuwanie zmiennych
Ze zbioru danych wykluczono zmienne, które ze względu na konieczność ochrony danch osobowych klientów, utowrzono sztucznie, a które uznano za nieistotne informacyjnie przy analizie głównych składowych (PCA) oraz analizie skupień.
Pominięto również wybrane, nie niosące istotnej wartości informacyjnej zmienne czasowe oraz zmienne opisujące końcowy status rezerwacji. Uzasadnia się to faktem, iż zmienne te odnoszą się do zdarzeń, które nastąpiły po dokonaniu rezerwacji, a co za tym idzie - nie opisują one sytuacji klienta w momencie podejmowania decyzji, co mogłyby zniekształcać wyniki przeprowadzanych analiz.
Dodatkowo, usunięto zmienną kraj_pochodzenia, która charakteryzuje się bardzo dużą liczbą kategorii. Jej uwzględnienie w analizie mogłoby proawdzić do nadmiernego zwiększenia liczby zmiennych i utrudniania interpretacji wyników.
Usunięte zmienne to:
imię_i_nazwisko, adres_email, numer_telefonu, numer_karty_kredytowej – zmienne sztuczne, nieistotne analitycznie,
dzień_przyjazdu_w_miesiącu, rok_przyjazdu – zmienne czasowe, nadmiarowe,
data_statusu_rezerwacji – zmienna opisująca stan rezerwacji po jej realizacji,
kraj_pochodzenia – zmienna o bardzo dużej liczbie kategorii.
We wcześniejszych etapach analizy usunięto także zmienne firma oraz agent_rezerwacji ze względu na wsytępowanie wartości NA oraz nie wnoszenie istotnych informacji do analizy (zmienne bez znaczenia liczbowego, zawierające numery ID firm oraz agencji rezerwujących pokoje).
W wyniku dodania nowych zmiennych, które scalają informacje z poszczególnych z nich, wyklucza się ze zbioru zmienne: rodzaj_zarezerwowanego_pokoju, rodzaj_przydzielonego_pokoju, liczba_nocy_weekendowych, liczba_nocy_tygodniowych, liczba_dorosłych, liczba_dzieci i liczba_niemowląt.
4.3. Standaryzacja i normalizacja
Zmienne ilościowe zostały poddane standaryzacji metodą Z-score w celu zapewnienia porównywalności skal oraz równoważnego wpływu zmiennych na wyniki wybranych metod analizy (PCA oraz analiza skupień).
Metoda ta została wybrana, ponieważ analiza głównych składowych i
analiza skupień są wrażliwe na różnice skali zmiennych, a standaryzacja
pozwala wyrównać wpływ każdej zmiennej na obliczenia odległości i
wariancji, bez konieczności zakładania normalności rozkładu
danych.
Nie zdecydowano się natomiast zastosować normalizacji “min-max”
(unitaryzacji) lub przekształcenia ilorazowego, gdyż mogłyby
niepotrzebnie zmieniać strukturę danych (np. zniekształcać odległości
między punktami ujednolicając wpływ zmiennych na odległość), którym
porównywalność zapewniła standaryzacja Z-score.
Finalny zbiór po obróbce zawiera 116661 obserwacji i 22 zmiennych.
5. ZASTOSOWANIE METOD WIELOWYMIAROWYCH
5.1. PCA – Analiza głównych składowych
W celu redukcji wymiarowości i zbadania struktury danych ilościowych w zbiorze, zastosowano analizę głównych składowych (PCA – Principal Component Analysis). Jest to metoda statystyczna, która przekształca oryginalne zmienne w nowe, nieskorelowane czynniki, zwane składowymi głównymi. Składowe te są uporządkowane na podstawie malejącego udziału objaśniania całkowitej wariancji danych, co pozwala na wydobycie z nich najbardziej istotnych informacji przy użyciu mniejszej liczby wymiarów.
W kolejnych krokach przeprowadzono:
Analizę założeń PCA, opartą o ocenę korelacji między zmiennymi, test Bartletta oraz kryterium KMO,
Dobór liczby składowych z wykorzystaniem kryterium procentu skumulowanej wariancji, kryterium Keisera oraz kryterium Catella (wykresu osypiska),
Interpretację wyników – przedstawiono ładunki czynnikowe ilustrujące wkład zmiennych w poszczególne wymiary, wizualizację korelacji zmiennych ze składowymi głównymi i wykres udziału zmienności objaśnianej przez składowe (cos²).
Ze względu na dużą liczbę obserwacji (116 661), aby uniknąć overplottingu, zrezygnowano z wizualizacji współrzędnych obserwacji w przestrzeni głównych składowych oraz biplotu.
Do analizy włączono 10 zmiennych ilościowych, wybranych z pierwotnego zbioru zawierającego 22 zmiennych. Pozostałe zmienne, ze względu na charakter jakościowy, nie zostały uwzględnione w procedurze PCA.
5.1.1. Sprawdzenie założeń analizy PCA
1) Macierz korelacji
W tym kroku ponownie sprawdzono wzajemne powiązania zmiennych ilościowych, tym razem na danych finalnych, po obróbce zmiennych.
W przedstawionej macierzy korelacji można wydedukować, że istnieją pewne istotne korelacje między zmiennymi w zbiorze.
2) Test Bartletta
H0: Macierz korelacji jest macierzą jednostkową (zmienne nie są
skorelowane) - nie ma sensu wykonywać PCA
H1: Macierz korelacji nie jest macierzą jednostkową (zmienne są
skorelowane) - warto wykonywać redukcję wymiaru, analizę PCA
Na podstawie testu Bartletta i p-value = 0 < alfa = 0,05 odrzucono H0 na rzecz HA stwierdzając, że macierz korelacji badanego zbioru danych ilościowych nie jest macierzą jednostkową, wobec czego warto wkonać redukcję wymiaru.
3) Kryterum KMO (Keisera-Meyera-Olkina)
Według ogólnie przyjmowanych progów dla MSA, tj.:
~0.5 - kryterium KMO nie roztrzyga, czy warto wykonywać PCA
0.5 - warto wykonywać PCA
< 0.5 - nie ma sensu wykonywać PCA
można uznać, że warto wykonać analizę
głównych składowych dla analizowanych zmiennych, gdyż wynoszą
one w większości wiecej lub blisko
0,5.
Potwierdza to również Overall MSA* wynoszące
0,58.
5.1.2. Określenie liczby składowych do redukcji
1) Kryterium procentu wariancji
Skumulowana wariancja procentowa (> 80%) wskazała, że najkorzystnieszą opcją dla wybranych zmiennych jest zredukowanie ich do **3 wymiarów*.
2) Kryterium Keisera
Wartość własna, zaprezentowana w tabeli “Kryterium udziału zmienności” przekracza \(1\) dla 4 zmiennych, co również sugeruje zastosowanie 3 wymiarów.
3) kryterium Catella
Wykres osypiska natomiast uwidocznił punkt przegięcia w 3 wymiarze - co za tym idzie, według kryterium Catella należy zastosować 2 wymiary.
Wniosek
Na podstawie powyższej analizy uznano, że najbardziej dopasowaną liczbą wymiarów, do których należy zredukować analizowane zmienne to 3.
5.1.3. Interpretacja wyników PCA
Współczynniki korelacji między oryginalnymi zmiennymi a nowo utworzonymi składowymi (ładunki czynnikowe) ukazują, które z nich najsilniej (a które najsłabiej) oddziaływały na daną składową główną. O znaczeniu zmiennej decydował jej procentowy wkład w daną składową (> 10%), natomiast znak ładunku określał kierunek zależności.
Najbardziej wpływające na utworzone wymiary zmienne to:
Wymiar 1.
średnia_cena_za_noc (29,0%, negatywny wpływ)
liczba_osób (27,3%, negatywny wpływ)
liczba_specjalnych_próśb (15,3%, negatywny wpływ)
wcześniejsze_odwołania (10,3%, dodatni wpływ)
Wymiar 2.
czas_wyprzedzenia_rezerwacji (37,8%, negatywny wpływ)
wcześniejsze_rezerwacje_nieodwołane (15,7%, dodatni wpływ)
wymagane_miejsca_parkingowe (12,3%, dodatni wpływ)
Wymiar 3.
liczba_zmian_rezerwacji (50,2%, negatywny wpływ)
liczba_nocy (28,2%, negatywny wpływ)
Wobec powyższego, zróżnicowanie rezerwacji hotelowych opisane zostało za pomocą trzech głównych cech:
- profil cenowy i preferencje klientów (pierwsza
składowa główna)
- planowanie rezerwacji (druga składowa główna)
- elastyczność i długość pobytu w hotelu (trzecia składowa główna)
Korelację zmiennych oryginalnych z poszczególnymi składowymi głównymi przedstawia poniższa grafika.
Z wykresów korelacji zmeinnych PCA wynika, że pierwsza główna składowa (Dim1) wraz z drugą (Dim2) łącznie wyjaśniają 31.5% całkowitej wariancji danych. Uwzględnienie trzeciej składowej (Dim3) zwiększa dodatkowo ten odsetek do 42.4%.
Na wykresach widoczne są wyraźne grupy zmiennych o zbliżonych kierunkach wektorów (np. w Dim1-Dim2 para wymagane_miejsca_parkingowe i liczba_specjalnych_próśb, czy w Dim2-Dim3 para średnia_cena_za_noc oraz liczba_osób), co wskazuje na ich dodatnią korelację, oraz zmienne skierowane przeciwnie (np. w Dim1-Dim3 para liczba_specjalnych_próśb i wcześniejsze_odwołania), świadczące o ich ujemnym powiązaniu. Długość wektorów natomiast potwierdza, że zmienne wskazane wcześniej jako istotne dla poszczególnych wymiarów są właściwie przedstawiane w przestrzeni głównych składowych.
Wymiar 1. ponadto reprezentował w największej mierze zmienność średniej ceny za noc (49,8%) oraz liczby osób (46,8%).
Wymiar 2. odpowiadał za objaśnienie w 54,3% wariancji czasu wprzedzenia rezerwacji.
Wymiar 3. natomiast objaśnił głównie zmienność liczby zmian rezerwacji (w 54,9%) oraz liczby nocy (w 30,9%).
5.2 Analiza skupień
W kolejnym etapie przeprowadzono analizę skupień z wykorzystaniem metody podziału rozłącznego - metody k-średnich (k-means). Polega ona na podziale zbioru obserwacji na określoną liczbę jednorodnych grup w taki sposób, aby obiekty wewnątrz klastrów były do siebie jak najbardziej podobne, natomiast różniły się maksymalnie od obiektów z pozostałych skupień. Dzieje się to za sprawą minimalizacji sumy kwadratów odległości obserwacji od centroidów klastrów, a co pozwala dokonać najbardziej skutecznego grupowania danych.
Wybór metody k-średnich jest uzasadniony przede wszystkim dużą liczebnością zbioru danych (ponad 119 tys. obserwacji), która sprawia, że zastosowanie klasycznych metod hierarchicznych (np. Warda) stają się zbyt złożone obliczeniowo, a co w przypadku k-means - jest możliwe do wykonania.
Dodatkowo, klasteryzacja została przeprowadzona na standaryzowanych zmiiennych ilościowych, co zapewniło ich porównywalność i zapobiegło dominacji zmiennych o większej skali.
Podobnie jak w przypadku analizy PCA - do przeprowadzenia analizy skupień użyto 10 zmiennych ze zbioru po obróbce, liczącego 22 zmiennych.
W kolejnych etapach dokonano:
Określania optymalnej liczby skupień przy pomocy metody łokcia, indeksu sylwetkowego oraz statystyki GAP,
Właściwej analizy k-means na pełnym zbiorze danych przy wybranej liczbie klastrów oraz analizy centrów skupień,
Wizualizacji wyników segmentacji, zarówno w przestrzeni zredukowanej do dwóch wymiarów, jak i na wykresach rozrzutu dla wybranych zmiennych, w celu oceny jakości i interpretowalności uzyskanych skupień.
5.2.1. Określanie optymalnej liczby skupień
Z uwagi na bardzo dużą liczebność zbioru danych, obliczenia znajdujące się w tym kroku zostały przeprowadzone na losowej próbie obejmującej 5000 oraz 10 000 obserwacji. Sprwadzenie do prób było konieczne, ponieważ funkcje służące do wyznaczania miar jakości klasteryzacji wymagają tworzenia dużych macierzy odległości, których obliczenie dla pełnego zbioru przekraczało możliwości obliczeniowe programu R. Dodatkowo podjęto próbę wykorzystania pakietu NbClust, jednak nawet po ograniczeniu liczby obserwacji funkcja ta nie zadziałała poprawnie z uwagi na zbyt dużą złożoność obliczeń.
Nie użyto również głównych składowych wytypowanych przez analizę PCA, które zredukowały wymiar zbioru ze względu na fakt, że objaśniła ona mniej niż 50% wariancji zmienności danych.
1) Metoda łokciowa WSS (Elbow Method)
Pierwsza z trzech obiektywnych metod wyboru liczby skupień jest
metoda łokciowa, która polega na analizie zmiany sumy
kwadratów odległości wewnątrz skupień (WSS) w zależności od
liczby klastrów.
Optymalną liczbę skupień wybiera się w miejscu, w którym dalsze
zwiększanie liczby klastrów nie powoduje już istotnego zmniejszenia się
wewnętrznego zróżnicowania danych (WSS).
Analiza wykresu łokcia, na podstawie próbki liczącej 5 tys. oraz 10 tys. obserwacji nie wskazała okreslonej liczby klastrów, która byłaby najlepsza do grupowania wartości zmiennych ilosciowych w badanym zbiorze. Oba wykresy zostały wygładzone i nie uwidaczniają wyraźnego zaprzestania spadku wewnętrznego zróżnicowania danych.
Wobec tego, tę metodę wyznaczania optymalnej liczby skupień uznano za nieistotną i przystąpiono do dalszej analizy przy pomocy indeksu sylwetkowego oraz statystyki GAP.
2) Indeks sylwetkowy (Silhouette Index)
Drugą metodą jest indeks sylwetkowy, który mierzy
jakość przypisania obserwacji do skupień, porównując podobieństwo
obiektów wewnątrz klastra z ich odległością od innych klastrów.
Optymalna liczba skupień odpowiada maksymalnej średniej wartości
indeksu sylwetki.
Wykres skupiska dla każdej z próbek wskazał różne wyniki efektywnego przypisania liczby skupisk dla analizowanych danych.
Dla próbki o liczebności 5 tys. obserwacji zostało wskazanych 6 klastrów jako najbardziej optymalnych. Dla próbki z 10 tys. wartości były to natomiast 2 klastry.
Wniosek z analizy Silhouette Index jest taki, że im większa jest liczebność próbki pobranej z oryginalnego zbioru danych (hotel_std), tym mniejsza liczba klastrów jest uznawana za najbardziej efektywną i dopasowaną. Co za tym idzie - uznano, że **2-6 (ok. 4 klastry)* są najodpowiedniejszą liczbą skupisk do analizy k-means.
1) Statystyka GAP (GAP Statistic)
Ostatnią, trzecią metodą sprawdzania najodpowiedniejszej liczby
klastrów do analizy skupień jest statystyka GAP
porównująca jakość grupowania, która została uzyskana dla danych
rzeczywistych z jakością grupowania dla danych losowych o tej samej
strukturze.
Optymalna liczba skupień to taka, dla której wartość statystyki
GAP jest największa.
Wizualizacje prezentują wykres statystyki GAP dla próbki o liczebności 5 tys. oraz 10 tys. obserwacji, przy 5 inicjacjach algorytmu k-średnich oraz ograniczeniu liczby symulacji danych do oceny istotności do 10 (domyślnie 100).
Przez wzgląd na złożoność obliczeń przy wyznaczaniu statystyki GAP, a co za tym idzie - wydłużony czas oczekiwania na wyświetlanie wizualizacji dla próbki, zdecydowano się ująć wyniki słownie:
- statystyka GAP na próbce 10 tys. obserwacji, 5 inicjacjach oraz 10 symulacjach danych referencyjnych wskazuje 1 klaster jako optymalny do użycia w dalszej analizie,
- statystyka GAP na próbce 10 tys. obserwacji, domyślnej, 1 liczbie inicjacji oraz 10 symulacjach wskazuje 1 klaster ,
- statystyka GAP na próbce 5 tys. obserwacji, 5 inicjacjach oraz 10 symulacjach wskazuje 5 klastrów,
- statystyka GAP na próbce 5 tys. obserwacji, 1 liczbie inicjacji oraz 10 symulacjach wskazuje 10+ klastrów
Wnioskując - statystyka GAP w danym przypadku nie
jest jednoznaczna we wskazaniu optymalnej liczby klastrów. Zauważyć
jednak można, że podobnie jak w przypadku indeksu sylwetkowego - im
liczniejsza była próbka pobrana z danych (hotel_std) i im
większy był ustalony poziom interacji, tym statystyka wskazywała coraz
mniejszą liczbę klastrów.
Uznano więc, że liczebność grup, na podstawie statsytyki GAP
powinna zawierać się między 2-5 klastrów (3 lub 4
skupiska).
WNIOSEK
Przeprowadzona przy użyciu powyższych metod analiza optymalnej liczby klastrów do dalszej analizy k-średnich nie przyniosła jednoznacznych rezultatów i wykazała niejdenorodne, trudne do interpretacji wyniki. Główną przyczyną tego problemu było przeprowadzone próbkowanie obserwacji (5 tys. i 10 tys.), ze względu na zbyt obciążeniową program analityczny liczebność zbioru danych (ponad 119 tys. obserwacji).
Wobec tego:
- metoda WSS nie wskazała żadnego
najefektywniejszego skupiska obserwacji, który byłby odpowiedni do
dalszej analizy,
- indeks sylwetkowy wskazał dwa potencjalnie istotne klastry:
2 i 6,
- statystyka GAP określiła 1 lub 5
klastrów jako potencjalnie optymalne miejsca grupowanie się
klastrów.
Przyjęto zatem liczbę 4 klastrów za najbardziej dopasowaną do analizowanych danych.
5.2.2. Właściwa analiza k-means
W tym etapie przeprowadzono właściwe grupowanie obserwacji metodą k-średnich na pełnym zbiorze danych, przy założeniu podziału na 4 klastry. Algorytm został uruchomiony z wykorzystaniem 25 losowych inicjalizacji centroidów (nstart = 25), co pozwoliło ograniczyć wpływ losowości na wynik algorytmu i zwiększyło wiarygodność wyników klasteryzacji.
Po przeprowadzeniu klasteryzacji metodą k-średnich dla 4 skupień uzyskano łączną sumę kwadratów wewnątrz klastrów (tot.withinss) równą 8.1983425^{5}, sumę kwadratów między klastrami (betweenss) równą 3.4676575^{5} oraz całkowitą sumę kwadratów (totss) na poziomie 1.1666^{6}. Oznacza to, że około 0.3% całkowitej wariancji danych zostało wyjaśnione przez różnice między klastrami, natomiast pozostała część wynika ze zróżnicowania wewnątrz skupień.
Średnie wartości zmiennych dla każdego klastra
pokazują, jak poszczególne zmienne różnią się między grupami.
Mapa ciepła pozowliła w prosty sposób zobczać zależności w klastrach,
tzn. które zmienne są wyższe lub niższe w danym klastrze: bordowe pola
oznaczają wartości powyżej średniej, niebieskie - poniżej średniej, a
białe - wartości zbliżone do średniej.
Na podstawie tych średnich możemy opisać charakterystyki poszczególnych klastrów:
Klaster 1.
Klaster ten posiada wyraźnie wysokie wartości w zmiennych:
wcześniejsze_odwołania (2,93),
liczba_dni_na_liście_oczekujących (1,95) oraz
czas_wprzedzenia_rezerwacji (0,92). można więc sądzić, że
skupia on klientów, którzy planują swoje pobyty w hotelu z dużym
wyprzedzeniem. Charakteryzują się oni dłuższym niż przeciętnie okresem
czasu, jaki upływa od momentu dokonania rezerwacji pokoju do planowanego
przyjazdu, a co się z tym wiąże - długim okresem przebywania na liście
oczekujących, a także dużą liczbą wcześniejszych rezerwacji i ich
odwołań. Sugeruje to, że są to osoby często rezerwujące noclegi, ale
jednocześnie skłonne do zmiany planów.
Pozostałe zmienne mają wartości średnie lub niższe od średniej, więc nie
wyróżniają tej grupy.
Klaster 2.
Klienci należący do tego klastra wyróżniają się wysokim zapotrzebowaniem
na miejsca parkingowe (wymagane_miejsca_parkingowe: 3,84). Może
to wskazywać, że często podróżują oni samochodem, stąd też większe
znaczenie ma dla nich dostępność parkingu przy wyborze noclegu.
Pod względem pozostałych analizowanych zmiennych ich zachowanie jest
zbliżone do przeciętnego, co sugeruje, że są to typowi goście, z tylko
jednym, dodatkowym wymaganiem.
Klaster 3.
Klaster trzeci obejmuje rezerwacje potencjalnie liczniejsze i o wyższym
standardzie. Charakteryzowni przez niego klienci podróżują w większych
grupach (liczba_osób: 0,65), składają więcej specjalnych próśb
(liczba_specjalnych_próśb: 0,81) oraz decydują się na noclegi o
wyższej cenie (średnia_cena_za_noc: 0,75). Może to wskazywać na
rodziny, grupy zorganizowane lub gości o podwyższonych oczekiwaniach co
do jakości usług.
Klaster 4.
Ostatni klaster reprezentuje najbardziej przeciętnych klientów, bez
wyraźnych oczekiań ani szczególnych preferencji dotyczących warunków
pobytu. Wszystkie analizowane zmienne przyjmują tu wartości bliskie
średniej lub nieco niższe, co oznacza brak wyraźnych cech
charakterystycznych. Klaster ten więc odzwierciedla zachowania
standardowych klientów, stanowiąc punkt odniesienia dla pozostałych
grup.
5.2.3. Wizualizacja wyników segmentacji
Wizualizacja wyników klasteryzacji z wykorzystaniem metody k-średnich dla 4 klastrów wskazuje na uzasadnioną segmentację obserwacji. Większość skupień tworzy widoczne grupy, odpowiadające poszczególnym klastrom, co sugeruje, że dane dają się racjonalnie segmentować. Chociaż niektóre klastry częściowo nakładają się na siebie, jest to spodziewany efekt, ponieważ wynika on z wielowymiarowego charakteru danych, gdzie część obserwacji posiada zbliżone wartości w różnych wymiarach. Widoczna jest jednak struktura klastrów, która potwierdza istnienie zróżnicowanych profili rezerwacji, a zastosowanie metody k-means można uznać za uzasadnione i efektywne w kontekście analizowanego zbioru.
Klaster 2 (zielony)
wykazuje największą rozpiętość i obejmuje obserwacje o bardziej
zróżnicowanych profilach, podczas gdy klaster 4
(fioletowy) tworzy stosunkowo zwartą grupę, co
sugeruje spójność zachowań w tej grupie. Klaster 1
(czerwony) i klaster 3
(niebieski) również tworzą rozpoznawalne
obszary, z lekkim nakładaniem się z innymi skupiskami, co może
odzwierciedlać pewne wspólne cechy między grupami klientów.
Wykres klasteryzacji zatem zachowuje wszystkie własności, które
wytypowano przy omawianiu centroidów poszczególlnych z grup.
Do wizualizacji klastrów wybrano zmienne średnia_cena_za_noc oraz czas_wyprzedzenia_rezerwacji, które najlepiej różnicują hotele pod względem standardu i zachowań rezerwacyjnych klientów. Średnia cena odzwierciedla profil cenowy hotelu, natomiast czas wyprzedzenia pokazuje, w jaki sposób klienci planują pobyt.
Na wykresie można zauważyć, że pokoje o niższej średniej cenie (do 100 zł/noc) rezerwują głównie goście należący do 4. klastra, czyli przeciętni klienci hotelu. Wśród nich znajdują się osoby reprezentujące zachowania klastra 1., co sugeruje, że goście, którzy planują pobyt wcześniej, zapewniają sobie wybór hotelu i pokoju w niższej cenie.
W segmencie średnich i wyższych cen punkty są bardziej rozproszone, co pokazuje większą różnorodność zachowań klientów, a dominują w nim klaster 2. i 3.. Wnioski wskazują, że wyższe ceny (od ok. 100 zł do ok. 250 zł) płacą osoby rezerwujące noc w większych grupach lub o większych oczekiwaniach co do usług (klaster 2.) lub infrastruktury, np. parkingu (klaster 3.).
6. Wnioski z analizy
Analiza głównych składowych (PCA) pozwoliła na istotne uproszczenie zbioru danych, redukując wymiar z wielu zmiennych ilościowych do trzech głównych składowych. Pierwsza składowa opisywała profil cenowy i preferencje klientów, druga planowanie rezerwacji, a trzecia elastyczność i długość pobytu. Dzięki temu możliwe stało się wyodrębnienie najważniejszych cech charakteryzujących rezerwacje hotelowe przy zachowaniu większości informacji o zmienności danych.
Przeprowadzone testy wstępne, w tym test Bartletta i kryterium KMO, potwierdziły zasadność stosowania PCA, a analiza procentu skumulowanej wariancji oraz wykres osypiska wskazały trzy najbardziej znaczące wymiary. Interpretacja ładunków czynnikowych pozwoliła zidentyfikować zmienne o największym wpływie na poszczególne składowe, co ułatwiło zrozumienie, jakie aspekty rezerwacji odgrywają kluczową rolę w zachowaniach klientów. Wykresy korelacji zmiennych ze składowymi głównymi dodatkowo pokazały powiązania między zmiennymi i ich znaczenie w opisie całego zbioru.
Wyniki analizy PCA podsumowuje poniższa wizualizacja.
Analiza skupień metodą k-średnich umożliwiła podział obserwacji na cztery grupy, różniące się profilami klientów i ich preferencjami. Każdy klaster miał charakterystyczne cechy - od osób planujących pobyt z dużym wyprzedzeniem (klaster 1.), przez gości wymagających konkretnych udogodnień (klaster 2. i 3.), po klientów podróżujących w większych grupach (klaster 3.) i standardowych gości (klaster 4.). Analiza centrów klastrów i wizualizacje wykazały, że grupy te są wyraźnie rozróżnialne i odzwierciedlają realne wzorce zachowań rezerwacyjnych.
Analizę skupień podsumowauje wizualizacja wykresu radarowego.
Połączenie wyników PCA z klasteryzacją pozwala zauważyć, że główne składowe dobrze odzwierciedlają czynniki, które różnicują poszczególne grupy klientów. Na przykład, pierwsza składowa, związana z profilem cenowym, koreluje z klastrami obejmującymi większe grupy i rezerwacje droższe, a druga składowa, opisująca planowanie rezerwacji, odpowiada grupom planującym pobyt z dużym wyprzedzeniem. Takie powiązanie pokazuje, że wybrane wymiary w PCA mają praktyczne znaczenie w segmentacji klientów.
Wnioski z obu analiz wskazują, że zbiór danych jest wielowymiarowy, ale jednocześnie uporządkowany, a obserwacje można efektywnie grupować według istotnych cech. Segmentacja klientów daje możliwość lepszego zrozumienia ich zachowań oraz planowania działań marketingowych lub ofert dopasowanych do potrzeb różnych grup. Zarówno PCA, jak i klasteryzacja, ułatwiają wyodrębnienie najważniejszych informacji i wspierają podejmowanie decyzji w oparciu o dane.
Podsumowując, zastosowanie metod wielowymiarowych pozwoliło w sposób spójny i przejrzysty zredukować złożoność danych, a jednocześnie wyodrębnić charakterystyczne profile klientów hotelu. Obie metody – PCA i k-means – uzupełniają się wzajemnie, dając pełniejszy obraz zróżnicowania rezerwacji i preferencji klientów. Wyniki analiz mogą służyć do celów badawczych, ale także do praktycznych decyzji dotyczących zarządzania ofertą hotelową i planowania usług dopasowanych do różnych segmentów gości.