1 Wprowadzenie

Dynamicznie rozwijający się świat handlu sprawia, że co raz ciężej dotrzymać kroku zmieniającym się trendom. Mając to na uwadze należy je, w sposób ciągły, je monitorować i analizować.

Cel badania polega na zrozumieniu i analizie trendów zakupowych klientów na podstawie dostępnych danych transakcyjnych zawierających cechy demograficzne, produkty, ich ceny, sezonowość oraz zachowania zakupowe. Badanie ma na celu identyfikację kluczowych czynników wpływających na wartość zakupów, wykrycie sezonowych wzorców, zrozumienie profilów klientów (np. według płci, wieku, subskrypcji) oraz analizę preferowanych metod płatności i częstotliwości zakupów. Dzięki temu możliwa jest predykcja zachowań konsumenckich, lepsze dostosowanie strategii marketingowej i oferty produktowej, a także rekomendacje dotyczące segmentacji klientów i kanałów sprzedaży, co przekłada się na bardziej efektywne działania biznesowe i zwiększenie zyskowności.

2 Instalowanie bibliotek

W celu sprawnej i efektywnej analizy danych, należy rozpocząć od zainstalowania wymaganych bibliotek, tak aby dalsza część raportu mogła być przejrzysta, bez konieczności dodawania dodatkowych pakietów i bibliotek (mogłoby to zaburzyć strukturę raportu).

3 Data Cleansing oraz Data Wrangling

Pierwszym etapem, pozwalającym analizę wyżej wymienionych czynników jest tak zwany Data Cleansing. Rozpoczynając od podejrzenia danych, sprawdzenia ilości danych brakujących, jaki jest ich udział procentowy oraz czy braki są ze sobą skorelowane.

3.1 Podejrzenie danych

ID Age Gender Item Category Amount_USD Location Size Color Season Rating Subscription Shipping Discount Promo Previous Payment Frequency
1 55 Male Blouse Clothing 53 Kentucky L Gray Winter 3.1 Yes Express Yes Yes 14 Venmo Fortnightly
2 19 Male Sweater Clothing 64 Maine L Maroon NA 3.1 Yes Express Yes Yes 2 Cash Fortnightly
3 NA Male Jeans Clothing 73 Massachusetts S Maroon Spring 3.1 Yes Free Shipping Yes Yes 23 Credit Card Weekly
4 21 Male Sandals Footwear NA Rhode Island M Maroon Spring 3.5 Yes Next Day Air Yes Yes 49 PayPal Weekly
5 45 Male Blouse Clothing 49 Oregon M Turquoise Spring 2.7 Yes Free Shipping Yes Yes 31 PayPal Annually
6 46 Male Sneakers Footwear 20 Wyoming M White NA 2.9 Yes Standard Yes Yes 14 Venmo Weekly

3.2 Sprawdzenie ilości brakujących danych

Podsumowanie brakujących danych
Opis statystyki Wartość
Liczba kompletnych danych 69100
Liczba braków 1100
Proporcja 0.0157
Procent 1.57%

Widzimy, że przed uzupełnieniem brakuje aż 1100 danych. Oprócz brakujących danych widzimy, że mamy 69100 danych w komplecie. Obliczmy jaka jest proporcja oraz procent brakujących danych. Zaledwie 1,5% całości danych to dane brakujące. Sprawdźmy więc gdzie najbardziej ich brakuje.

3.3 Tabela podsumowania NA

variable n_miss pct_miss
Season 550 14.1
Purchase.Amount..USD. 450 11.5
Age 100 2.56
Customer.ID 0 0
Gender 0 0
Item.Purchased 0 0
Category 0 0
Location 0 0
Size 0 0
Color 0 0
Review.Rating 0 0
Subscription.Status 0 0
Shipping.Type 0 0
Discount.Applied 0 0
Promo.Code.Used 0 0
Previous.Purchases 0 0
Payment.Method 0 0
Frequency.of.Purchases 0 0

Dzięki powyższej tabeli wiemy, że kolumny Season, Purchase Amount oraz Age zawierają puste miejsca.

3.4 Tabela NA według przypadku

n_miss_in_case n_cases pct_cases
0 2888 74.05128
1 924 23.69231
2 88 2.25641

Widzimy już w jakich wierszach i kolumnach brakuje nam danych, zobrazujmy to na wykresach.

3.5 Zobrazowanie braków danych

3.5.1 Matrixplot braków danych

3.5.2 Obrazowanie ilości brakujących danych na wykresie słupkowym.

3.6 Heatmapy braków

Poniżej sprawdzimy związek między brakiem danych a chociażby metodą płatności czy kategorią. Pozwoli nam to sprawdzić czy braki są losowe czy zależą od konkretnej cechy.

3.6.1 Heatmapa braków według metody płatności

Powyżej zobrazowane zostały Zauważamy, że najwięcej braków występuje w kolumnie Season, szczególnie przy płatności PayPal. Purchase Amount też wykazuje braki w niektórych metodach. Najmniej natomiast w kolumnie Age. Porównajmy to z heatmapa według kategorii odzieży

3.6.2 Heatmapa braków według kategorii

Możemy zauważyć, że podobnie jak poprzednio najwięcej danych brakuje przy zmiennej Season, szczególnie w kategorii Footwear.

Sprawdźmy zatem czy braki są ze sobą skorelowane.

3.7 Korelacja braków danych

Brakujące dane nie są ze sobą skorelowane dla trzech kategorii. Korelacja występuje między dwoma z trzech kategorii. W 61 przypadków brakuje danych w kolumnie zarówno Purchase Amount jak i Season, 19 razy brakuje danych dla Age oraz Season, 8 razy dla Age i Purchase Amount.

Sprawdźmy braki zmiennej Age względem Purchase Amount aby wykryć losowośc braków.

3.8 Braki Age względem Purchase.Amount..USD.

Widzimy, że braki skupione są przy niższych kwotach zakupu, natomiast nie ma jednoznacznego wzorca w przypadku wieku.

3.9 Pikselowa mapa braków

Dzięki pikselowej mapie braków jesteśmy w stanie zobrazować rozkład i różnorodnoścdanych. Zauważamy, że zmienne kategoryczne mają różne liczby, zmienne liczbowe mają płynny gradient np. Age, występują bloki braków danych.

Przeprowadźmy zatem test Little’a aby ostatecznie potwierdzić, czy braki są losowe.

3.9.1 Test Little’a

statistic df p.value missing.patterns
9.068443 9 0.4309804 7

Wynika z niego iż p value jest większe od poziomu istotności (0.43>0.05). Zatem nie ma podstaw do odrzucenia H0: braki są kompletnie losowe.

Dzięki temu oraz dzięki testowi Little’a (MCAR test) wiemy iż dane są całkowicie losowe (missing completly at random). Oznacza to, że dopuszczalne są metody prostej imputacji (średnią/medianą) czym zajmiemy się w dalszej części. Przedtem jednak, warto sprawdzić spójność danych.

3.10 Imputacja danych

Wiemy już, że braki są losowe. Zajmiemy się teraz imputacją danych. Po uprzednim utworzeniu backupu kolumn zdecydowaliśmy się uzupełnić kolumny Age, Purchase.Amount..USD i Season. Pierwszą z nich uzupełniliśmy wykorzystując medianę, drugą uzupełniliśmy medianą według kategorii Season. Trzecią zaś uzupełniliśmy za pomoca funkcji hotdeck.

Po sprawdzeniu widzimy, że liczba braków wynosi obecnie 0. Możemy więc zająć się dalszymi krokami.

4 Wizualizacja danych

Po ukończeniu kroku numer 3, zajmijmy się przedstawieniem wizualnym uzupełnionych danych. Wizualizacja obejmuje przedstawienie wykresów i zobrazowanie jak te dane przedstawiają się chociażby według poszczególnych kategorii. Pierwszym z nich jest zobrazowanie liczby zakupów w każdej kategorii.

4.1 Wykres liczby zakupów w każdej kategorii

