interaktív eda r-ben: iplots

64
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Interaktív EDA R-ben: iPlots Kocsis Imre ikocsis @ mit.bme.hu BURN Meetup, 2013.09.25.

Upload: imre-kocsis

Post on 28-Nov-2014

607 views

Category:

Education


1 download

DESCRIPTION

A Budapest Users of R Network (BURN) 2013.09.25. meetup-ján elhangzott előadás. My presentation on interactive Exploratory Data Analysis in R, using iPlots. (Presented during the second "Budapest Users of R Network" meetup on Sept. 25-th). The main topics covered: - The notion of "exploratory" data analysis (EDA) - The notion of interactive EDA - Important "usage patterns", introduced via highlights from an interactive analysis performed on cloud response time measurements - Problems with the State of the Art tools (at least in the R ecosystem)

TRANSCRIPT

Page 1: Interaktív EDA R-ben: iPlots

Budapesti Műszaki és Gazdaságtudományi EgyetemMéréstechnika és Információs Rendszerek Tanszék

Interaktív EDA R-ben:iPlots

Kocsis [email protected]

BURN Meetup, 2013.09.25.

Page 2: Interaktív EDA R-ben: iPlots

Megjegyzés

A 2013.09.25. Budapest Users of R Network meetup-előadás fóliakészlete, kisebb javításokkal-kiegészítésekkel és az élő demonstráció diákba leképezett tartalmával.

Page 3: Interaktív EDA R-ben: iPlots

Hibatűrő rendszerek kutatócsoport

IT szolgáltatásmenedzsment

Üzleti folyamatok és alkalmazásokSzoftvertervezés

Kritikus beágyazott módszerek

Page 4: Interaktív EDA R-ben: iPlots

Hibatűrő rendszerek kutatócsoport

Mérnöki modellezés és formális módszerek

http://www.inf.mit.bme.hu/

Page 5: Interaktív EDA R-ben: iPlots

Hibatűrő rendszerek kutatócsoport

Mérnöki modellezés és formális módszerek

Intelligens és „Big Data” adatelemzés

Page 6: Interaktív EDA R-ben: iPlots

„Data Science”?

Mérnöki modellezés és formális módszerek

Intelligens és „Big Data” adatelemzés

Cloud kapacitás, monitorozás, teljesítmény,

rendelkezésreállás

Page 7: Interaktív EDA R-ben: iPlots

„Data Science”?

Mérnöki modellezés és formális módszerek

Intelligens és „Big Data” adatelemzés

Szoftver/üzleti folyamatok elemzése, javítása,

optimalizálása

Page 8: Interaktív EDA R-ben: iPlots

„Data Science”?

Mérnöki modellezés és formális módszerek

Intelligens és „Big Data” adatelemzés

Applications of R in Business Competition

(MIT) „Big Data” elemzési módszerek

(TMIT) „Big Data” elemzési eszközök nyílt

forr. platformokon

Page 9: Interaktív EDA R-ben: iPlots

IANAS I Am Not A Statistician

Forrás: [1]

Page 10: Interaktív EDA R-ben: iPlots

Felderítő adatanalízis Exploratory Data Analysis: statisztikai tradíció,

o mely koncepcionális o és számítási eszközökkel segíti o minták felismerését és ezen keresztül o hipotézisek felállítását és finomítását.

Komplementere: Confirmatory Data Analysiso Hipotézistesztelés, modellválasztás, paraméterillesztés, …

Legismertebb vizionáriusa: John W. Tukey[2] és [3] alapján

Page 11: Interaktív EDA R-ben: iPlots

EDA Cél: adatok „megértése”

o „detektívmunka”o erősen ad-hoc

Fő eszköz: adatok „bejárása” grafikus reprezentációkkal

Hipotézisek: iteratív folyamat

Flexibilitás és pragmatizmus

Page 12: Interaktív EDA R-ben: iPlots

Anscombe négyese

Hibás feltételezések elkerülése… és intuíció:

Page 13: Interaktív EDA R-ben: iPlots

Dr. John Snow és az 1854-es kolerajárvány A járvány nem

„miazmikus”

A kútnyél-mítosz kérdéses

