Jak wykonać eksploracyjną analizę danych (EDA) w R (z przykładami)

Opublikowany: 2022-11-11

Dowiedz się wszystkiego, co musisz wiedzieć o eksploracyjnej analizie danych, krytycznym procesie używanym do odkrywania trendów i wzorców oraz podsumowywania zestawów danych za pomocą podsumowań statystycznych i reprezentacji graficznych.

Jak każdy projekt, projekt analizy danych to długi proces, który wymaga czasu, dobrej organizacji i skrupulatnego szacunku dla kilku kroków. Eksploracyjna analiza danych (EDA) jest jednym z najważniejszych etapów tego procesu.

Dlatego w tym artykule pokrótce przyjrzymy się, czym jest eksploracyjna analiza danych i jak można ją przeprowadzić za pomocą R!

Co to jest eksploracyjna analiza danych?

Eksploracyjna analiza danych bada i bada cechy zestawu danych przed przesłaniem go do aplikacji, czy to wyłącznie biznesowej, statystycznej czy uczącej się maszynowo.

Analiza danych rozpoznawczych

Takie podsumowanie charakteru informacji i ich głównych cech jest zwykle dokonywane za pomocą metod wizualnych, takich jak reprezentacje graficzne i tabele. Praktyka jest przeprowadzana z wyprzedzeniem właśnie w celu oceny potencjału tych danych, które w przyszłości zostaną poddane bardziej złożonemu leczeniu.

Dlatego EDA zezwala na:

  • Sformułuj hipotezy dotyczące wykorzystania tych informacji;
  • Przeglądaj ukryte szczegóły w strukturze danych;
  • Zidentyfikuj brakujące wartości, wartości odstające lub nieprawidłowe zachowania;
  • Odkryj trendy i odpowiednie zmienne jako całość;
  • Odrzuć nieistotne zmienne lub zmienne skorelowane z innymi;
  • Określ formalne modelowanie, które ma zostać użyte.

Jaka jest różnica między opisową a eksploracyjną analizą danych?

Istnieją dwa rodzaje analizy danych, analiza opisowa i eksploracyjna analiza danych, które idą ze sobą w parze, pomimo różnych celów.

Podczas gdy pierwsza koncentruje się na opisie zachowania zmiennych, na przykład średniej, mediany, trybu itp.

Analiza eksploracyjna ma na celu zidentyfikowanie relacji między zmiennymi, wyodrębnienie wstępnych spostrzeżeń i skierowanie modelowania do najczęstszych paradygmatów uczenia maszynowego: klasyfikacji, regresji i grupowania.

Wspólnie oba mogą zajmować się reprezentacją graficzną; jednak tylko analiza eksploracyjna ma na celu dostarczenie praktycznych spostrzeżeń, to znaczy spostrzeżeń, które prowokują do działania decydenta.

Wreszcie, podczas gdy eksploracyjna analiza danych ma na celu rozwiązywanie problemów i dostarczanie rozwiązań, które pokierują etapami modelowania, analiza opisowa, jak sugeruje jej nazwa, ma na celu jedynie stworzenie szczegółowego opisu danego zestawu danych.

Analiza opisowa Analiza danych rozpoznawczych
Analizuje zachowanie Analizuje zachowanie i relacje
Zawiera podsumowanie Prowadzi do specyfikacji i działań
Organizuje dane w tabelach i wykresach Organizuje dane w tabelach i wykresach
Nie ma znaczącej mocy wyjaśniającej Ma znaczną moc wyjaśniającą

Kilka praktycznych zastosowań EDA

#1. Marketing cyfrowy

Marketing cyfrowy ewoluował od procesu kreatywnego do procesu opartego na danych. Organizacje marketingowe wykorzystują eksploracyjną analizę danych do określania wyników kampanii lub działań oraz do kierowania inwestycjami konsumentów i decyzjami dotyczącymi kierowania.

Badania demograficzne, segmentacja klientów i inne techniki pozwalają marketerom wykorzystywać duże ilości danych dotyczących zakupów konsumenckich, ankiet i paneli w celu zrozumienia i komunikowania strategii marketingowej.