Jak widać na wykresie, najwięcej zakupów wiąże się z kategoriami “Clothing” oraz “Accessories”, najmniej “Footwear” oraz “Outerwear”.

Kolejno widzimy boxplot obrazujący rozkład kwot zakupu w poszczególnych kategoriach.

4.2 Rozkład cen w róznych kategoriach

Jak widać rozkład jest podobny w każdej z kategorii, nie widać szczególnych różnic w zakresach wartości. Sugeruje to, że klienci wydają podobną kwotę niezależnie od kategorii.

Sprawdźmy więc teraz czy poszczególne sezony wpływają na kwoty zakupu. Posłużymy się do tego wykresem słupkowym.

4.3 Średni wydatek w zależności od sezonu

Na wykresie można zauważyć, iż kwoty zakupu nieznacznie się różnią w zależności od pory roku.

Jako że, za zakupy należy płacić, warto sprawdzić jakimi metodami płatności posługują się klienci.

4.4 Wykres preferencji metod płatności

Najwięcej transakcji zostało dokonanych przy użyciu PayPal, najmniej natomiast klienci korzystają z przelewu bankowego. Świadczy to o wygodzie wykorzystywania platformy płatniczej PayPal w porównaniu chociażby do przelewów, które zazwyczaj zajmują dłużej.

Wcześniej sprawdziliśmy już czy sezonowość wpływa na kwotę zakupu, sprawdźmy też czy kwoty zachowują się inaczej, kiedy dodamy do tego podział na płeć. Pozwoli nam to sprawdzić, kto wydaje więcej w danym okresie, kobiety czy mężczyźni.

4.5 Kwoty wg sezonu (z podziałem na płeć)

Boxplot obrazuje nam istotność sezonowości w wydanych kwotach w przypadku kobiet. Możemy zauważyć, że jesienią i zimą kobiety wydają więcej niż w cieplejszych okresach roku. W przypadku mężczyzn sezonowość ta nie występuje. Możemy zatem przyjąć, że jesień i zima to kluczowe okresy sprzedażowe dla segmentu kobiecego.

Kolejno analizujemy hipotezę o lojalności klientów, sprawdzamy czy poprzednie transakcje mają wpływ na kwotę zakupów.

4.6 Previous Purchases vs Purchase Amount

Zauważalna jest lekka zależność rosnącą, im więcej poprzednich zakupów, tym wyższa może być wartość kolejnego. Klienci ze statusem subskrypcji skupieni są bardziej wokół wyższych kwot, natomiast u nie subskrybentów zauważalny jest większy rozrzut. Możemy zatem przyjąć, że subskrypcja jest czynnikiem stabilizującym oraz zwiększającym kwotę zakupów.

Istotnym czynnikiem jest zbadanie współliniowości między kategoriami. Do identyfikacji tej tezy użyjemy macierzy korelacji liczbowych.

4.7 Macierz korelacji liczbowych - identyfikacja współliniowości

Zauważamy, że większość korelacji między zmiennymi jest bardzo słaba (bliska zeru). Niektóre zależności są statystycznie istotne, ale praktycznie marginalne — np. korelacja 0.045** pomiędzy zmiennymi Age i PurchaseAmount. Świadczy to o większej liczbie zakupów wraz ze wzrostem wieku. Może być to dla nas sygnał, któremu warto się przyjrzeć, ale nie fundament strategii. Brak silnych zależności jak chociażby między zmiennymi chase.Amount i Previous.Purchase oznacza, że wartość zakupu jest niezależna od liczby wcześniejszych transakcji. Segmentacja klientów wg wieku i historii zakupów może mieć sens, ale wymaga dalszych analiz — obecne korelacje są zbyt słabe, by podejmować decyzje strategiczne. Oceny produktów nie są silnie związane z żadną zmienną — warto skupić się na jakości i doświadczeniu klienta niezależnie od jego profilu.

Jako że macierz korelacji nie wskazała nam jednoznacznie kierunku strategii sprzedażowych, sprawdzamy czy kierunek ten nada nam wykres pt. “udział rabatów w wydanej kwocie”.