Forrás: [5] és [6]

Page 14: Interaktív EDA R-ben: iPlots

Dr. John Snow és az 1854-es kolerajárvány A járvány nem

„miazmikus”

A kútnyél-mítosz kérdéses

Forrás: [5] és [6]

„About half of our sensory neurons are dedicated to vision, endowing us with a remarkable pattern-recognition ability.”

Prof. Alfred Inselberg

Page 15: Interaktív EDA R-ben: iPlots

Statisztikai grafika

Ábrák képzése – „plotolás”

[7] alapján

ggplot2 graphics lattice … RADAR …

Page 16: Interaktív EDA R-ben: iPlots

Interaktív statisztikai grafika

Ábrák képzése – „plotolás”

Lekérdezések

[7] alapján

Kijelölés és csatolt

kiemelés

Csatolt analízisek

Interakció az ábrákkal

(Algoritmikusan) vezetett adatbejárás – „data tour”

Szakterületi tudás / analízis-minták?

Page 17: Interaktív EDA R-ben: iPlots

iPlots Interaktív statisztikai grafika R-ben

o CRAN csomag

http://stats.math.uni-augsburg.de/iplots/oMondrian, Rserve, rJava

Interaktív…Bar chart, Box plot, Hammock plot, Histogram, Map, Mosaic Plot, Parallel Coordinates Plot, Scatterplot

Page 18: Interaktív EDA R-ben: iPlots

Interaktivitás: lekérdezések „Query”

iPlots: CTRL

Többszintű lekérdezés

Page 19: Interaktív EDA R-ben: iPlots

Interaktivitás: kijelölés SHIFT-CTRL: OR SHIFT: XOR

Pointer, Drag-box, Brush, Slicer, Lasso

Kijelölés-sorozatok

Page 20: Interaktív EDA R-ben: iPlots

Interaktivitás: csatolt kiemelés

Page 21: Interaktív EDA R-ben: iPlots

Interaktivitás: „Color brush”

Page 22: Interaktív EDA R-ben: iPlots

Interakció az ábrákkal Billentyűkombinációk és

menük

Paraméterek (pl. hisztogram) Tengelyek megcserélése Skálázás Nagyítás (középső

egérgomb) Áttetszőség ()

Page 23: Interaktív EDA R-ben: iPlots

iPlots alternatívák: Acynonix „iPlots eXtreme”

OpenGL gyorsítás

Kiforrottság?

Page 24: Interaktív EDA R-ben: iPlots

rggobi GGobi kötés

Kiváló eszköz…

… de nehézkes, GTK és C++, nincs aktív fejlesztés

Page 25: Interaktív EDA R-ben: iPlots

cranvas

Forrás: [10], p 16Qt; forever github…?

Page 26: Interaktív EDA R-ben: iPlots

További alternatívák RStudio ggvis? RNavGraph?

Ha nem kell komoly R kötés:oMondrian, XmdvTool, Spotfire, Tableau, SAS JMP,

Minitab, DataDesk, …

Az R-be ágyazás előnyei:o Helyben az adato Helyben a statisztikao Helyben iteratív adatfinomítás

Folytassuk a listát!

Page 27: Interaktív EDA R-ben: iPlots

Példa elemzési feladat Pataricza et al.: Empirical Assessment of Resilience

o Az EDA-t a szolgáltatásbiztonság (dependability) elemzésében is kellene használnunk

o [9]

Itt:o Interaktív technikák szemléltetéseo [9] munkafolyamatának néhány lépésén keresztül

Page 28: Interaktív EDA R-ben: iPlots

Példa adatkészlet Számítási felhő teljesítménymérések

o Gorbenko et al. [8]

Response Time = Request Processing Time + Round Trip Time

Page 29: Interaktív EDA R-ben: iPlots

Példa adatkészlet

Forrás: [8], p 186

Page 30: Interaktív EDA R-ben: iPlots

DEMO

Page 31: Interaktív EDA R-ben: iPlots

DEMOlibrary('iplots') dat <- read.table(myfilepath, sep=',', header=TRUE, colClasses=c('factor', 'double', 'double', 'double', 'factor',

'factor', 'factor', 'double', 'factor'))

