Temporalité dans les données de santé

Slides:



Advertisements
Présentations similaires

Advertisements


Bonne nutrition et sécurité alimentaire et meilleurs moyens d’existence pour les communautés agricoles dans terrains arides Pourquoi cette étude sur des.
ECO1 Introduction à l’économie
REVISION du COURS E = En- Ep = h
Compilation E. RAMAT
Mémoires résistives : Monte Carlo nouvel acte?
Les Moteurs ASynchrones
REGARDS CROISéS SUR LA PROPORTIONNALITE
Fabian Bergès, Elise Maigné, Sylvette Monier-Dilhan et Thomas Poméon
Équipe MAREL novembre 2016 Modelica Un langage pour modéliser et simuler des systèmes dynamiques hybrides
COUR DE TRAITEMENT NUMERIQUE DES SIGNAUX
La suite bureautique OpenOffice.org
Les descentes de charge
African Economic Conference (AEC)
Notions d’éclairagisme pour les ouvrages intérieurs
RES 203 Applications Internet
Un ébranlement sur une corde se propage à la vitesse c=1 cm/s
Projet GEPET-EAU Etude de la résilience et optimisation de la gestion des réseaux de voies navigables dans un contexte de changement climatique.
Laboratoire de Structure du Nucléon
2. Approbation de l’agenda 3. Compte-rendu de la dernière rencontre
Cu2+(aq) Doser ?? Doser une espèce chimique… …efficacement…
La procédure PASAPAS et les procédures utilisateurs
Agrégation SII OPTION ingénierie des Constructions
BASE DE SONDAGE PRINCIPALE (BSP) LES STATISTIQUES AGRICOLES
RELATIONS BIOMÈTRIQUES D'UN CYPRINIDAE ENDÉMIQUE,
FRACTIONS ET NOMBRES DECIMAUX
Microcontrôleur.
mathématiques et physique-chimie au cycle 3
Electrochimie: réactions d’oxydo-réduction
ELECTROTECHNIQUE CM: 10h; TD: 20h; TP: 30h
La masse volumique.
TD 8 – Chaînes de montagnes - Tectonique des plaques

