interaktív eda r-ben: iplots
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
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.
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.
Hibatűrő rendszerek kutatócsoport
IT szolgáltatásmenedzsment
Üzleti folyamatok és alkalmazásokSzoftvertervezés
Kritikus beágyazott módszerek
Hibatűrő rendszerek kutatócsoport
Mérnöki modellezés és formális módszerek
http://www.inf.mit.bme.hu/
Hibatűrő rendszerek kutatócsoport
Mérnöki modellezés és formális módszerek
Intelligens és „Big Data” adatelemzés
„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
„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
„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
IANAS I Am Not A Statistician
Forrás: [1]
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
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
Anscombe négyese
Hibás feltételezések elkerülése… és intuíció:
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]
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
Statisztikai grafika
Ábrák képzése – „plotolás”
[7] alapján
ggplot2 graphics lattice … RADAR …
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?
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
Interaktivitás: lekérdezések „Query”
iPlots: CTRL
Többszintű lekérdezés
Interaktivitás: kijelölés SHIFT-CTRL: OR SHIFT: XOR
Pointer, Drag-box, Brush, Slicer, Lasso
Kijelölés-sorozatok
Interaktivitás: csatolt kiemelés
Interaktivitás: „Color brush”
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 ()
iPlots alternatívák: Acynonix „iPlots eXtreme”
OpenGL gyorsítás
Kiforrottság?
rggobi GGobi kötés
Kiváló eszköz…
… de nehézkes, GTK és C++, nincs aktív fejlesztés
cranvas
Forrás: [10], p 16Qt; forever github…?
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!
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
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
Példa adatkészlet
Forrás: [8], p 186
DEMO
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
DEMO Adatkészlet
DEMO RT, RPT, RTT vizsgálata
Kapcsolatok?
DEMO RT, RPT, RTT vizsgálata
DEMO RT, RPT, RTT vizsgálata
Selection (egérrel)
Közös skála? View Common Scale
DEMO „Common scale” után
DEMO RT ~ RTT?
Vágás két részre: „normál” és (RT-ben) „hibás” tartományok
DEMO Vágás
Lineáris kapcsolat?
DEMO Vágás
???
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”
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…
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
DEMO Több iSet explicit kezelése
DEMO Több iSet explicit kezelése
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
DEMO Visszatérve a példára…
DEMO Visszatérve a példára…
Nagyobb pontméretView Larger points
(vagy )
Módosított átlátszóságView More transparent
(vagy )
DEMO RT vs. RTT – „kilógó” esetek
DEMO RT vs. RTT – „normál” esetek
Két diszjunkt tartomány?
DEMO Gyanús kliens felderítése
Selection
Linked Highlighting
DEMO Gyanús kliens: csak Lansing
Color Brush:View Set Colors
DEMO Gyanús kliens: csak Lansing 4!
Selection
DEMO Időfüggő hálózati viselkedés
Zoom
DEMO Időfüggő hálózati viselkedés
Azonos csempeméret:View Same bin size
Flukt.-diagram:View Fluctuation
DEMO Időfüggő hálózati viselkedés
Különbségek a kliens-DC párok között azonos IP-n?
DEMO Időfüggő hálózati viselkedés
Munkaidőben és este magasabb a hálózati terhelés?
DEMO Időfüggő hálózati viselkedés
Munkaidőben és este magasabb a hálózati terhelés?
DEMO Időfüggő hálózati viselkedés
Csak Dublin DC, Redmond nem
DEMO Időfüggő hálózati viselkedés
Csak Dublin DC, Redmond nem
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
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)
Mondrian
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
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