dat$pm.pa <- NULL dat$Time <- NULL dat$start.time <- dat$start.time - min(dat$start.time, na.rm=TRUE) dat <- dat[rowSums(is.na(dat)) == 0,]

Adatkészlet

Page 32: Interaktív EDA R-ben: iPlots

DEMO Adatkészlet

Page 33: Interaktív EDA R-ben: iPlots

DEMO RT, RPT, RTT vizsgálata

Kapcsolatok?

Page 34: Interaktív EDA R-ben: iPlots

DEMO RT, RPT, RTT vizsgálata

Page 35: Interaktív EDA R-ben: iPlots

DEMO RT, RPT, RTT vizsgálata

Selection (egérrel)

Közös skála? View Common Scale

Page 36: Interaktív EDA R-ben: iPlots

DEMO „Common scale” után

Page 37: Interaktív EDA R-ben: iPlots

DEMO RT ~ RTT?

Vágás két részre: „normál” és (RT-ben) „hibás” tartományok

Page 38: Interaktív EDA R-ben: iPlots

DEMO Vágás

Lineáris kapcsolat?

Page 39: Interaktív EDA R-ben: iPlots

DEMO Vágás

???

Page 40: Interaktív EDA R-ben: iPlots

iSetiSet

Kapcsolat az R-rel Valójában Java-t használunk (+ df-másolás) Objektumok: Változóba regisztrálás, „léptetés”,

listázás, módosítás

iSetiSetiSetiVar

iSetiSetiVar

iSetiSetiPlot

„aktuális”

„aktuális”

Page 41: Interaktív EDA R-ben: iPlots

EDA több adatkészlet felett Quick & dirty EDA egy adatkeretre: nem kell

foglalkoznunk iSet/iVar/iPlot-okkal

iSet létrehozása: iseto Az iVar-ok a szelekciós operátorokkal elérhetők

i{plot|bar|pcp|…}: az „aktuális” iSet-en Aktuális iSet „átállítása”: iset.set

Kijelölés: iSet-en értelmezett! A végigvezetett demo-ban nincs ezekre szükség

o Bár nem „szép” megoldás feleslegesen új iSet-eket létrehozni…

Page 42: Interaktív EDA R-ben: iPlots

DEMOfts <- iset.new("faultyset", faulty) ihist(fts$RT, title="F,RT")

oks <- iset.new("okset", ok) ihist(oks$RT, title="O,RT")

iset.set("faultyset") ihist(fts$RTT, title="F,RTT")

iset.set("okset") ihist(oks$RTT, title="O,RTT") ibar(oks$DC, title="O,DC")

iset.set("faultyset") ibar(fts$DC, title="F,DC")

Több iSet explicit kezelése

iSet, mint objektum

iSet-változó megjelenítése

Aktuális iSet átállítása

Page 43: Interaktív EDA R-ben: iPlots

DEMO Több iSet explicit kezelése

Page 44: Interaktív EDA R-ben: iPlots

DEMO Több iSet explicit kezelése

Page 45: Interaktív EDA R-ben: iPlots

DEMO

> iset.set(iset.next())[1] "okset"> iset.list()faultyset okset

2 3 > iplot.list()[[1]] ID:1 Name: "Histogram (RT)" [[2]]ID:2 Name: "Histogram (RTT)" [[3]]ID:3 Name: "Barchart (DC)"

Több iSet explicit kezelése

Az aktuális iSet-re

Page 46: Interaktív EDA R-ben: iPlots

DEMO Visszatérve a példára…

Page 47: Interaktív EDA R-ben: iPlots

DEMO Visszatérve a példára…

Nagyobb pontméretView Larger points

(vagy )

Módosított átlátszóságView More transparent

(vagy )

Page 48: Interaktív EDA R-ben: iPlots

DEMO RT vs. RTT – „kilógó” esetek

Page 49: Interaktív EDA R-ben: iPlots

DEMO RT vs. RTT – „normál” esetek

Két diszjunkt tartomány?

Page 50: Interaktív EDA R-ben: iPlots

DEMO Gyanús kliens felderítése

Selection