Analityka eksploracyjna sieci pozwala marketerom zbierać informacje na poziomie sesji o interakcjach w witrynie. Google Analytics to przykład bezpłatnego i popularnego narzędzia analitycznego, z którego korzystają w tym celu marketerzy.

Techniki eksploracyjne często stosowane w marketingu obejmują modelowanie marketingu mix, analizy cen i promocji, optymalizację sprzedaży oraz eksploracyjną analizę klientów, np. segmentację.

#2. Eksploracyjna analiza portfela

Powszechnym zastosowaniem eksploracyjnej analizy danych jest eksploracyjna analiza portfelowa. Bank lub agencja pożyczkowa ma zbiór rachunków o różnej wartości i ryzyku.

Konta mogą się różnić w zależności od statusu społecznego posiadacza (bogaty, klasa średnia, biedny itp.), położenia geograficznego, wartości netto i wielu innych czynników. Pożyczkodawca musi zrównoważyć zwrot z pożyczki z ryzykiem niewykonania zobowiązania dla każdej pożyczki. Powstaje zatem pytanie, jak wycenić portfel jako całość.

Pożyczka o najniższym ryzyku może być dla osób bardzo zamożnych, ale liczba osób zamożnych jest bardzo ograniczona. Z drugiej strony wielu biednych ludzi może pożyczać, ale naraża się to na większe ryzyko.

Rozwiązanie do eksploracyjnej analizy danych może łączyć analizę szeregów czasowych z wieloma innymi problemami, aby zdecydować, kiedy pożyczyć pieniądze tym różnym segmentom pożyczkobiorców lub oprocentować pożyczkę. Od członków segmentu portfela naliczane są odsetki na pokrycie strat wśród członków tego segmentu.

#3. Eksploracyjna analiza ryzyka

Modele predykcyjne w bankowości są opracowywane w celu zapewnienia pewności co do oceny ryzyka dla klientów indywidualnych. Oceny kredytowe mają na celu przewidzenie przestępczego zachowania danej osoby i są szeroko stosowane do oceny zdolności kredytowej każdego wnioskodawcy.

Ponadto w świecie nauki i branży ubezpieczeniowej przeprowadzana jest analiza ryzyka. Jest również szeroko stosowany w instytucjach finansowych, takich jak firmy obsługujące płatności online, do analizowania, czy transakcja jest oryginalna czy oszukańcza.

W tym celu wykorzystują historię transakcji klienta. Jest częściej używany przy zakupach kartą kredytową; w przypadku nagłego wzrostu wolumenu transakcji klienta, klient otrzymuje połączenie z potwierdzeniem, czy zainicjował transakcję. Pomaga również zmniejszyć straty spowodowane takimi okolicznościami.

Eksploracyjna analiza danych z R

Pierwszą rzeczą, którą musisz wykonać EDA z R, jest pobranie R base i R Studio (IDE), a następnie zainstalowanie i załadowanie następujących pakietów:

 #Installing Packages install.packages("dplyr") install.packages("ggplot2") install.packages("magrittr") install.packages("tsibble") install.packages("forecast") install.packages("skimr") #Loading Packages library(dplyr) library(ggplot2) library(magrittr) library(tsibble) library(forecast) library(skimr)

W tym samouczku użyjemy zestawu danych ekonomicznych, który jest wbudowany w R i dostarcza rocznych wskaźników ekonomicznych dotyczących gospodarki USA, a dla uproszczenia zmienimy jego nazwę na econ:

 econ <- ggplot2::economics
dataset_econ-1

Do wykonania analizy opisowej posłużymy się pakietem skimr , który w prosty i dobrze przedstawiony sposób oblicza te statystyki:

 #Descriptive Analysis skimr::skim(econ)
analiza opisowa_sk-1

Możesz również użyć funkcji summary do analizy opisowej:

desscriptiveanalysis_summaryfunction