Cinquième Chapitre 2: Solides
TD 7- Réactions minéralogiques et bilans chimiques
Information, Calcul, Communication
Dimitri Zuchowski et Marc-Élie Lapointe
JTED, Novembre 2016, Toulouse
La révolution numérique : comment s’emparer des opportunités sans négliger les dangers ? Virginie Fauvel, Membre du Comité Exécutif d’Allianz France en.
COURS D’INFORMATIQUE INDUSTRIELLE www. massaleidamagoe2015
A M E J Association des Médecins Experts Judiciaires
Module 1: Cinématique SPH3U4C.
ECO1 Introduction à l’économie
Stratégies en matière de plan de sondage et d’échantillonnage
Etalonnage d’une caméra (on parle aussi de calibrage)
Sciences de l’Ingénieur
Objectif : remplacer les tâches Répétitives Pénibles Complexes
PILES ET ACCUMULATEURS - RÉACTIONS D’OXYDORÉDUCTION
Introduction à l’économie Amphi 1 Qu’est ce que l’économie ?
Principe de fonctionnement d'une cellule photo voltaïque
Thème 3 : Défis du XXIe siècle..
Utilisez les flèches de droite et de gauche pour naviguer.
5.1 Systèmes d’équations linéaires
Optique géométrique Laboratoires de physique de 1ère année
Le projet interdisciplinaire CeraR : Céramique archéologique avec R
Les outils Word Les outils Word constituent la base des outils utilisés dans la presque totalité des logiciels applicatifs. Reconnaitre les icones des.
Télémédecine et Diabète de type 1 Le systeme Diabéo
VICTOR HUGO et la SRO Un partenariat ville-hopital en rhumatologie
Maladie d’Ollier / Maffucci Projet de dépistage des gliomes
Les plateformes de simulation au service des GHT et des territoires
Les pratiques en classe, notamment avec le numérique et le jeu.
Le dépistage de la déficience cognitive chez les adultes plus âgés: Recommandations 2015 Groupe d’étude canadien sur les soins de santé préventifs (GECSSP)
Les réformes de la formulation budgétaire en Ouganda
Préparation à l’examen
Une introduction à la démographie (L'étude de la population)
Travaux dirigés d’ Atomistique
Le premier principe de la thermodynamique
Thème 1 : Ondes et Matière.
Transcription de la présentation:

Temporalité dans les données de santé Maxime Wack Camille Nevoret 9 janvier 2018

Introduction Notion de temporalité est primordiale Données rarement ponctuelles Techniques statistiques variées Problématiques soulevées par les entrepôts de données cliniques Temporalité dans les données de santé 09.01.2018

Types de temporalité 1 temps 2 temps n temps n états ∞ temps Temporalité dans les données de santé 09.01.2018

1 temps Temporalité dans les données de santé 09.01.2018

1 temps — Contexte Études épidémiologiques Transversales Descriptives Comparatives Entre deux ou plusieurs groupes Temporalité dans les données de santé 09.01.2018

Rappel test statistique Temporalité dans les données de santé 09.01.2018

1 temps — Techniques Bivarié Statistiques descriptives Statistiques fréquentistes classiques t-test, ANOVA, Chi², etc.  tests de comparaison entre groupes Temporalité dans les données de santé 09.01.2018

1 temps — Techniques Multivarié Régression linéaire Régression logistique Y = β₀1 + β₁x₁ + β₂x₂ + … + βnxn + ε Y = βX + ε Temporalité dans les données de santé 09.01.2018

1 temps — Problématiques Choix du test statistique Valeurs manquantes Temporalité dans les données de santé 09.01.2018

1 temps — Exemples Variables numériques : comparaison âge Variables catégorielles : comparaison CSP Temporalité dans les données de santé 09.01.2018

Exemples — Prérequis install.packages("tidyverse") library(tidyverse) library(lme4) library(lmerTest) library(TraMineR) library(TSA) library(astsa) library(zoo) library(Rssa) library(survival) Temporalité dans les données de santé 09.01.2018

Ceci n’est pas un pipe. %>% Provenant des packages magrittr et dplyr « sucre syntaxique »  Permet de chaîner les instructions en un pipeline x %>% f f(x) > data %>% select(var1, var3) %>% filter(var1 > 5) %>% summary Temporalité dans les données de santé 09.01.2018

1 temps — Exemples # Data data(iris) data(mtcars) mtcars %>% mutate_at(vars(am, cyl, vs, gear), factor) -> mtcars Temporalité dans les données de santé 09.01.2018

1 temps — Exemples boxplot(mpg ~ am, data = mtcars) Temporalité dans les données de santé 09.01.2018

1 temps — Exemples ggplot(mtcars) + aes(x = am, y = mpg) + geom_boxplot() + geom_point(alpha = .5) Temporalité dans les données de santé 09.01.2018

1 temps — Exemples # Paramétrique t.test(mpg ~ am, data = mtcars, var.equal = T) oneway.test(mpg ~ am, data = mtcars, var.equal = T) # Non-paramétrique wilcox.test(mpg ~ am, data = mtcars) Temporalité dans les données de santé 09.01.2018

1 temps — Exemples iris %>% ggplot() + aes(x = Species, y = Sepal.Width) + geom_violin() + geom_point(position = "jitter", alpha = .5) Temporalité dans les données de santé 09.01.2018

1 temps — Exemples iris %>% ggplot() + aes(x = Petal.Length) + geom_histogram(data = iris %>% select(-Species)) + geom_histogram(aes(fill = Species)) + facet_grid(~Species) Temporalité dans les données de santé 09.01.2018

1 temps — Exemples # Paramétrique oneway.test(Sepal.Width ~ Species, data = iris) # Non-paramétrique kruskal.test(Sepal.Width ~ Species, data = iris) Temporalité dans les données de santé 09.01.2018

1 temps — Exemples plot(mtcars) Temporalité dans les données de santé 09.01.2018

1 temps — Exemples # Régression linéaire fit <- lm(mpg ~ am, data = mtcars) summary(fit) plot(fit) fit <- lm(mpg ~ cyl + disp + hp + drat + wt + vs + am, data = mtcars) # Régression logistique fit <- glm(am ~ mpg + drat + wt, data = mtcars, family = "binomial") Temporalité dans les données de santé 09.01.2018

2 temps Temporalité dans les données de santé 09.01.2018

2 temps — Contexte Études longitudinales : État initial – état final cas-témoin cohorte exposé-non exposé essai randomisé État initial – état final 2 mesures du même paramètre chez les mêmes patients Temporalité dans les données de santé 09.01.2018

2 temps — Techniques Bivarié Statistiques descriptives tests appariés étude de l’évolution (différence pour valeurs numériques) Temporalité dans les données de santé 09.01.2018

2 temps — Techniques Multivarié Régression linéaire Régression logistique Temps comme co-facteur Y modélisant l’évolution Temporalité dans les données de santé 09.01.2018

2 temps — Problématiques Variable d’intérêt non numérique Perdus de vue Calibration de la mesure Temporalité dans les données de santé 09.01.2018

2 temps — Exemples Variables numériques : évolution cholestérolémie avant et après traitement Variables catégorielles : évolution statut tabagique avant et après campagne de communication Temporalité dans les données de santé 09.01.2018

2 temps — Exemples # Data data(ChickWeight) Temporalité dans les données de santé 09.01.2018

2 temps — Exemples ChickWeight %>% filter(Time %in% c(0, 2)) %>% ggplot() + aes(x = Time, y = weight, group = Chick, color = Diet) + geom_point() + geom_line() Temporalité dans les données de santé 09.01.2018

2 temps — Exemples t.test(ChickWeight$weight[ChickWeight$Time == 0], paired = T) ChickWeight %>% filter(Time %in% c(0, 2)) %>% group_by(Chick) %>% summarise(weightDiff = last(weight) - first(weight), Diet = first(Diet)) -> deuxTemps Temporalité dans les données de santé 09.01.2018

2 temps — Exemples deuxTemps %>% ggplot() + aes(x = weightDiff, fill = Diet) + geom_density(alpha = .25) #, position = "fill") # position = "stack" "fill" Temporalité dans les données de santé 09.01.2018

2 temps — Exemples oneway.test(weightDiff ~ Diet, data = deuxTemps) kruskal.test(weightDiff ~ Diet, data = deuxTemps) Temporalité dans les données de santé 09.01.2018

2 temps variables — Contexte Études dites de survie État initial – survenue d’un évènement Données censurées Temporalité dans les données de santé 09.01.2018

2 temps variables — Techniques Bivarié Log-rank Courbe de Kaplan-Meier Temporalité dans les données de santé 09.01.2018

2 temps variables — Techniques Multivarié Modèle de régression à risque proportionnel Modèle de Cox λ(t|Xi) = λ0(t) exp(Xi·β) Temporalité dans les données de santé 09.01.2018

2 temps variables — Problématiques Perdus de vue Caractérisation de l’évènement Temporalité dans les données de santé 09.01.2018

2 temps variables — Exemples Survie après diagnostic de cancer du poumon «Survie» avant récidive de tachycardie ventriculaire Temporalité dans les données de santé 09.01.2018

2 temps variables — Exemples # Data data(lung) lung$Surv <- Surv(lung$time, lung$status) Temporalité dans les données de santé 09.01.2018

2 temps variables — Exemples survfit(Surv ~ 1, data = lung) -> fit plot(fit) Temporalité dans les données de santé 09.01.2018

2 temps variables — Exemples survfit(Surv ~ sex, data = lung) -> fit plot(fit, conf.int = T, col = c("blue", "red")) legend("topright", legend = c("Hommes", "Femmes"), col = c("blue", "red"), lty = 1) Temporalité dans les données de santé 09.01.2018

2 temps variables — Exemples survdiff(Surv ~ sex, data = lung) coxph(Surv ~ sex + age + ph.ecog + ph.karno + meal.cal + wt.loss, data = lung) -> fit cox.zph(fit) plot(cox.zph(fit)) Temporalité dans les données de santé 09.01.2018

n temps Temporalité dans les données de santé 09.01.2018

n temps — Contexte Études longitudinales prospectives : cohorte essai randomisé État initial – états intermédiaires – état final n mesures du même paramètre chez les mêmes patients Temporalité dans les données de santé 09.01.2018

n temps — Techniques ANOVA à mesures répétées Modèle mixte associe effets fixes et effets aléatoires Y = βX + uZ + ε Variable aléatoire = variable dont on ne connaît pas toutes les valeurs possibles Temporalité dans les données de santé 09.01.2018

n temps — Problématiques Temps de mesures fixes Mesure à chaque point Temporalité dans les données de santé 09.01.2018

n temps — Exemples Évolution du poids/triglycérides au cours d’un régime alimentaire Évolution des notes au cours d’un cursus universitaire Temporalité dans les données de santé 09.01.2018

n temps — Exemples ChickWeight %>% ggplot() + aes(x = Time, y = weight, group = Chick, color = Diet) %>% geom_line(alpha = .5) + geom_smooth(aes(x = Time, y = weight, color = Diet)) Temporalité dans les données de santé 09.01.2018

n temps — Exemples ChickWeight %>% ggplot() + aes(x = Time, y = weight, group = Chick, color = Diet) %>% geom_line(alpha = .5) + geom_smooth(aes(x = Time, y = weight, color = Diet)) Temporalité dans les données de santé 09.01.2018

n temps — Exemples lmer(weight ~ Diet + (1|Time) + (1|Chick), data = ChickWeight) -> fit summary(fit) plot(fit) Temporalité dans les données de santé 09.01.2018

n états Temporalité dans les données de santé 09.01.2018

n états — Contexte Données collectées en continu Entrepôts de données cliniques Données du SNDS (Système National de Données de Santé) Temporalité dans les données de santé 09.01.2018

n états — Techniques Modèle de survie avec multi-états et risques compétitifs Réseaux bayésiens Étude de trajectoires Temporalité dans les données de santé 09.01.2018

n états — Problématiques États doivent être catégoriels Temporalité dans les données de santé 09.01.2018

n états — Exemples Trajectoires de soin États successifs dans une maladie chronique Temporalité dans les données de santé 09.01.2018

n états — Exemples library(TraMineR) library(cluster) ## Data data(mvad) Temporalité dans les données de santé 09.01.2018

n états — Exemples ## Description mvad.seq <- seqdef(mvad, 17:86, xtstep = 12) plot(mvad.seq, 1:20) seqdplot(mvad.seq) Temporalité dans les données de santé 09.01.2018

n états — Exemples ## Clustering mvad.om <- seqdist(mvad.seq, method = "OM", sm = "TRATE") clusterward <- agnes(mvad.om, diss = T, method = "ward") mvad.cl <- cutree(clusterward, k = 4) cl.lab <- factor(mvad.cl, labels = paste("Cluster", 1:4)) Temporalité dans les données de santé 09.01.2018

n états — Exemples seqdplot(mvad.seq, group = cl.lab) Temporalité dans les données de santé 09.01.2018

n états — Exemples seqfplot(mvad.seq, group = cl.lab) Temporalité dans les données de santé 09.01.2018

n états — Exemples seqmsplot(mvad.seq, group = cl.lab) Temporalité dans les données de santé 09.01.2018

n états — Exemples ## Analyse mvad.ent <- seqient(mvad.seq) lm.ent <- lm(mvad.ent ~ male + funemp + gcse5eq, data = mvad) summary(lm.ent) Temporalité dans les données de santé 09.01.2018

∞ temps Temporalité dans les données de santé 09.01.2018

∞ temps — Contexte Mesures biologiques : Données de moniteurs : ECG Température corporelle Sécrétion hormonale … Données de moniteurs : ECG EEG Temporalité dans les données de santé 09.01.2018

∞ temps — Contexte Suivi du nombre de cas d’une pathologie Données de l’Institut de Veille Sanitaire Temporalité dans les données de santé 09.01.2018

∞ temps — Contexte Analyse d’un signal Prévision Comparaison de série Aide au diagnostic Temporalité dans les données de santé 09.01.2018

∞ temps — Contexte Evènement : Mortalité cardiovalculaire Période de 10 ans 508 points de mesures 1 point de mesure correspond à une moyenne sur 6 jours Données libres d’accès, R package astsa Temporalité dans les données de santé 09.01.2018

∞ temps — Contexte Etude préliminaire des données (fenêtre temporelle, nombre d’observation, visualisation des données ….) # Data data(cmort) is.ts(cmort) #On vérifie qu'il s'agit bien d'un objet série temporelle start(cmort) #Première observation end(cmort) #Dernière observation frequency(cmort) #Fréquence des observations deltat(cmort) #Intervalle de temps entre deux observations length(cmort) #Nombre de points head(cmort) #Visualisation des premier éléments de l'objet cmort tsplot(cmort) #Visualisation graphique de la série Temporalité dans les données de santé 09.01.2018

∞ temps — Techniques Méthode de décomposition Principe : Une série temporelle peut être décomposé suivant 3 composantes : Tendance 𝑚 𝑡 Saisonnalité 𝑠 𝑡 Bruit 𝜀 𝑡 Tendance : Suite déterministe, Modélise l’évolution moyenne « à long terme » Saisonnalité : Suite déterministe et périodique, Modélise les fluctuations déterministes à court terme et récurrent Bruit : Suite aléatoire, Modélise les fluctuations aléatoire Temporalité dans les données de santé 09.01.2018

∞ temps — Techniques Méthode de décomposition Différents modèles à partir de cette décomposition Modèle additif 𝑌 𝑡 = 𝑚 𝑡 + 𝜀 𝑡 𝑌 𝑡 = 𝑚 𝑡 + 𝑠 𝑡 + 𝜀 𝑡 Modèle multiplicatif 𝑌 𝑡 = 𝑚 𝑡 𝜀 𝑡 𝑌 𝑡 = 𝑠 𝑡 𝜀 𝑡 Modèle hybride 𝑌 𝑡 = 𝑚 𝑡 𝑠 𝑡 + 𝜀 𝑡 Temporalité dans les données de santé 09.01.2018

∞ temps — Techniques Méthode de décomposition Temporalité dans les données de santé 09.01.2018

∞ temps — Techniques Méthode de décomposition Test de tendance de Mann-Kendall : H0 : « il n'y a pas de tendance » Test de stationnarité : Teste si la série est stationnaire ie la série à le même comportement au temps t ou au temps t+k Test de blancheur : Teste si la série est un bruit blanc ie Moyenne nulle Variance σ² Covariance nulle Temporalité dans les données de santé 09.01.2018

∞ temps — Exemple Méthode de décomposition Tester l’existence d’une tendance sur les données cmort Décomposer les données selon un modèle additif (puis multiplicatif) MannKendall(cmort) #test de tendance : significatif donc il existe bien une tendance D_additif1 = decompose(cmort, "additive") plot(D_additif1) D_additif2 = stl(cmort, "periodic") plot(D_additif2) D_multiplicatif = decompose(cmort, "multiplicative") plot(D_multiplicatif) Temporalité dans les données de santé 09.01.2018

∞ temps — Exemple Méthode de décomposition Recomposer le signal avec et sans bruit #Fonction permettant d’avoir le graphique graph = function(var){ plot(var, lwd = 2, col = "#FFC000", main = substitute(var)) lines(cmort,lty = 2) } cmort_ad1 = D_additif1$trend + D_additif1$seasonal + D_additif1$random graph(cmort_ad1) cmort_ad1_ssrandom = D_additif1$trend + D_additif1$seasonal graph(cmort_ad1_ssrandom) Temporalité dans les données de santé 09.01.2018

∞ temps — Technique Autocorrélation et Modélisation Autocorrélation partielle : Corrélation de la série entre 𝑌 𝑡 et 𝑌 𝑡−𝑘 en retirant l’influence des variables ( 𝑌 𝑡−1 , 𝑌 𝑡−2 ,… 𝑌 𝑡−𝑘+1 ) Autocorrélation : Corrélation de la série avec elle-même décalé de k périodes (Corr( 𝑌 𝑡 , 𝑌 𝑡−𝑘 )) acf(cmort) pacf(cmort) Temporalité dans les données de santé 09.01.2018

∞ temps — Technique Autocorrélation et Modélisation Pour pouvoir faire une prévision, il est nécessaire de modéliser une série temporelle. Différentes modélisations sont possibles. Pour déterminer le modèle adéquate on se repose sur les propriétés de la série et sur les autocorrélogrammes Processus AR Processus MA Processus ARMA (stationnaire, sans saisonnalité) Processus SARMA (stationnaire, avec saisonnalité) Processus ARIMA (non stationnaire, sans saisonnalité) Processus SARIMA (non stationnaire, avec saisonnalité) Processus ARCH …. Temporalité dans les données de santé 09.01.2018

∞ temps — Exemple Autocorrélation et Modélisation Temporalité dans les données de santé 09.01.2018

∞ temps — Technique Analyse spectrale Détermination de la période : autocorrélation ou périodogramme de Fourrier Fréquence = 0.01953125 Période Période Temporalité dans les données de santé 09.01.2018

∞ temps — Technique Analyse spectrale Lissage par moyenne glissante Lissage par noyaux Temporalité dans les données de santé 09.01.2018

∞ temps — Exemple Analyse spectrale Déterminer la période de la série cmort Tracer le lissage par moyenne mobile p = periodogram(cmort) Periode = 1/p$freq[which.max(p$spec)] plot(cmort, ylab = "cmort", main = "Lissage par moyenne glissante") lines(filter(cmort, rep(1/20, 20), side = 1), col = "#FFC000", lwd = 2) lines(filter(cmort, rep(1/12, 12), side = 1), col = "red", lwd = 2) lines(filter(cmort, rep(1/50, 50), side = 1), col = "indianred4", lwd = 2) legend("topright", col = c("red", "#FFC000", "indianred4"), legend = c("1/12", "1/20", "1/100"), lwd = c(2,2,2)) Temporalité dans les données de santé 09.01.2018

∞ temps — Exemple Analyse spectrale Tracer les lissages par noyau k1 <- kernel("daniell", 10) k2 <- kernel("daniell", 5) k3 <- kernel("daniell", 30) x1 <- kernapply(cmort, k1) x2 <- kernapply(cmort, k2) x3 <- kernapply(cmort, k3) plot(cmort, main = "Lissage par noyaux") lines(x1, col = "#FFC000", lwd = 2) lines(x2, col = "red", lwd = 2) lines(x3, col = "indianred4", lwd = 2) legend("topright", col = c("red", "#FFC000", "indianred4"), legend = c("5", "10", "30"), lwd = c(2,2,2)) Temporalité dans les données de santé 09.01.2018

∞ temps — Technique Série temporelle multiple Test de Granger : Causalité au sens de Granger On veux savoir si la variable Y1 cause la variable Y2 ie si la connaissance des valeurs passées de Y1 peut améliorer la prévision de Y2. Temporalité dans les données de santé 09.01.2018

∞ temps — Exemple Analyse spectrale Tester la causalité entre les données cmort et des données environnementales grangertest(cmort ~ lap[,4]) #Température grangertest(cmort ~ lap[,5]) #Humidité relative grangertest(cmort ~ lap[,6]) #Monoxyde de carbone grangertest(cmort ~ lap[,7]) #Dioxyde de soufre grangertest(cmort ~ lap[,8]) #Dioxyde d'azote grangertest(cmort ~ lap[,9]) #Hydrocarbure grangertest(cmort ~ lap[,10]) #Ozone grangertest(cmort ~ lap[,11]) #Particule Temporalité dans les données de santé 09.01.2018

Merci de votre attention ! maximewack@free.fr www.maximewack.com @wack_maxime https://github.com/MaximeWack