4.8 Wydana kwota a rabaty

Przy niższych kwotach (20–40 USD) rabaty są stosowane częściej — turkusowa część słupków jest większa. Wraz ze wzrostem wydatków, udział transakcji bez rabatu rośnie — klienci wydający więcej rzadziej korzystają z rabatów. Przy najwyższych kwotach (80–100 USD) rabaty są stosunkowo rzadkie — dominują pełne ceny. Dzięki temu możemy stwierdzić, że rabatowanie działa najlepiej przy niższych kwotach, daje nam to możliwość zachęcenia klientów do szybkich i impulsywnych zakupów. Klienci wydający więcej najczęściej nie korzystają z rabatów, co może świadzyć o ich mniejszej podatności na promocje. W tej sytuacji warto rozważyć segmentację rabatową konsumentów lub testowanie rabatów progowych np. “rabat -20% przy zakupach za wyższą kwotę”.

5 Pytania badawcze

Po sprawdzeniu, uzupełnieniu i wizualizacji danych nastała pora na zadanie pytań badawczych, czyli podstawy do kolejnych kroków jak analiza opisowa oraz wnioskowanie statystyczne. W trakcie tego ostatniego sprawdzimy istotność naszych pytań.

5.1 Czy średnia kwota zakupu różni się istotnie między kategoriami produktów (Category)?

5.1.1 Boxplot kwoty wg kategorii

Na podstawie boxplotów i tabeli widzimy, że średnia kwota zakupu wg kategorii nieznacznie się różni, największa różnica wynosi zaledwie 2.5 dolara.

5.2 Czy sezon zakupowy wpływa na wysokość wydatków klientów?

5.2.1 Boxplot wydatki wg kategorii

W tym przypadku także nie są widoczne znaczne różnice. Konsumenci średnio najwięcej wydają na jesieni. Jednakże średnia kwota jest nieznacznie wyższa od kwot w pozostałych sezonach.

5.3 Czy klienci posiadający subskrypcję wydają więcej na pojedyncze zakupy niż pozostali klienci?

Aby to zobrazować użyjemy wykresu słupkowego wraz z przedziałami ufności.

5.3.1 Wykres słupkowy z przedziałami ufności

Wykres obrazuje, że subskrypcja nieznacznie wpływa na wartość pojedynczych zakupów i co ciekawe na niekorzyść subskrybentów. Widzimy, że pomarańczowy słupek jest wyższy, więc średnia kwota jest nieznacznie, ale wyższa.

5.4 Czy wybór kategorii produktu jest zależny od płci klienta?

Do zobrazowania tego pytania użyjemy wykresu kołowego.

Co ciekawe, po raz kolejny różnice są znikome. Bądź w ogóle nie występują. Zauważamy, że części wykresu dla kobiet i dla mężczyzn są praktycznie tej samej wielkości.

6 Analiza opisowa

Analizę opisową rozpoczniemy od sprawdzenia czy wiersze łamią założone reguły. Pozwoli nam to sprawdzić czy nasze dane są odpowiednio przygotowane, aby sporządzić statystyki opisowe.

6.1 Reguły

Zmienna Age musi znajdować się w przedziale 18-100. Zmienna Season musi obejmować cztery pory roku Fall, Spring, Summer, Winter. Zmienna Gender musi przybierać tylko wartości Male bądź Female. Zmienna Category może przyjmować tylko wartości Accessories, Clothing, Footwear, Outerwear. Zmienna Rating może przyjmować wartości z przedziału <1;5>.

Wszystkie reguły ujęliśmy w jednym kodzie, na podstawie którego nastepnie utworzyliśmy tabelę.

viol_age viol_season viol_gender viol_category viol_rating
0 0 0 0 0

W powyższej tabeli możemy zauważyć, że nasze dane są odpowiednie i możemy przeprowadzić analizę opisową.

6.2 Statystyki opisowe

Aby móc stworzyć statystyki opisowe potrzebujemy pakietów psych oraz knitr.

Tabela 1 pokazuje nam podstawowe statystyki dla zmiennej Purchase Amount w zależności od sezonu.

