Prvou veľmi podstatnou súčasťou každého štatistického modelovania je obhliadka dát. Ešte pred tým ako začnete rozmýšlať aký model zostaviť, musíte dáta najprv videť. Často krát je práve počiatočná obhliatka dát a ich vizualizácia podceňovaný krok. V tomto cvičení sa zameriame na niekoľko základných krokov nutných pred analýzov dát (modelovaním). Postupne počas semestra si osvojíte náročnejšie triky preto cvičenie berte ako nutný základ.

library(faraway)
library(car)
library(ggplot2)

My budeme väčsinou pracovať s dátami implemenotovanými priamo z knižnice, prvou takouto knižnicou je bude pre vás faraway. Okrem datasetov obsahuje aj množstvo funkcií. Spolu s ňou budeme vždy volať aj car obsahujúca základné funckie a ggplot2 (grammar and graphics) na vytváranie profesionálnych obrázkov.


Study of teenage gambling in Britain

Na tomto datasete si postupne predstavíme základný postup “ohmatania dát” z knižnice. (neskôr dostanete aj dáta zo Slovenska)

Načítanie a oboznámenie sa s problematikou

# načítame dataset z knižnice
data(teengamb)

# ak nacitavate data z kniznice vzdy mate poruke popis
help(teengamb)
# alebo ?teengamb

# v praxi je zaužívané zálohovanie si raw dát
teen = teengamb
# dalej už budeme používať len teen
  • Čo sa píše v help o datasete?
  • Aké máme regresory?

Poznámka: Presne tento druh informácií a ešte viacej sa bežne dozviete od odborníka na danú problematiku.

Bližší náhľad a popisná štatistika

Ak help neobsahuje niektoré dôležité informácie viete si ich zistiť pomocou príkazov

# koľko má riadkov (dat) a koľko stlpcov (premenných)
dim(teen)
## [1] 47  5
# počiatocne nakuknutie, zobrazí len prvých 6
head(teen)
##   sex status income verbal gamble
## 1   1     51   2.00      8    0.0
## 2   1     28   2.50      8    0.0
## 3   1     37   2.00      6    0.0
## 4   1     28   7.00      4    7.3
## 5   1     65   2.00      8   19.6
## 6   1     61   3.47      6    0.1
# ak má "veľa" regresorov
names(teen)
## [1] "sex"    "status" "income" "verbal" "gamble"
# popisná štatistika
summary(teengamb)
##       sex             status          income           verbal     
##  Min.   :0.0000   Min.   :18.00   Min.   : 0.600   Min.   : 1.00  
##  1st Qu.:0.0000   1st Qu.:28.00   1st Qu.: 2.000   1st Qu.: 6.00  
##  Median :0.0000   Median :43.00   Median : 3.250   Median : 7.00  
##  Mean   :0.4043   Mean   :45.23   Mean   : 4.642   Mean   : 6.66  
##  3rd Qu.:1.0000   3rd Qu.:61.50   3rd Qu.: 6.210   3rd Qu.: 8.00  
##  Max.   :1.0000   Max.   :75.00   Max.   :15.000   Max.   :10.00  
##      gamble     
##  Min.   :  0.0  
##  1st Qu.:  1.1  
##  Median :  6.0  
##  Mean   : 19.3  
##  3rd Qu.: 19.4  
##  Max.   :156.0
  • Čo nám prezradila popisná štatistika?
  • Obsahujú dáta hrubú chybu (napríklad pri zapisovaní)?
  • Čo je teda naša odozva a čo sú prediktori?

Oprava a Transformácia

Tento krok sa vykonáva iba ak je potrebný. V tomto prípade nie je potrebné nič opravovať (t.j. prepisovať chybné údaje na základe externej informácie), ale je potrebné pretransformovať premennú pohlavie na faktor.

# zemníme formát na faktor
teen[,1]=as.factor(teen[,1]) 

# ako to zmenilo popisnu statistiku?
summary(teen)
##  sex        status          income           verbal          gamble     
##  0:28   Min.   :18.00   Min.   : 0.600   Min.   : 1.00   Min.   :  0.0  
##  1:19   1st Qu.:28.00   1st Qu.: 2.000   1st Qu.: 6.00   1st Qu.:  1.1  
##         Median :43.00   Median : 3.250   Median : 7.00   Median :  6.0  
##         Mean   :45.23   Mean   : 4.642   Mean   : 6.66   Mean   : 19.3  
##         3rd Qu.:61.50   3rd Qu.: 6.210   3rd Qu.: 8.00   3rd Qu.: 19.4  
##         Max.   :75.00   Max.   :15.000   Max.   :10.00   Max.   :156.0

Pomocou príkazu str() zistíme akého formátu sú regresory v datasete. O niečo všeobecnejší príkaz je class().

Prvotná vizualizácia

Prostredie R vám ponúka množstvo knižníc zaoberajúcich sa vizualizáciou, my sa zameriame na základné vykreslovanie a popri tom si budeme ukazovať ako vytvárať profesionalnejšie obárzky pomocnou grammar and graphics knižníc. Podstatné je čo nám obrázky hovoria a až druhoradý je vzhľad!

# krížový obázok
pairs(teen)

# odozva vs. prediktor
plot(gamble ~ income, data=teen)

# alebo
# plot(x = teen$income, y = teen$gamble)

# obrázok hustoty
plot(density(teen$gamble))

Podobne si vykreslite aj gamble vs. status a verbal. Pokúste sa interpretovať vzťah medzi odozvou a jednotlivými preditkromi.

Hlbšia vizualizácia

Užitočným krokom je niektoré premenné vložiť do obrázka tak ako ste to videli v úvode.

# ofarbením
plot(gamble ~ income, data=teen, col = sex)

Teraz nám obárzok prezradil o informáciu navyše. Zopakujte tento krok aj na obrázokch gamble vs. status a verbal.

Vizualizácia pomocou ggplot

ggplot(data=teen, mapping = aes(x=income, y=gamble, col=sex, size=status)) +
  geom_point(alpha=0.6)

Takýto obrázok sa už hodí aj na prezentáciu. Praxou sa naučite vytvárat takéto profesionalnejšie obrázky. Vykreslime si ešte graf hustoty.

ggplot(data=teen, mapping = aes(x=gamble)) +
  geom_density(fill="red", alpha = 0.4)

Znova to vypadá o kus lepšie ako pred tým. Už treba len trenovať, štatistika je ako remeslo, proste to chce prax… Dobrý cheatscheet najtede tu.


Samostatná práca

Analogicky obhliadnite dáta uswages, pričom v hrubom dodržujte kroky: