Interactive Data Visualization And Exploration

2y ago
36 Views
2 Downloads
9.70 MB
34 Pages
Last View : 9d ago
Last Download : 3m ago
Upload by : Callan Shouse
Transcription

Interactive Data Visualization and ExplorationUsing the Loon R packageAdrian WaddellPhUSE 2016, Barcelona

Motivation for new interactive visualization toolsCarefully designed, general, and extendable framework simple plotsattention to high-dimensional dataextendablestudy and compare methodologies visually analysis, research and teachingintegrated in popular statistical environment such as R

Introduction of Loon with the Gapminder Data Western World Long Life & Small FamilyThird World Short Life & Large Familydata from grapminder.com, for year 2009

p1 - l plot(x Fertility, y LifeExpectancy,color region cols, size pop size,itemlabel country,linkingGroup "world")p2 - l plot(x Income, y LifeExpectancy,itemlabel country,linkingGroup "world")h - l hist(x Income, linkingGroup "world")

DisplaysOthers in Development barplot pairs, currentlycompound view

Interactive Statistical Visualization ToolkitDirect ManipulationCommand Line :loon::plot inspector analysisToolkitExtendable

Statistical GraphicsLayersPoint GlyphsDynamic LinkingInspectors

Statistical GraphicsLayersPoint GlyphsDynamic LinkingInspectors

Statistical GraphicsLayersPoint GlyphsDynamic LinkingInspectors

Statistical GraphicsLayersPoint GlyphsDynamic LinkingInspectors

Statistical GraphicsLayersPoint GlyphsDynamic LinkingInspectors

Frameworkp - l plot(x Fertility, y LifeExpectancy,color region cols, size pop size)

Frameworkp - l plot(x Fertility,xy LifeExpectancy,ycolor region cols,colorsize pop size)size

Frameworkp - l plot(x Fertility, y LifeExpectancy,color region cols, size pop size)Plot s.n dimensional1 dimensionalboolean 35 other states

anual can be found on the project webpage [1]. Once the package is installed the R-code provided in this papn be run to recreate the visualization settings we introduce. The R-code can be also found on the GitHupository [3].Example Visualizing Adverse Events ENERATING ADVERSE EVENTS DATAGenerate Adverse Events Datae now present R-code to generate adverse event data for 300 patients that include a subset of the variablfined in the ADaM datastructurefor adverseevents[4].StructureThat is,forweAdverseonly generatevariables that are used fAnalysisData Model(ADaM)DataEvent Analysise visualization settings presented in this paper. We also use native R data types whenever possible (e.g. BooleaUE and FALSE instead of character Y and N , respectively). The variables that we generate are defined asand are listed below. TAESEQAETERMAESEVNASTDTAENDTADURNUnique Subject IDGenderAgeStudy ArmDiscontinued Study due to DeathTreatment StartTreatment EndSequence NumberReported Term for the Adverse EventAnalysis Severity/Intensity (N)Analysis Start DateAnalysis End DateDuration of Adverse Event

Example Visualizing Adverse Eventslive demo

