2020-12-08 03:12:19 +01:00
<!doctype html>
< html lang = "en" class = "no-js" >
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width,initial-scale=1" >
2020-12-20 19:59:17 +01:00
< link rel = "search" type = "application/opensearchdescription+xml" href = "../../search.xml" title = "RAPIDS Search" >
2020-12-08 03:12:19 +01:00
< link rel = "shortcut icon" href = "../../assets/images/favicon.png" >
2020-12-20 19:59:17 +01:00
< meta name = "generator" content = "mkdocs-1.1.2, mkdocs-material-6.1.7+insiders-1.13.1" >
2020-12-08 03:12:19 +01:00
< title > Data Quality - RAPIDS< / title >
2020-12-20 19:59:17 +01:00
< link rel = "stylesheet" href = "../../assets/stylesheets/main.9526ea36.min.css" >
2020-12-08 03:12:19 +01:00
2020-12-20 19:59:17 +01:00
< link rel = "stylesheet" href = "../../assets/stylesheets/palette.47d7edde.min.css" >
2020-12-08 03:12:19 +01:00
2020-12-20 19:59:17 +01:00
< link rel = "preconnect" href = "https://fonts.gstatic.com" crossorigin >
2020-12-08 03:12:19 +01:00
< link rel = "stylesheet" href = "https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback" >
< style > body , input { font-family : "Roboto" , - apple-system , BlinkMacSystemFont , Helvetica , Arial , sans-serif } code , kbd , pre { font-family : "Roboto Mono" , SFMono-Regular , Consolas , Menlo , monospace } < / style >
< link rel = "stylesheet" href = "../../stylesheets/extra.css" >
< / head >
< body dir = "ltr" data-md-color-scheme = "default" data-md-color-primary = "blue" data-md-color-accent = "blue" >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< script > var palette = JSON . parse ( localStorage . getItem ( "__palette" ) || "{}" ) ; if ( void 0 !== palette . color ) for ( var key in palette . color ) document . body . setAttribute ( "data-md-color-" + key , palette . color [ key ] ) < / script >
< input class = "md-toggle" data-md-toggle = "drawer" type = "checkbox" id = "__drawer" autocomplete = "off" >
< input class = "md-toggle" data-md-toggle = "search" type = "checkbox" id = "__search" autocomplete = "off" >
< label class = "md-overlay" for = "__drawer" > < / label >
< div data-md-component = "skip" >
< a href = "#data-quality-visualizations" class = "md-skip" >
Skip to content
< / a >
< / div >
< div data-md-component = "announce" >
< / div >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< header class = "md-header" data-md-component = "header" >
< nav class = "md-header-nav md-grid" aria-label = "Header" >
< a href = "../.." title = "RAPIDS" class = "md-header-nav__button md-logo" aria-label = "RAPIDS" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M19 18.31V20a2 2 0 01-2 2H7a2 2 0 01-2-2v-3.7c-.46-.18-1.05-.3-2-.3a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V12.3c-.46-.18-1.05-.3-2-.3a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V8.3C4.54 8.12 3.95 8 3 8a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V4a2 2 0 012-2h10a2 2 0 012 2v2.16c1.78.31 2.54.97 2.71 1.13.39.39.39 1.03 0 1.42-.39.39-.91.38-1.42 0 0 0-1.04-.71-3.29-.71-1.26 0-2.09.41-3.05.9-1.04.51-2.21 1.1-3.95 1.1-.36 0-.69 0-1-.04V7.95c.3.05.63.05 1 .05 1.26 0 2.09-.41 3.05-.89C14.09 6.59 15.27 6 17 6V4H7v16h10v-2c1.5 0 1.97.29 2 .31M17 10c-1.73 0-2.91.59-3.95 1.11-.96.48-1.79.89-3.05.89-.37 0-.7 0-1-.05v2.01c.31.04.64.04 1 .04 1.74 0 2.91-.59 3.95-1.1.96-.48 1.79-.9 3.05-.9 2.25 0 3.29.71 3.29.71.51.39 1.03.39 1.42 0 .39-.39.39-1.02 0-1.42C21.5 11.08 20.25 10 17 10m0 4c-1.73 0-2.91.59-3.95 1.11-.96.48-1.79.89-3.05.89-.37 0-.7 0-1-.05v2.01c.31.04.64.04 1 .04 1.74 0 2.91-.59 3.95-1.1.96-.48 1.79-.9 3.05-.9 2.25 0 3.29.71 3.29.71.51.39 1.03.39 1.42 0 .39-.39.39-1.02 0-1.42C21.5 15.08 20.25 14 17 14z" / > < / svg >
< / a >
< label class = "md-header-nav__button md-icon" for = "__drawer" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z" / > < / svg >
< / label >
< div class = "md-header-nav__title" data-md-component = "header-title" >
< div class = "md-header-nav__ellipsis" >
< div class = "md-header-nav__topic" >
< span class = "md-ellipsis" >
RAPIDS
< / span >
< / div >
< div class = "md-header-nav__topic" data-md-component = "header-topic" >
< span class = "md-ellipsis" >
Data Quality
< / span >
< / div >
< / div >
< / div >
< div class = "md-header-nav__options" >
< button class = "md-header-nav__button md-icon" title = "Switch to light mode" aria-label = "Switch to light mode" data-md-option = "palette" data-md-color-scheme = "default" data-md-color-primary = "blue" data-md-color-accent = "blue" data-md-state = "hidden" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M17 7H7a5 5 0 00-5 5 5 5 0 005 5h10a5 5 0 005-5 5 5 0 00-5-5m0 8a3 3 0 01-3-3 3 3 0 013-3 3 3 0 013 3 3 3 0 01-3 3z" / > < / svg >
< / button >
< button class = "md-header-nav__button md-icon" title = "Switch to dark mode" aria-label = "Switch to dark mode" data-md-option = "palette" data-md-color-scheme = "slate" data-md-color-primary = "blue" data-md-color-accent = "blue" data-md-state = "hidden" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M7 10a2 2 0 012 2 2 2 0 01-2 2 2 2 0 01-2-2 2 2 0 012-2m10-3a5 5 0 015 5 5 5 0 01-5 5H7a5 5 0 01-5-5 5 5 0 015-5h10M7 9a3 3 0 00-3 3 3 3 0 003 3h10a3 3 0 003-3 3 3 0 00-3-3H7z" / > < / svg >
< / button >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< / div >
< label class = "md-header-nav__button md-icon" for = "__search" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z" / > < / svg >
< / label >
< div class = "md-search" data-md-component = "search" role = "dialog" >
< label class = "md-search__overlay" for = "__search" > < / label >
< div class = "md-search__inner" role = "search" >
< form class = "md-search__form" name = "search" >
2020-12-20 19:59:17 +01:00
< input type = "text" class = "md-search__input" name = "query" aria-label = "Search" placeholder = "Search" autocapitalize = "off" autocorrect = "off" autocomplete = "off" spellcheck = "false" data-md-component = "search-query" data-md-state = "active" required >
2020-12-08 03:12:19 +01:00
< label class = "md-search__icon md-icon" for = "__search" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z" / > < / svg >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z" / > < / svg >
< / label >
< button type = "reset" class = "md-search__icon md-icon" aria-label = "Clear" data-md-component = "search-reset" tabindex = "-1" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z" / > < / svg >
< / button >
< div class = "md-search__suggest" data-md-component = "search-suggest" > < / div >
< / form >
< div class = "md-search__output" >
< div class = "md-search__scrollwrap" data-md-scrollfix >
< div class = "md-search-result" data-md-component = "search-result" >
< div class = "md-search-result__meta" >
Initializing search
< / div >
< ol class = "md-search-result__list" > < / ol >
< / div >
< / div >
< / div >
< / div >
< / div >
< div class = "md-header-nav__source" >
< a href = "https://github.com/carissalow/rapids/" title = "Go to repository" class = "md-source" >
< div class = "md-source__icon md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 448 512" > < path d = "M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z" / > < / svg >
< / div >
< div class = "md-source__repository" >
carissalow/rapids
< / div >
< / a >
< / div >
< / nav >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< / header >
< div class = "md-container" data-md-component = "container" >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< main class = "md-main" data-md-component = "main" >
< div class = "md-main__inner md-grid" >
< div class = "md-sidebar md-sidebar--primary" data-md-component = "navigation" >
< div class = "md-sidebar__scrollwrap" >
< div class = "md-sidebar__inner" >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< nav class = "md-nav md-nav--primary" aria-label = "Navigation" data-md-level = "0" >
< label class = "md-nav__title" for = "__drawer" >
< a href = "../.." title = "RAPIDS" class = "md-nav__button md-logo" aria-label = "RAPIDS" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M19 18.31V20a2 2 0 01-2 2H7a2 2 0 01-2-2v-3.7c-.46-.18-1.05-.3-2-.3a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V12.3c-.46-.18-1.05-.3-2-.3a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V8.3C4.54 8.12 3.95 8 3 8a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V4a2 2 0 012-2h10a2 2 0 012 2v2.16c1.78.31 2.54.97 2.71 1.13.39.39.39 1.03 0 1.42-.39.39-.91.38-1.42 0 0 0-1.04-.71-3.29-.71-1.26 0-2.09.41-3.05.9-1.04.51-2.21 1.1-3.95 1.1-.36 0-.69 0-1-.04V7.95c.3.05.63.05 1 .05 1.26 0 2.09-.41 3.05-.89C14.09 6.59 15.27 6 17 6V4H7v16h10v-2c1.5 0 1.97.29 2 .31M17 10c-1.73 0-2.91.59-3.95 1.11-.96.48-1.79.89-3.05.89-.37 0-.7 0-1-.05v2.01c.31.04.64.04 1 .04 1.74 0 2.91-.59 3.95-1.1.96-.48 1.79-.9 3.05-.9 2.25 0 3.29.71 3.29.71.51.39 1.03.39 1.42 0 .39-.39.39-1.02 0-1.42C21.5 11.08 20.25 10 17 10m0 4c-1.73 0-2.91.59-3.95 1.11-.96.48-1.79.89-3.05.89-.37 0-.7 0-1-.05v2.01c.31.04.64.04 1 .04 1.74 0 2.91-.59 3.95-1.1.96-.48 1.79-.9 3.05-.9 2.25 0 3.29.71 3.29.71.51.39 1.03.39 1.42 0 .39-.39.39-1.02 0-1.42C21.5 15.08 20.25 14 17 14z" / > < / svg >
< / a >
RAPIDS
< / label >
< div class = "md-nav__source" >
< a href = "https://github.com/carissalow/rapids/" title = "Go to repository" class = "md-source" >
< div class = "md-source__icon md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 448 512" > < path d = "M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z" / > < / svg >
< / div >
< div class = "md-source__repository" >
carissalow/rapids
< / div >
< / a >
< / div >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../.." class = "md-nav__link" >
Home
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-2" type = "checkbox" id = "nav-2" >
< label class = "md-nav__link" for = "nav-2" >
Setup
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Setup" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-2" >
< span class = "md-nav__icon md-icon" > < / span >
Setup
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../file-structure/" class = "md-nav__link" >
File Structure
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../setup/installation/" class = "md-nav__link" >
Installation
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../setup/configuration/" class = "md-nav__link" >
Configuration
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../setup/execution/" class = "md-nav__link" >
Execution
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-3" type = "checkbox" id = "nav-3" >
< label class = "md-nav__link" for = "nav-3" >
Example Workflows
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Example Workflows" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-3" >
< span class = "md-nav__icon md-icon" > < / span >
Example Workflows
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../workflow-examples/minimal/" class = "md-nav__link" >
Minimal
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../workflow-examples/analysis/" class = "md-nav__link" >
Analysis
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-4" type = "checkbox" id = "nav-4" >
< label class = "md-nav__link" for = "nav-4" >
Behavioral Features
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Behavioral Features" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-4" >
< span class = "md-nav__icon md-icon" > < / span >
Behavioral Features
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/feature-introduction/" class = "md-nav__link" >
Introduction
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-4-2" type = "checkbox" id = "nav-4-2" >
< label class = "md-nav__link" for = "nav-4-2" >
Phone
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Phone" data-md-level = "2" >
< label class = "md-nav__title" for = "nav-4-2" >
< span class = "md-nav__icon md-icon" > < / span >
Phone
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/phone-accelerometer/" class = "md-nav__link" >
Phone Accelerometer
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/phone-activity-recognition/" class = "md-nav__link" >
Phone Activity Recognition
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/phone-applications-foreground/" class = "md-nav__link" >
Phone Applications Foreground
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/phone-battery/" class = "md-nav__link" >
Phone Battery
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/phone-bluetooth/" class = "md-nav__link" >
Phone Bluetooth
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/phone-calls/" class = "md-nav__link" >
Phone Calls
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/phone-conversation/" class = "md-nav__link" >
Phone Conversation
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/phone-data-yield/" class = "md-nav__link" >
Phone Data Yield
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/phone-light/" class = "md-nav__link" >
Phone Light
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/phone-locations/" class = "md-nav__link" >
Phone Locations
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/phone-messages/" class = "md-nav__link" >
Phone Messages
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/phone-screen/" class = "md-nav__link" >
Phone Screen
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/phone-wifi-connected/" class = "md-nav__link" >
Phone WiFI Connected
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/phone-wifi-visible/" class = "md-nav__link" >
Phone WiFI Visible
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-4-3" type = "checkbox" id = "nav-4-3" >
< label class = "md-nav__link" for = "nav-4-3" >
Fitbit
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Fitbit" data-md-level = "2" >
< label class = "md-nav__title" for = "nav-4-3" >
< span class = "md-nav__icon md-icon" > < / span >
Fitbit
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/fitbit-heartrate-summary/" class = "md-nav__link" >
Fitbit Heart Rate Summary
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/fitbit-heartrate-intraday/" class = "md-nav__link" >
Fitbit Heart Rate Intraday
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/fitbit-sleep-summary/" class = "md-nav__link" >
Fitbit Sleep Summary
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/fitbit-steps-summary/" class = "md-nav__link" >
Fitbit Steps Summary
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/fitbit-steps-intraday/" class = "md-nav__link" >
Fitbit Steps Intraday
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../features/add-new-features/" class = "md-nav__link" >
Add New Features
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-5" type = "checkbox" id = "nav-5" checked >
< label class = "md-nav__link" for = "nav-5" >
Visualizations
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Visualizations" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-5" >
< span class = "md-nav__icon md-icon" > < / span >
Visualizations
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--active" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "toc" type = "checkbox" id = "__toc" >
< label class = "md-nav__link md-nav__link--active" for = "__toc" >
Data Quality
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< a href = "./" class = "md-nav__link md-nav__link--active" >
Data Quality
< / a >
< nav class = "md-nav md-nav--secondary" aria-label = "Table of contents" >
< label class = "md-nav__title" for = "__toc" >
< span class = "md-nav__icon md-icon" > < / span >
Table of contents
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "#1-histograms-of-phone-data-yield" class = "md-nav__link" >
1. Histograms of phone data yield
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#2-heatmaps-of-overall-data-yield" class = "md-nav__link" >
2. Heatmaps of overall data yield
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#3-heatmap-of-recorded-phone-sensors" class = "md-nav__link" >
3. Heatmap of recorded phone sensors
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#4-heatmap-of-sensor-row-count" class = "md-nav__link" >
4. Heatmap of sensor row count
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../feature-visualizations/" class = "md-nav__link" >
Features
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-6" type = "checkbox" id = "nav-6" >
< label class = "md-nav__link" for = "nav-6" >
Developers
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Developers" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-6" >
< span class = "md-nav__icon md-icon" > < / span >
Developers
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../developers/git-flow/" class = "md-nav__link" >
Git Flow
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../developers/remote-support/" class = "md-nav__link" >
Remote Support
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../developers/virtual-environments/" class = "md-nav__link" >
Virtual Environments
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../developers/documentation/" class = "md-nav__link" >
Documentation
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../developers/testing/" class = "md-nav__link" >
Testing
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../developers/test-cases/" class = "md-nav__link" >
Test cases
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-7" type = "checkbox" id = "nav-7" >
< label class = "md-nav__link" for = "nav-7" >
Others
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Others" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-7" >
< span class = "md-nav__icon md-icon" > < / span >
Others
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../migrating-from-old-versions/" class = "md-nav__link" >
Migrating from beta
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../code_of_conduct/" class = "md-nav__link" >
Code of Conduct
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../faq/" class = "md-nav__link" >
FAQ
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../team/" class = "md-nav__link" >
Team
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../change-log/" class = "md-nav__link" >
Change Log
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../citation/" class = "md-nav__link" >
Citation
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< div class = "md-sidebar md-sidebar--secondary" data-md-component = "toc" >
< div class = "md-sidebar__scrollwrap" >
< div class = "md-sidebar__inner" >
< nav class = "md-nav md-nav--secondary" aria-label = "Table of contents" >
< label class = "md-nav__title" for = "__toc" >
< span class = "md-nav__icon md-icon" > < / span >
Table of contents
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "#1-histograms-of-phone-data-yield" class = "md-nav__link" >
1. Histograms of phone data yield
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#2-heatmaps-of-overall-data-yield" class = "md-nav__link" >
2. Heatmaps of overall data yield
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#3-heatmap-of-recorded-phone-sensors" class = "md-nav__link" >
3. Heatmap of recorded phone sensors
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#4-heatmap-of-sensor-row-count" class = "md-nav__link" >
4. Heatmap of sensor row count
< / a >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< div class = "md-content" >
< article class = "md-content__inner md-typeset" >
< a href = "https://github.com/carissalow/rapids/edit/master/docs/visualizations/data-quality-visualizations.md" title = "Edit this page" class = "md-content__button md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z" / > < / svg >
< / a >
< h1 id = "data-quality-visualizations" > Data Quality Visualizations< a class = "headerlink" href = "#data-quality-visualizations" title = "Permanent link" > ¶ < / a > < / h1 >
< p > We showcase these visualizations with a test study that collected 14 days of smartphone and Fitbit data from two participants (t01 and t02) and extracted behavioral features within five time segments (daily, morning, afternoon, evening, and night).< / p >
< div class = "admonition note" >
< p class = "admonition-title" > Note< / p >
< p > < a href = "../../setup/configuration#time-segments" > Time segments< / a > (e.g. < code > daily< / code > , < code > morning< / code > , etc.) can have multiple instances (day 1, day 2, or morning 1, morning 2, etc.)< / p >
< / div >
< h2 id = "1-histograms-of-phone-data-yield" > 1. Histograms of phone data yield< a class = "headerlink" href = "#1-histograms-of-phone-data-yield" title = "Permanent link" > ¶ < / a > < / h2 >
< p > RAPIDS provides two histograms that show the number of time segment instances that had a certain ratio of valid < a href = "../../features/phone-data-yield/#rapids-provider" > yielded minutes and hours< / a > , respectively. A valid yielded minute has at least 1 row of data from any smartphone sensor and a valid yielded hour contains at least M valid minutes.< / p >
< p > These plots can be used as a rough indication of the smartphone monitoring coverage during a study aggregated across all participants. For example, the figure below shows a valid yielded minutes histogram for daily segments and we can infer that the monitoring coverage was very good since almost all segments contain at least 90 to 100% of the expected sensed minutes.< / p >
< div class = "admonition example" >
< p class = "admonition-title" > Example< / p >
< p > Click < a href = "../../img/h-data-yield.html" > here< / a > to see an example of these interactive visualizations in HTML format< / p >
< / div >
< figure >
< img src = "../../img/h-data-yield.png" max-width = "100%" / >
< figcaption > Histogram of the data yielded minute ratio for a single participant during five time segments (daily, afternoon, evening, and night)< / figcaption >
< / figure >
< h2 id = "2-heatmaps-of-overall-data-yield" > 2. Heatmaps of overall data yield< a class = "headerlink" href = "#2-heatmaps-of-overall-data-yield" title = "Permanent link" > ¶ < / a > < / h2 >
< p > These heatmaps are a break down per time segment and per participant of < a href = "#1-histograms-of-phone-data-yield" > Visualization 1< / a > . Heatmap’ s rows represent participants, columns represent time segment instances and the cells’ color represent the valid yielded minute or hour ratio for a participant during a time segment instance.< / p >
< p > As different participants might join a study on different dates and time segments can be of any length and start on any day, the x-axis is labelled with the time delta between the start of each time segment instance minus the start of the first instance. These plots provide a quick study overview of the monitoring coverage per person and per time segment. < / p >
< p > The figure below shows the heatmap of the valid yielded minute ratio for participants t01 and t02 on daily segments and, as we inferred from the previous histogram, the lighter (yellow) color on most time segment instances (cells) indicate both phones sensed data without interruptions for most days (except for the first and last ones).< / p >
< div class = "admonition example" >
< p class = "admonition-title" > Example< / p >
< p > Click < a href = "../../img/hm-data-yield-participants.html" > here< / a > to see an example of these interactive visualizations in HTML format< / p >
< / div >
< figure >
< img src = "../../img/hm-data-yield-participants.png" max-width = "100%" / >
< figcaption > Overall compliance heatmap for all participants< / figcaption >
< / figure >
< h2 id = "3-heatmap-of-recorded-phone-sensors" > 3. Heatmap of recorded phone sensors< a class = "headerlink" href = "#3-heatmap-of-recorded-phone-sensors" title = "Permanent link" > ¶ < / a > < / h2 >
< p > In these heatmaps rows represent time segment instances, columns represent minutes since the start of a time segment instance, and cells’ color shows the number of phone sensors that logged at least one row of data during those 1-minute windows. < / p >
< p > RAPIDS creates a plot per participant and per time segment and can be used as a rough indication of whether time-based sensors were following their sensing schedule (e.g. if location was being sensed every 2 minutes).< / p >
< p > The figure below shows this heatmap for phone sensors collected by participant t01 in daily time segments from Apr 23< sup > rd< / sup > 2020 to May 4< sup > th< / sup > 2020. We can infer that for most of the monitoring time, the participant’ s phone logged data from at least 8 sensors each minute.< / p >
< div class = "admonition example" >
< p class = "admonition-title" > Example< / p >
< p > Click < a href = "../../img/hm-phone-sensors.html" > here< / a > to see an example of these interactive visualizations in HTML format< / p >
< / div >
< figure >
< img src = "../../img/hm-phone-sensors.png" max-width = "100%" / >
< figcaption > Heatmap of the recorded phone sensors per minute and per time segment of a single participant< / figcaption >
< / figure >
< h2 id = "4-heatmap-of-sensor-row-count" > 4. Heatmap of sensor row count< a class = "headerlink" href = "#4-heatmap-of-sensor-row-count" title = "Permanent link" > ¶ < / a > < / h2 >
< p > These heatmaps are a per-sensor breakdown of < a href = "#1-histograms-of-phone-data-yield" > Visualization 1< / a > and < a href = "#2-heatmaps-of-overall-data-yield" > Visualization 2< / a > . Note that the second row (ratio of valid yielded minutes) of this heatmap matches the respective participant (bottom) row the screenshot in Visualization 2.< / p >
< p > In these heatmaps rows represent phone or Fitbit sensors, columns represent time segment instances and cell’ s color shows the normalized (0 to 1) row count of each sensor within a time segment instance. RAPIDS creates one heatmap per participant and they can be used to judge missing data on a per participant and per sensor basis.< / p >
< p > The figure below shows data for 16 phone sensors (including data yield) of t01’ s daily segments (only half of the sensor names and dates are visible in the screenshot but all can be accessed in the interactive plot). From the top two rows, we can see that the phone was sensing data for most of the monitoring period (as suggested by Figure 3 and Figure 4). We can also infer how phone usage influenced the different sensor streams; there are peaks of screen events during the first day (Apr 23< sup > rd< / sup > ), peaks of location coordinates on Apr 26< sup > th< / sup > and Apr 30< sup > th< / sup > , and no sent or received SMS except for Apr 23< sup > rd< / sup > , Apr 29< sup > th< / sup > and Apr 30< sup > th< / sup > (unlabeled row between screen and locations).< / p >
< div class = "admonition example" >
< p class = "admonition-title" > Example< / p >
< p > Click < a href = "../../img/hm-sensor_rows.html" > here< / a > to see an example of these interactive visualizations in HTML format< / p >
< / div >
< figure >
< img src = "../../img/hm-sensor_rows.png" max-width = "100%" / >
< figcaption > Heatmap of the sensor row count per time segment of a single participant< / figcaption >
< / figure >
< / article >
< / div >
< / div >
< / main >
< footer class = "md-footer" >
< div class = "md-footer-nav" >
< nav class = "md-footer-nav__inner md-grid" aria-label = "Footer" >
< a href = "../../features/add-new-features/" class = "md-footer-nav__link md-footer-nav__link--prev" rel = "prev" >
< div class = "md-footer-nav__button md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z" / > < / svg >
< / div >
< div class = "md-footer-nav__title" >
< div class = "md-ellipsis" >
< span class = "md-footer-nav__direction" >
Previous
< / span >
Add New Features
< / div >
< / div >
< / a >
< a href = "../feature-visualizations/" class = "md-footer-nav__link md-footer-nav__link--next" rel = "next" >
< div class = "md-footer-nav__title" >
< div class = "md-ellipsis" >
< span class = "md-footer-nav__direction" >
Next
< / span >
Features
< / div >
< / div >
< div class = "md-footer-nav__button md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z" / > < / svg >
< / div >
< / a >
< / nav >
< / div >
< div class = "md-footer-meta md-typeset" >
< div class = "md-footer-meta__inner md-grid" >
< div class = "md-footer-copyright" >
< div class = "md-footer-copyright__highlight" >
Released under AGPL
< / div >
Made with
2020-12-20 19:59:17 +01:00
< a href = "https://squidfunk.github.io/mkdocs-material/" target = "_blank" rel = "noopener" >
2020-12-08 03:12:19 +01:00
Material for MkDocs Insiders
< / a >
< / div >
< div class = "md-footer-social" >
< a href = "https://twitter.com/julio_ui" target = "_blank" rel = "noopener" title = "twitter.com" class = "md-footer-social__link" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 512 512" > < path d = "M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z" / > < / svg >
< / a >
< / div >
< / div >
< / div >
< / footer >
< / div >
2020-12-20 19:59:17 +01:00
< script src = "../../assets/javascripts/vendor.49293c47.min.js" > < / script >
< script src = "../../assets/javascripts/bundle.f4f0c901.min.js" > < / script > < script id = "__lang" type = "application/json" > { "clipboard.copy" : "Copy to clipboard" , "clipboard.copied" : "Copied to clipboard" , "search.config.lang" : "en" , "search.config.pipeline" : "trimmer, stopWordFilter" , "search.config.separator" : "[\\s\\-]+" , "search.placeholder" : "Search" , "search.result.placeholder" : "Type to start searching" , "search.result.none" : "No matching documents" , "search.result.one" : "1 matching document" , "search.result.other" : "# matching documents" , "search.result.more.one" : "1 more on this page" , "search.result.more.other" : "# more on this page" , "search.result.term.missing" : "Missing" } < / script >
2020-12-08 03:12:19 +01:00
< script >
app = initialize({
base: "../..",
2020-12-20 19:59:17 +01:00
features: ["navigation.sections", "search.suggest", "search.highlight"],
2020-12-08 03:12:19 +01:00
search: Object.assign({
worker: "../../assets/javascripts/worker/search.0f64ce30.min.js"
}, typeof search !== "undefined" & & search),
2020-12-20 19:59:17 +01:00
version: {"method": "mike"}
2020-12-08 03:12:19 +01:00
})
< / script >
< script src = "https://polyfill.io/v3/polyfill.min.js?features=es6" > < / script >
< script src = "https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js" > < / script >
< script src = "../../javascripts/extra.js" > < / script >
< / body >
< / html >