Le fil

Explorer rapidement un set de données avec Shinymodules

R&D - 20 avril 2021





 

Installation

Shinymodules ne sera donc a priori pas déposé sur le CRAN dans sa structure actuelle. En revanche, vous pouvez l’installer directement depuis notre github https://github.com/datastorm-open :

if(!require(devtools)) install.packages("devtools")
devtools::install_github("datastorm-open/shinymodules")

Et bien évidemment, le code source est accessible à la même adresse.

Application de démonstration

Une application de démonstration est disponible

  • directement dans le package :
if(!require(nycflights13)) install.packages("nycflights13")
if(!require(data.table)) install.packages("data.table")
if(!require(esquisse)) install.packages("esquisse")
if(!require(colourpicker)) install.packages("colourpicker")

shiny::runApp(system.file("demo_app", package = "shinymodules"))

Fonctionnalités

1. Filtrer les données

Le premier module filter_data permet de filtrer dynamiquement les données. Branché à une table, l’utilisateur pourra alors définir la sous-table qu’il souhaite analyser. Avec des possibilités de filtres multiples et en fonction du type des colonnes sélectionnées :

  • Valeur unique, plages définies en fonction de seuils ou avec des bornes pour les variables quantitatives
  • Choix simple ou multiple pour les variables qualitatives
  • Jour ou période pour les variables de dates

filter data

?shinymodules::filter_data
# ui.R
shinymodules::filter_data_UI(id = "filter_id"))

# server.R
full_data <- shiny::reactive({my_data})
output_filter <- shiny::callModule(module = shinymodules::filter_data, 
          id = "filter_id",
          data = full_data,
          columns_to_filter = "all")

# then, have fun with filter data !
your_filtered_table <- output_filter$data

2. Résumer les données

Une fois notre jeu de données défini, on souhaite obtenir une vue synthétique de nos variables. C’est ce que propose summary_data avec le calcul et l’affichage d’un ensemble de statistiques descriptives (données manquantes & distributions).

?shinymodules::summary_data
# ui.R
shinymodules::summary_data_UI(id = "stat_desc_id", titles = FALSE)

# server.R
data <- shiny::reactive({my_data})
shiny::callModule(module = shinymodules::summary_data, 
          data = shiny::reactive(data))

Les indicateurs affichés sont paramétrables et les tableaux sont téléchargeables sous différents formats (.csv, .xlsx ou .html), ce qui nous amène au troisième module disponible.

3. Télécharger les données

Le troisième module show_DT permet simplement d’afficher une table avec le package DT en proposant à l’utilisateur de la télécharger. Il est donc relativement basique mais néanmoins très utile !

show-dt

?shinymodules::show_DT
# ui.R
shinymodules::show_DT_UI(
     id = "iris_module", 
     export = c("csv", "html")
)

# server.R
shiny::callModule(module = show_DT, 
    id = "iris_module", 
    data = reactive(iris), 
    dt = reactive(DT::datatable(iris)), 
    file_name = paste0("Iris_export", format(Sys.time(), format = "%d%m%Y_%H%M%S"))
)

4. Analyser les performances d’un modèle de régression / Monitorer

Le dernier module propose un ensemble de fonctionnalités pour analyser les performances d’un modèle de régression.

Dans le cas de données temporelles, des variables complémentaires sont automatiquement créées (heure, jour de la semaine, …)

  • Calcul d’indicateurs de performance (RMSE, MAE, MAPE) au global ou sur des sous-populations définies par une variable sélectionnée

  • Distributions des erreurs (relatives, absolues ou quadratiques)

monitoring data 2

  • Arbres de régression avec le package visNetwork

monitoring data 3

?shinymodules::monitoring_data
# ui.R
shinymodules::monitoring_data_UI(
     id = "monitoring", 
)

# server.R
shiny::callModule(module = monitoring_data, id = "my_id", 
             data = reactive(data),
             col_obs = col_obs,
             col_fit = col_fit,
             col_date = col_date,
             indicators = indicators
)


> Retrouvez les autres packages développés par Datastorm sur notre github : https://github.com/datastorm-open

« Avec le Département du Nord, nous sommes dans une vraie démarche expérimentale »

Data scientist curieux et peu enclin à la routine, Lyès Boucherai nourrit sa jeune expérience des projets qu’il mène pour les clients de Datastorm. Sa récente collaboration avec le Département du Nord sur l’optimisation du service public territorial l’a particulièrement marqué. Interview.

R&D
Explorer rapidement un set de données avec Shinymodules

Shinymodules est constitué de 4 modules permettant d’explorer rapidement un set de données. Filtrer, résumer, télécharger, analyser les performances d’un modèle de régression et monitorer : on trouve dans Shinymodules des fonctionnalités très utiles au quotidien. Bref, un must have !

Compteurs intelligents et tarification dynamique de l’électricité : l’analyse de Datastorm

Dans sa réponse à la consultation de la Commission de régulation de l’énergie, Datastorm partage son analyse sur la mise en place d’une tarification dynamique de l’électricité liée au déploiement des compteurs intelligents.

Toute l'expertise du Groupe ENSAE-ENSAI

Plateau de Saclay
5 Avenue Henry-Le-Chatelier
91120 PALAISEAU - FRANCE

Paris
24 rue Barbès
92120 MONTROUGE - FRANCE