s. Note that, instead of modifying one plot state at a time as done in the above code chunk, we can also useprovided in the “Modify” section of the loon inspector (e.g. point color, point size and point glyph). The returnWe can now see that patients from arm A (tan colored) tend to have more adverse events than thconfigure function to modify multiple scatterplot states in one function call. It is also possible to attachB (steelblue colored), which is not surprising given the way we generated the number of adversevalue of l plot, here assigned to p, is a plot handle to access and modify the scatterplot via the command line.el to each scatterplot point that can be queried with the mouse pointer resulting in a “tool-tip” with thearm. Also, gender seems to be evenly distributed among the two study arms, age and the numFor example, p[ color ] returns a vector with the hexadecimal encoded color representation of each of the 300abel. For example, the itemlabel could be the patient USUBJID with a table of the adverse events, as seenevents. Note that, instead of modifying one plot state at a time as done in the above code chunk,points, and p[ size ] - 5 sets the size of every point to 5.w.the l configure function to modify multiple scatterplot states in one function call. It is also poOne issue with the above scatterplot is the over-plotting of the point glyphs, that is, it is not possible to distinguisha label to each scatterplot point that can be queried with the mouse pointer resulting in a “tobel - unlist(Map(function(x) {itemlabel. For example, the itemlabel could be the patient USUBJID with a table of the adverseall 300 points. One way to deal with over-plotting is to jitter the points, that is, to add a small amount of noise tobelow.x - table(x aes AETERM)the point locations. In loon, this can be done by first selecting all the points and then by pressing thebuttonste(c(on the inspector. Jittering might move the points outside the current plotting area of the scatterplot. In order tot.labelwere - unlist(Map(function(x){ theFrom the above jittered scatterplot we note that, for example, more patientssampled from the center ofpaste0( Patient , x USUBJID, : ),adjust the plotting area to include all points, one option is to press the scale to world button on the inspector. Int.x age range. Next, we encode gender and study arm as visual attributes ontothetable(x aes AETERM)scatterplot. Our goal here is toapply(cbind(t.x, names(t.x)), 1, function(x)paste(x, collapse ))addition to jittering the points, one can also choose a point glyph with an outline so that the individual pointspaste(c(check whether there is an obvious relation between age, study arm, gender and the number of adverse events. Tocollapse \n )paste0( Patient , x USUBJID, : ),are better distinguished from each other. One way to do that is tothedifferentinspectorwhiledo pressso, wetheencode buttongender onwithpointglyphs and the study arm asapply(cbind(t.x,glyph colors in thescatterplot of the.aae))names(t.x)), 1, function(x)paste(x, collapse ))the points are still selected. After deselecting the points by ber of adverse events vs. age from above.), collapse \n )nfigure(p, itemlabel t.label, showItemlabels TRUE)will then look similar to the following plot. Note that the seed in R does not influence the random jittering noise}, l.aae))for loon as loon is implemented in Tcl and Tk. Therefore, the plotsjitteringare not perfectly reproduciblep[ withglyph] - ifelse(sapply(l.aae,function(x)x SEX) F , ccircle , csquare )p[ color ] - ifelse(sapply(l.aae, function(x)x ARM) ARMl configure(p,A , tan , steelblue)here and that is the case with the third next scatterplot.itemlabel t.label,showItemlabels TRUE)Example Visualizing Adverse EventsFor l hist,the yshowsargumentthe histogramthe densityratherthe frequencyFor l hist,the yshowsargumentspecifiesspecifiesthat thethathistogramdisplaysdisplaysthe densityrather thanthethanfrequencythe binwidthargumenta particularbinforwidthfor the binningalgorithm.Theand theandbinwidthargumentspecifiesspecifiesa particularbin widththe binningalgorithm.Theelementelementin the in thehistogramdisplaycan beadjustthe binningoriginbinonwidthon the histograminteractively.histogramdisplay canbe usedto usedadjusttothebinningorigin andthe andbin thewidththe histograminteractively.This Thishistogramof headachescountper becomesperson becomesparticularlyinterestingwhen itlinkingit withthe informationhistogramof headachescount perpersonparticularlyinterestingwhen linkingwith theinformationshownon the scatterplotabove.is,Thatloon synchronizescertainautomaticallystates automaticallyfordisplays.linked displays.Forshown onthe scatterplotabove. Thatloon is,synchronizescertain statesfor linkedForfor ascatterplotlinked scatterplotand histogram,of thestateslinkedincludestates includecolor, selectedandInsize. Inexample,example,for a linkedand histogram,some of somethe linkedcolor, selectedand size.we plot a histogram with the number of headaches per patient.Next,weplota histogram with the number of headaches per patient.From the above jittered edfromthe centerof the4 the histogramthenotefollowingwethe scatterplotof thenumberof adverseeventsvs. ageof numberthe followingcode,wecode,linkthe linkscatterplotof the numberof adverseeventsvs.agewiththewithhistogramof numberage range. Next, we encode ofgenderandstudyarmvisualontoherethatis catterplot.the patientsin goalthe scatterplotthathavethanmorel hist(headachesper patient.Next, attributesweselectthethepatientsin theOurscatterplotmore15thanadverseh 15 - adversel hist(check whetherage,46.studyarm,gendertheof Thisselectionwillnumberpropagateto the histogramas it linkedis nowwithlinkedthe sapply(l.aae, function(x)sum(x aes AETERM HEADACHE)), there is an obviouseventsrelationandare eto thedisplayas it is nowthex with sapply(l.aae,function(x)sum(x aes AETERM HEADACHE )),do so, we encode gender withdifferentpointglyphsand theselectedstudy arearmas areglyphcolorsin inthemagentascatterplotof thedisplays.scatterplot.By default,pointshighlightedloon’sabel Number of Headaches per Patient ,scatterplot.By default,selectedpointshighlightedin magentainloon’sindisplays.xlabel Number of Headaches per Patient ,number of adverse events vs. age from above.hows density ,yshows density ,showScales TRUE,p[ linkingGroup] - "aes"owScales TRUE,p[ linkingGroup] - "aes"p[ glyph ] - ifelse(sapply(l.aae,function(x)x SEX) F ,sync "pull",ccircle, showStackedColors TRUE)csquare)binwidth 1l configure(h,linkingGroup "aes",sync "pull",showStackedColors TRUE)nwidth 1l configure(h,linkingGroup "aes",)p[ color ] - ifelse(sapply(l.aae,function(x)x ARM) A , tanp[ selected] - naes15ARMage46 , steelblue )p[ selected] - naes15 & age & 465In thecodeaboveto specifythesync argumentthatloon howknowsto initiallyalignthe linkedIn the abovewecodehaveweto havespecifythe syncargumentso that soloonknowsto howinitiallyalign thelinkedstates betweenthedisplays.linkeddisplays.set the showStackedColorsthestatecolorstates betweenthe linkedWe alsoWeset alsothe showStackedColorsto TRUE tosoTRUEthat sothethatcolorof statethe of the4histogramgets visuallyhistogramgets visuallyencoded.encoded.thisshort introductionof loonwiththata plotthattheshowsthe individualeventsonlinea timeline for eachWe end Wethisendshortintroductionof loon witha plotshowsindividualadverse adverseevents ona timefor eachthat is selectedin the scatterplotor histogramThe adverseeventsare coloredorangeredpatient patientthat is selectedin the scatterplotor histogramdisplays.displays.The adverseevents arecoloredorangeredif they if theyare of severity3 and dodgerblueotherwise.also theencodethe treatmentperiodwith a rectanglethat is coloredare of severity3 and dodgerblueotherwise.We alsoWeencodetreatmentperiod witha rectanglethat is coloredlemonchiffon1if the patientdiscontinuedtheduestudydue toanddeathgray otherwise.Thiscan beinuseful inlemonchiffon1if the patientdiscontinuedthe studyto deathgrayandotherwise.This plotcanplotbe usefulinvestigatingany patternswithinthe adverseeventsdataas an increasein frequencyandinvestigatingwhetherwhetherthere arethereany arepatternswithin theadverseevents datasuchas suchan increasein frequencyandof adverseevent precedinga patient’sdeath.This visualizationusessome advancedloon featuresseverity severityof adverseevent precedinga patient’sdeath. Thisvisualizationuses someadvancedloon featuressuch as such asevent bindingsand Morelayers.informationMore informationaboutfeaturesthese featurescan beinfoundin theloon manual[1].event bindingsand layers.about thesecan be foundthe loonmanual[1].createAEplot - function(){createAEplot - function(){ - l plot(showItemlabels TRUE,xlabel "TreatmentRelativeDay", showScales TRUE)pae - pael plot(showItemlabels TRUE,xlabel "TreatmentRelativeDay", showScales TRUE)rectHeightrectHeight - 4 - 4y - 0 y - 05This adverse events plot supports itemlabels for the individual adverse events. Notice that the adverse events linesare stacked in a space-efficient manner.CONCLUSIONIn this paper, we illustrate some of loon’s displays and features in the context of adverse events data. We generatethe data to closely match the AdAM data structure specifications for adverse events [4]. Therefore, it should bepossible to use the code provided in this paper to analyze adverse events data from actual clinical trials withouttoo much additional work. The tools and techniques used for our visualization settings include jittering, encodinginformation with glyph color and shape, interactive querying using tool-tips, linking, layering, and bindings. Weencourage the reader to run this visual analysis on a local installation of R and loon and further explore loon’sfeatures. Loon is a powerful interactive visualization toolkit that has many more features and capabilities tovisually explore high-dimensional data.REFERENCES[1] Loon’s website with installation instructions and user manual: http://waddella.github.io/loon/[2] R Core Team (2016). R: A Language and Environment for Statistical Computing. R Foundation for StatisticalComputing. Vienna, Austria.[3] GitHub repository with R-code for PhUSE 2016 adverse events paper by Adrian Waddell: http://github.com/waddella/phuse2016 adverse events[4] Analysis Data Model (ADaM) Data Structure for Adverse Event Analysis: http://www.cdisc.org/system/files/all/standard category/application/pdf/adam ae final v1.pdfACKNOWLEDGEMENTSLoon is joint work with Prof. R. Wayne Oldford from the University of Waterloo, Waterloo, Canada.CONTACT INFORMATION

waddella.github.io/loon

visualization, interactive visualization adds natural and powerful ways to explore the data. With interactive visualization an analyst can dive into the data and quickly react to visual clues by, for example, re-focusing and creating interactive queries of the data. Further, linking vi

Related Documents:

bad fit for interactive data exploration (IDE). At the same time, the expectation that a new system supporting interactive data exploration will replace existing data management stacks for analytics is, simply, unrealistic. Instead, a system designed specifically for interactive data exploration must integrate and work

use of interactive visualization, however focuses primarily on small-screen mobile devices. With regard to interactive glyph-based visualization, Yang et al. [YHW 07] propose a Value and Relation display that is designed for interactive exploration of large data sets. Shaw et al. [SHER99] investi-

2.1 Data Visualization Data visualization in the digital age has skyrocketed, but making sense of data has a long history and has frequently been discussed by scientists and statisticians. 2.1.1 History of Data Visualization In Michael Friendly's paper from 2009 [14], he gives a thorough description of the history of data visualization.

Title Interactive Statistical Data Visualization Version 1.3.8 Date 2021-09-20 URL https://great-northern-diver.github.io/loon/ Description An extendable toolkit for interactive data visualization and exploration. License GPL-2 Depends R ( 3.5.0), methods, tcltk Imports tools, graphics, grDevices, utils, stats, gridExtra

Interactive Visual Learning of Deep Learning Models in Browser. Collaboration with. HUMAN -CENTERED AI Interactive Data Visualization. 110K visitors from 170 countries. 1.9K Likes. 800 Retweets. We build interactive data visualization tools for people to more easily understand, build, and use AI systems. through. bit.ly/gan-lab. Try out!

motions in pigs. Interactive exploration of data describing a collection of more than one hundred experimentally captured pig chewing cycles is described. Index Terms—Scientific visualization, information visualization, co ordinated multiple views, biomechanics. 1 INTRODUCTION Effective visualization of 3D motion is a complex problem, especially

Interactive data visualization is a technique of analyzing data, where a user interacts with the system that results in visual patterns for a given set of data. In this paper, seven basic modules and their corresponding operations have been proposed that an interactive big data visualization tool for .

Am I My Brother's Keeper? Grounding and Motivating an Ethos of Social Responsibility in a Free Society (Thisisadraftpriortopublication. Forpublishedversion,&see cal(Philosophy, Vol.&12,&No.&4,&December&2009,&559–580. Pleaseusepublished&versionforallcitations). David Thunder Matthew J. Ryan Center for the Study of Free Institutions and the .