Hvordan gjøre utforskende dataanalyse (EDA) i R (med eksempler)

Lær alt du trenger å vite om utforskende dataanalyse, en kritisk prosess som brukes til å oppdage trender og mønstre og oppsummere datasett ved hjelp av statistiske sammendrag og grafiske representasjoner.

Som ethvert prosjekt er et datavitenskapelig prosjekt en lang prosess som krever tid, god organisering og nøye respekt for flere trinn. Utforskende dataanalyse (EDA) er et av de viktigste stegene i denne prosessen.

Derfor vil vi i denne artikkelen kort se på hva utforskende dataanalyse er og hvordan du kan utføre den med R!

Hva er utforskende dataanalyse?

Utforskende dataanalyse undersøker og studerer egenskapene til et datasett før det sendes til en søknad, enten det er utelukkende forretningsmessig, statistisk eller maskinlæring.

Denne oppsummeringen av informasjonens natur og dens viktigste særtrekk gjøres vanligvis ved hjelp av visuelle metoder, for eksempel grafiske representasjoner og tabeller. Praksisen utføres på forhånd nettopp for å vurdere potensialet i disse dataene, som vil få en mer kompleks behandling i fremtiden.

EDA tillater derfor:

  • Formuler hypoteser for bruken av denne informasjonen;
  • Utforsk skjulte detaljer i datastrukturen;
  • Identifiser manglende verdier, uteliggere eller unormal atferd;
  • Oppdag trender og relevante variabler som helhet;
  • Kast irrelevante variabler eller variabler korrelert med andre;
  • Bestem den formelle modelleringen som skal brukes.

Hva er forskjellen mellom beskrivende og utforskende dataanalyse?

Det er to typer dataanalyse, beskrivende analyse og utforskende dataanalyse, som går hånd i hånd, til tross for at de har forskjellige mål.

Mens den første fokuserer på å beskrive oppførselen til variabler, for eksempel gjennomsnitt, median, modus, etc.

Den utforskende analysen tar sikte på å identifisere sammenhenger mellom variabler, trekke ut foreløpig innsikt og rette modelleringen til de vanligste maskinlæringsparadigmene: klassifisering, regresjon og klynging.

Til felles kan begge omhandle grafisk representasjon; Imidlertid er det kun eksplorativ analyse som søker å bringe handlingskraftig innsikt, det vil si innsikt som provoserer til handling fra beslutningstakeren.

  Hvordan velge en eksakt skjermoppløsning på Mac-en

Til slutt, mens utforskende dataanalyse søker å løse problemer og bringe løsninger som vil lede modelleringstrinnene, har deskriptiv analyse, som navnet tilsier, kun som mål å produsere en detaljert beskrivelse av det aktuelle datasettet.

Beskrivende analyseUtforskende dataanalyse Analyserer atferd Analyserer atferd og forholdGir et sammendrag Fører til spesifikasjoner og handlinger Organiserer data i tabeller og grafer Organiserer data i tabeller og graferHar ikke betydelig forklaringskraftHar betydelig forklaringskraft

Noen praktiske brukstilfeller av EDA

#1. Digital markedsføring

Digital markedsføring har utviklet seg fra en kreativ prosess til en datadrevet prosess. Markedsføringsorganisasjoner bruker utforskende dataanalyse for å bestemme resultatene av kampanjer eller innsats og for å veilede forbrukernes investerings- og målrettingsbeslutninger.

Demografiske studier, kundesegmentering og andre teknikker lar markedsførere bruke store mengder forbrukerkjøp, undersøkelser og paneldata for å forstå og kommunisere strategimarkedsføring.

Nettforskende analyser lar markedsførere samle informasjon på øktnivå om interaksjoner på et nettsted. Google Analytics er et eksempel på et gratis og populært analyseverktøy som markedsførere bruker til dette formålet.

Utforskende teknikker som ofte brukes i markedsføring inkluderer modellering av markedsføringsmiks, pris- og markedsføringsanalyser, salgsoptimalisering og utforskende kundeanalyse, for eksempel segmentering.

#2. Utforskende porteføljeanalyse

En vanlig anvendelse av utforskende dataanalyse er utforskende porteføljeanalyse. En bank eller et utlånsbyrå har en samling kontoer av varierende verdi og risiko.

Kontoer kan variere avhengig av innehaverens sosiale status (rik, middelklasse, fattig osv.), geografisk plassering, nettoformue og mange andre faktorer. Långiver må balansere avkastningen på lånet med risikoen for mislighold for hvert lån. Spørsmålet blir da hvordan man verdsetter porteføljen som helhet.

Lånet med lavest risiko kan være for svært velstående mennesker, men det er et svært begrenset antall velstående personer. På den annen side kan mange fattige låne ut, men med større risiko.

Den utforskende dataanalyseløsningen kan kombinere tidsserieanalyse med mange andre problemer for å bestemme når man skal låne ut penger til disse ulike segmentene av låntakere eller utlånsrenten. Renter belastes medlemmer av et porteføljesegment for å dekke tap blant medlemmene i det segmentet.

  Slik deaktiverer du suspendert PlayStation-konto