Tutaj analiza opisowa pokazuje 547 wierszy i 6 kolumn w zestawie danych. Minimalna wartość to 1967-07-01, a maksymalna to 2015-04-01. Podobnie pokazuje również wartość średnią i odchylenie standardowe.

Teraz masz podstawowe pojęcie o tym, co znajduje się w zbiorze danych econ. uempmed histogram zmiennej, aby lepiej przyjrzeć się danym:

 #Histogram of Unemployment econ %>% ggplot2::ggplot() + ggplot2::aes(x = uempmed) + ggplot2::geom_histogram() + labs(x = "Unemployment", title = "Monthly Unemployment Rate in US between 1967 to 2015") 
historia

Rozkład histogramu pokazuje, że ma wydłużony ogon po prawej stronie; oznacza to, że prawdopodobnie istnieje kilka obserwacji tej zmiennej o bardziej „ekstremalnych” wartościach. Powstaje pytanie: w jakim okresie miały miejsce te wartości i jaki jest trend zmiennej?

Najbardziej bezpośrednim sposobem identyfikacji trendu zmiennej jest wykres liniowy. Poniżej generujemy wykres liniowy i dodajemy linię wygładzającą:

 #Line Graph of Unemployment econ %>% ggplot2::autoplot(uempmed) + ggplot2::geom_smooth() 
trendy

Korzystając z tego wykresu możemy stwierdzić, że w ostatnim okresie, w ostatnich obserwacjach z 2010 roku, istnieje tendencja do wzrostu bezrobocia, przewyższająca historię obserwowaną w poprzednich dekadach.

Innym ważnym punktem, zwłaszcza w kontekstach modelowania ekonometrycznego, jest stacjonarność serii; czyli czy średnia i wariancja są stałe w czasie?

Gdy te założenia nie są prawdziwe dla zmiennej, mówimy, że szereg ma pierwiastek jednostkowy (niestacjonarny), aby szoki, na które cierpi zmienna, generowały trwały efekt.

Wydaje się, że tak było w przypadku omawianej zmiennej – czasu pozostawania bez pracy. Widzieliśmy, że wahania zmiennej znacznie się zmieniły, co ma silne implikacje związane z teoriami ekonomicznymi dotyczącymi cykli. Ale odchodząc od teorii, jak praktycznie sprawdzić, czy zmienna jest stacjonarna?

Pakiet prognozy posiada doskonałą funkcję pozwalającą na zastosowanie testów, takich jak ADF, KPSS i innych, które już zwracają liczbę różnic niezbędną do stacjonarności szeregu:

 #Using ADF test for checking stationarity forecast::ndiffs( x = econ$uempmed, test = "adf")
adftest

Tutaj wartość p większa niż 0,05 pokazuje, że dane są niestacjonarne.

Kolejną ważną kwestią w szeregach czasowych jest identyfikacja możliwych korelacji (zależność liniowa) między opóźnionymi wartościami szeregu. W jego identyfikacji pomagają korelogramy ACF i PACF.

Ponieważ szereg nie ma sezonowości, ale ma pewien trend, początkowe autokorelacje są zwykle duże i dodatnie, ponieważ obserwacje bliskie w czasie mają również zbliżoną wartość.

W związku z tym funkcja autokorelacji (ACF) trendowanych szeregów czasowych ma zwykle wartości dodatnie, które powoli maleją wraz ze wzrostem opóźnień.

 #Residuals of Unemployment checkresiduals(econ$uempmed) pacf(econ$uempmed)
pozostałości
Pacf

Wniosek

Kiedy dostajemy w swoje ręce dane, które są mniej lub bardziej czyste, to znaczy już oczyszczone, od razu pojawia się pokusa, aby zagłębić się w etap budowy modelu, aby wyciągnąć pierwsze wyniki. Musisz oprzeć się tej pokusie i zacząć przeprowadzać eksploracyjną analizę danych, która jest prosta, a jednocześnie pomaga nam w wyciągnięciu dogłębnego wglądu w dane.

Możesz również zapoznać się z najlepszymi zasobami, aby poznać statystyki dotyczące nauki o danych.