Linked Highlighting

Page 51: Interaktív EDA R-ben: iPlots

DEMO Gyanús kliens: csak Lansing

Color Brush:View Set Colors

Page 52: Interaktív EDA R-ben: iPlots

DEMO Gyanús kliens: csak Lansing 4!

Selection

Page 53: Interaktív EDA R-ben: iPlots

DEMO Időfüggő hálózati viselkedés

Zoom

Page 54: Interaktív EDA R-ben: iPlots

DEMO Időfüggő hálózati viselkedés

Azonos csempeméret:View Same bin size

Flukt.-diagram:View Fluctuation

Page 55: Interaktív EDA R-ben: iPlots

DEMO Időfüggő hálózati viselkedés

Különbségek a kliens-DC párok között azonos IP-n?

Page 56: Interaktív EDA R-ben: iPlots

DEMO Időfüggő hálózati viselkedés

Munkaidőben és este magasabb a hálózati terhelés?

Page 57: Interaktív EDA R-ben: iPlots

DEMO Időfüggő hálózati viselkedés

Munkaidőben és este magasabb a hálózati terhelés?

Page 58: Interaktív EDA R-ben: iPlots

DEMO Időfüggő hálózati viselkedés

Csak Dublin DC, Redmond nem

Page 59: Interaktív EDA R-ben: iPlots

DEMO Időfüggő hálózati viselkedés

Csak Dublin DC, Redmond nem

Page 60: Interaktív EDA R-ben: iPlots

Kapocsolat az R-rel iplot.opt(ylim=c(1000,1500))

iset.select(ok$location %in% c('New York', 'Chicago'))

iset()[iset.selected(),]

iset.sel.changed()o A legutóbbi meghívása óta történt-e változás

Page 61: Interaktív EDA R-ben: iPlots

Praktikus jótanácsok 32 bit all around

o Java + R

Ha Deducer, akkor már inkább Mondrian

Nem Big Data

Integer helyett double (ha boxplotot is akarunk…)

Amikor értelmes: váltsunk (pl.) Mondrian-bao Minden interakció egérrel (a legtöbb feladatra gyorsabb)

Page 62: Interaktív EDA R-ben: iPlots

Mondrian

Page 63: Interaktív EDA R-ben: iPlots

Fájó pontok Legalább Biggish Data?!?

o OpenGL/DirectX?o Statisztikai előfeldolgozás az adatokhoz közel?o Önmagában a stat. viz-re is igazo ! Hadley Wickham: bigvis (Bin-sum-smooth)

„Recordable EDA” =/= „reproducible research”

rapporter.net, knitr, sweave, …:o A végeredményo Folyamat kézi visszakövetése és átemelése

Page 64: Interaktív EDA R-ben: iPlots

Hivatkozások [1] http://xkcd.com/435/ [2] Behrens, J.T.: Principles and procedures of exploratory data analysis. Psychological

Methods 2, 131–160 (1997) [3] Tukey, J.: We need both exploratory and confirmatory. The American Statistician 34,

23–25 (1980) [4] Anscombe, F. J.: Graphs in Statistical Analysis. American Statistician 27 (1): 17–21

(1973) [5] McLeod, K.S.: Our sense of Snow: the myth of John Snow in medical geography. Social

Science and Medicine 50 (7-8): 923-935 (2000) [6] Inselberg, A.: Parallel Coordinates: Visual Multidimensional Geometry and its

Applications. Springer Science+Business Media, New York (2009) [7] Theus, M., Urbanek, S.: Interactive graphics for data analysis: principles and examples.

CRC Press (2011) [8] Gorbenko, A., Kharchenko, V., Mamutov, S., Tarasyuk, O., Romanovsky, A.: Exploring

Uncertainty of Delays as a Factor in End-to-End Cloud Response Time. In: 2012 Ninth European Dependable Computing Conference, pp. 185–190. IEEE (2012)

[9] Pataricza, András, et al.: Empirical Assessment of Resilience. Software Engineering for Resilient Systems. 1-16. (2013)

[10] http://streaming.stat.iastate.edu/~dicook/Reykjavik/vis/notes/6-interactive.pdf