#3. Utforskende risikoanalyse

Prediktive modeller innen bank er under utvikling for å gi sikkerhet om risikoscore for enkeltkunder. Kredittscore er utformet for å forutsi en persons kriminelle oppførsel og brukes mye for å vurdere hver enkelt søkers kredittverdighet.

I tillegg gjennomføres risikoanalyser i den vitenskapelige verden og forsikringsbransjen. Det er også mye brukt i finansinstitusjoner som nettbaserte betalingsgateway-selskaper for å analysere om en transaksjon er ekte eller uredelig.

Til dette formål bruker de kundens transaksjonshistorikk. Det er mer vanlig i kredittkortkjøp; når det er en plutselig økning i klienttransaksjonsvolumet, mottar klienten et bekreftelsesanrop hvis han startet transaksjonen. Det bidrar også til å redusere tap på grunn av slike omstendigheter.

Utforskende dataanalyse med R

Det første du trenger for å utføre EDA med R er å laste ned R base og R Studio (IDE), etterfulgt av å installere og laste inn følgende pakker:

#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)

For denne opplæringen vil vi bruke et økonomisk datasett som kommer innebygd med R og gir årlige økonomiske indikatordata for den amerikanske økonomien, og endre navnet til econ for enkelhets skyld:

econ <- ggplot2::economics

For å utføre den beskrivende analysen vil vi bruke skimr-pakken, som beregner denne statistikken på en enkel og godt presentert måte:

#Descriptive Analysis
skimr::skim(econ)

Du kan også bruke oppsummeringsfunksjonen for beskrivende analyse:

Her viser den beskrivende analysen 547 rader og 6 kolonner i datasettet. Minimumsverdien er for 1967-07-01, og maksimumsverdien er for 2015-04-01. På samme måte viser den også middelverdien og standardavviket.

Nå har du en grunnleggende idé om hva som er inne i econ-datasettet. La oss plotte et histogram av variabelen uempmed for å se bedre på dataene:

#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")

Distribusjonen av histogrammet viser at det har en langstrakt hale til høyre; det vil si at det er muligens noen få observasjoner av denne variabelen med mer «ekstreme» verdier. Spørsmålet oppstår: i hvilken periode fant disse verdiene sted, og hva er trenden til variabelen?

Den mest direkte måten å identifisere trenden til en variabel på er gjennom en linjegraf. Nedenfor genererer vi en linjegraf og legger til en utjevningslinje:

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

Ved å bruke denne grafen kan vi identifisere at i den siste perioden, i de siste observasjonene fra 2010, er det en tendens til en økning i arbeidsledigheten, som overgår historien observert i tidligere tiår.

  Slik fjerner du noen fra en tekstmeldingsgruppe på iPhone

Et annet viktig poeng, spesielt i økonometriske modelleringssammenhenger, er seriens stasjonaritet; dvs. er gjennomsnittet og variansen konstant over tid?

Når disse forutsetningene ikke er sanne i en variabel, sier vi at serien har en enhetsrot (ikke-stasjonær) slik at sjokkene som variabelen lider av genererer en permanent effekt.

Det ser ut til å ha vært tilfellet for den aktuelle variabelen, varigheten av arbeidsledigheten. Vi har sett at svingningene i variabelen har endret seg betraktelig, noe som har sterke implikasjoner knyttet til økonomiske teorier som omhandler sykluser. Men, med avgang fra teorien, hvordan kontrollerer vi praktisk om variabelen er stasjonær?

Prognosepakken har en utmerket funksjon som gjør det mulig å bruke tester, som ADF, KPSS og andre, som allerede returnerer antallet forskjeller som er nødvendige for at serien skal være stasjonær:

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

Her viser p-verdien større enn 0,05 at dataene er ikke-stasjonære.

En annen viktig sak i tidsserier er identifiseringen av mulige korrelasjoner (det lineære forholdet) mellom de forsinkete verdiene til serien. ACF- og PACF-korrelogrammene hjelper til med å identifisere den.

Siden serien ikke har sesongvariasjoner, men har en viss trend, har de initiale autokorrelasjonene en tendens til å være store og positive fordi observasjonene nært i tid også er nærme i verdi.

Dermed har autokorrelasjonsfunksjonen (ACF) til en trendet tidsserie en tendens til å ha positive verdier som sakte avtar ettersom etterslep øker.

#Residuals of Unemployment 
checkresiduals(econ$uempmed) 
pacf(econ$uempmed)

Konklusjon

Når vi får tak i data som er mer eller mindre rene, det vil si allerede renset, blir vi umiddelbart fristet til å dykke ned i modellbyggstadiet for å tegne de første resultatene. Du må motstå denne fristelsen og begynne å gjøre utforskende dataanalyse, som er enkel, men likevel hjelper oss å trekke kraftig innsikt i dataene.

Du kan også utforske noen beste ressurser for å lære statistikk for datavitenskap.