Tabela 1. Zakupy – statystyki wg sezonów
Season Min Max Q1 Mediana Q3 Srednia SD IQR
Fall 20 100 42 60 80.0 60.89 22.56 38.0
Spring 20 100 40 60 76.0 58.63 22.40 36.0
Summer 20 100 40 59 76.5 58.82 22.09 36.5
Winter 20 100 43 60 77.0 59.91 21.73 34.0

Zauważalne są przede wszystkim: takie same kwoty minimalne i maksymalne, zbliżony rozkład kwantyli dla tej zmiennej, tak samo jak odchylenia standardowego, średniej, mediany i rozkładu międzykwantylowego.

Tabela 2. Zakupy – statystyki wg płci
Gender Min Max Q1 Mediana Q3 Srednia SD IQR
Female 20 100 43 60 78 60.10 21.98 35
Male 20 100 40 60 77 59.32 22.32 37

Sytuacja ma się podobnie, kiedy przeanalizujemy statystyki opisowe dla tej samej zmiennej według płci.

Sprawdzimy teraz statystyki opisowe dla pytania czy subskrypcja wpływa na kwotę zakupu.

Tabela 3. Kwota zakupu a status subskrypcji
Subscription.Status Min Max Q1 Mediana Q3 Srednia SD IQR
No 20 100 41 60 78 59.70 22.31 37
Yes 20 100 41 60 77 59.22 21.94 36

Ponownie zauważamy, że statystyki nie mają dużego rozrzutu. Kwoty minimlne i maksymalne są takie same, kwantyl 1 także. Różnica w średniej kwocie jest niewielka tak jak odchylenie czy rozkład międzykwantylowy.

Jako że, nasze 4 pytanie badawcze obejmuje 2 zmienne kategoryczne, nie jesteśmy w stanie przygotować dla niego statystyk opisowych. Zamiast tego przygotowaliśmy tabelę z podaną liczbą klientów wybierających daną kategorię.

Tabela 4. Kategoria zakupu według płci
Gender Category Liczba Procent_w_ramach_plci
Female Accessories 392 31.4
Female Clothing 556 44.6
Female Footwear 199 15.9
Female Outerwear 101 8.1
Male Accessories 848 32.0
Male Clothing 1181 44.5
Male Footwear 400 15.1
Male Outerwear 223 8.4

Zauważalny jest niemal identyczny rozkład procentowy poszczególnych kategorii odzieżowych w całości zakupów (tak samo jak było to widoczne ówcześnie na wykresie).Widzimy, że procenty poszczególnych kategorii rozkładają siętak samo dla kobiet i mężczyzn, jednakże ilość transakcji w poszcególnych kategoriach się różni.

7 Wnioskowanie

Kolejnym z elementów naszego projektujest wnioskowanie statystyczne. W jego trakcie przetestujemy hipotezy dotyczące zależności między zmiennymi na przykładzie wcześniej postawionych pytań badawczych. Pozwoli to nam ocenić czy obserwowane różnice w próbie mogą być uogólnione na całą populację klientów.

7.1 Czy średnia kwota zakupu różni się istotnie pomiędzy kategoriami produktów?

Stawiamy więc dwie hipotezy:

H0 (hipoteza zerowa): Średnia kwota zakupu jest taka sama we wszystkich kategoriach.

H1 (alternatywna): Co najmniej jedna kategoria różni się średnią kwotą zakupu.

Df Sum Sq Mean Sq F value Pr(>F)
Category 3 1696.315 565.4382 1.146237 0.3289411
Residuals 3896 1921894.950 493.2995 NA NA

Widzimy, że wartość p-value = 0.329>0.05, więc nie ma podstaw do odrzucenia hipotezy zerowej. Stwierdzamy zatem, że średnia kwota zakupu jest taka sama dla wszystkich kategorii.

7.2 Czy sezon zakupowy wpływa na wysokość wydatków klientów?

Ponownie stawiamy dwie hipotezy:

H0: Średnia kwota zakupu jest taka sama we wszystkich sezonach.

H1: Co najmniej jeden sezon różni się średnią kwotą zakupu.

Df Sum Sq Mean Sq F value Pr(>F)
Season 3 3238.924 1079.6414 2.19037 0.0870796
Residuals 3896 1920352.340 492.9036 NA NA

Wartość p-value wynosi w tym przypadku 0.0871 i jest wyższa od poziomu istotności na poziomie 0,05. W tym przypadku odrzucamy hipotezę zerową, ponieważ niema wystarczjących dowodów na to, aby stwierdzić, że sezon wpływa na wysokość wydatków. Jednakże gdy przyjmiemy poziom istotności na poziomie 0.1 wartość p-value jest mniejsza.Sugeruje nam to, że sezon może wpłynąć na wysokość wydatków. Podsumowując, różnice w wydatkach występują, nie są jednak na tyle duże aby uznać je za pewne. Sezon ma potencjalny, ale słaby wpływ na wysokość wydatków.

7.3 Czy klienci posiadający subskrypcję wydają więcej na pojedyncze zakupy niż pozostali klienci?

Do sprawdzenia tej hipotezy posłużymy się testem t-studenta.

H0: Średnia kwota zakupu klientów z subskrypcją = średnia kwota zakupu klientów bez subskrypcji.

H1: Średnie różnią się

Wyniki testu t-Welcha dla subskrypcji
estimate estimate1 estimate2 statistic p.value parameter conf.low conf.high method alternative
0.4780991 59.69652 59.21842 0.6013224 0.5476967 1907.301 -1.081217 2.037416 Welch Two Sample t-test two.sided

Nie stwierdzono istotnej statystycznie różnicy w średniej kwocie zakupu pomiędzy klientami z subskrypcją i bez subskrypcji.

7.4 Czy wybór kategorii produktu jest zależny od płci klienta?

Aby to stwierdzić użyjemy testu chi-kwadrat.

H0: Płeć i kategoria produktu są niezależne (brak związku).

H1: Istnieje zależność między płcią a kategorią produktu.

Wynik testu niezależności chi-kwadrat (Płeć vs Kategoria)
statistic p.value parameter method
0.5984208 0.8967938 3 Pearson’s Chi-squared test

Test chi‑kwadrat nie wykazał istotnej zależności między płcią a wyborem kategorii produktu (p‑value = 0.8968). Oznacza to, że w analizowanej próbie nie zaobserwowaliśmy statystycznie istotnych różnic w preferencjach kategorii między kobietami a mężczyznami.

8 Podsumowanie

Reasumując powyższą analizę jesteśmy w stanie przewidzieć zachowania klientów, a co za tym idzie dostosować naszą strategię marketingową do potrzeb konsumentów. Dzięki wizualizacji danych wiemy, że największą uwagę powinniśmy poświęcać odzieży (“clothing”) gdyż jest to najczęściej wybierana kategoria zakupowa. Niemniej jednak, wciąż warto pamiętać o pozostałych kategoriach, gdyż średnie kwoty zakupu pomiędzy kategoriami różnią się jedynie nieznacznie. Co więcej wiemy, iż sezon nie wpływa na całokształt wydatków zakupowych, jednocześnie wiemy, że kobiety wydają więcej w “zimnym” okresie roku kobiety wydają więcej. Możemy dzięki temu przygotowywać kampanie skierowane właśnie na tę płeć. Należy jednak pamiętać, że sezon zakupowy wpływa na wysokość wydatków jedynie na mnie rygorystycznym poziomie istotności. Kolejno wiemy już, że płeć konsumenta nie wpływa na kategorie zakupów jakie wybiera.

Biorąc pod uwagę wszystkie czynniki, możemy stwierdzić, że aktualna strategia marketingowa jest odpowiednia. Średnia wartość wydatków klientów, a co za tym idzie- także naszych przychodów- jest podobna. Możemy jedynie dodać kampanie marketingową skierowaną do kobiet w jesienno-zimowym okresie. Pozostała część analizy popiera naszą aktualną strategię, dlatego należy utrzymać ją na tym samym poziomie.