1 Introduction

La procédure GIMME (Group Iterative Multiple Model Estimation ; pour des tutoriels généraux, voir Adriene M. Beltz & Gates (2017) et S. T. Lane & Gates (2017a)) trouve son orgine dans des réflexions quant à la meilleure manière de traiter des données issues d’imagerie à résonance magnétique fonctionnelle (IRMf) dans lesquelles on enregistre, de manière dynamique l’activation de telle ou telle région du cerveau. L’une des questions principales est alors de savoir quelle région du cerveau a une influence sur telle autre région.

Pour analyser de telles données, il existe de nombreuses méthodes (plus d’une trentaine sont par exemple recensées par Smith et al. (2011)). Parmi celles-ci, on trouve notamment (Gates, Molenaar, Hillary, Ram, & Rovine, 2010 ; T. Henry & Gates, 2017) :

  • les modèles d’équations structurales (SEM) permettent de mettre en évidence les pistes causales sur la base des corrélations contemporaines entre les séries temporelles d’activation de différentes régions. La question de la direction de la causalité est alors évidemment difficile à établir ;

  • la modélisation causale dynamique (DCM : Dynamic Causal Modeling) issue de modèle linéaire général qui utilise des équations différentielles déterministes (Friston, 2007) ;

  • les auto-régressions multivariées (VAR : Vector AutoRegressive ; voir par exemple L. F. Bringmann et al. (2016) pour une application sur des données psychologiques) qui sont une avancée importante, notamment parce qu’elles prennent en compte les dépendances séquentielles (auto-corrélations et corrélations croisées décalées) et que l’ordre temporel permet de faire des inférences causales. L’approche VAR est une amélioration par rapport à l’approche DCM qui nécessite de sélectionner a priori les liens directionnels.

  • l’approche des modèles d’équations structurales unifiés (uSEM) de Kim, Zhu, Chang, Bentler, & Ernst (2007) qui permet de modeler conjointement les relations contemporaines et décalées de différentes séries temporelles.

Comme on le verra dans la suite du document, la procédure GIMME possède plusieurs avantages sur ces autres méthodes :

  • des études de simulation (Smith et al., 2011) montrent que GIMME est la procédure la plus efficace pour détecter la présence d’un lien ;

  • GIMME permet de mettre en évidence la direction des effets, tant dans les relations décalées (relations entre entre variable mesurée au moment \(t\) et une variable mesurée au moment \(t+1\)) que dans les relations contemporaines (relations entres variables mesurées au même moment temporel) ;

  • GIMME n’assume pas l’homogénéité des processus (i.e. pas de postulat d’ergodicité ; cf. P. C. M. Molenaar (2004)), c’est-à-dire que la méthode prend en compte explicitement le fait que les réseaux peuvent être différents d’une personne à une autre.

La procédure GIMME est actuellement implémentée dans le package gimme (S. Lane et al., 2019) de R.

2 Les modèles d’équations structurales unifiés (uSEM)

2.1 Description générale

Kim et al. (2007) proposent d’appeler uSEM (Unified Structural Equation Models) l’approche combinant les modèles SEM traditionnels et des modèles VAR1. Il s’agit donc de pouvoir réaliser l’analyse de séries temporelles dans le cadre des modèles structuraux (Gates, Lane, Varangis, Giovanello, & Guiskewicz, 2017, p. 131). Cette modélisation conjointe est particulièrement importante, car si on estime les effets contemporains sans tenir compte des effets décalés (cas des modèles SEM traditionnels) ou l’inverse (cas des modèles VAR), on obtient des estimations qui peuvent être sérieusement biaisées (voir Gates et al., 2017, p. 1121 pour un exemple)2.

Le modèle s’écrit (Gates et al. (2017)) :

\[\eta_t = A\eta_t + \Phi\eta_{t-1} + \zeta_t\]

où :

  • \(\eta\) est la série temporelle observée ;
  • \(A\) est la matrice des effets contemporains (la diagonale est fixée à zéro, car une variable ne peut pas s’influencer elle-même au même moment) ;
  • \(\Phi\) est la matrice des effets décalés (les coefficients auto-régressifs sont sur la diagonale) ;
  • \(\zeta\) est le résidu de chaque variable au temps \(t\) (white noise process).

Le modèle peut se représenter de la manière suivante, qui détaille toutes les variables (y compris les erreurs de mesure des variables qui sont fixées à zéro) :

**Représentation détaillée d'un modèle uSEM [@gates_unsupervised_2017, p. 132]**

Représentation détaillée d’un modèle uSEM (Gates et al., 2017, p. 132)

Le plus souvent, on se contente d’une représentation simplifiée, qui se rapproche des conventions utilisées dans les modèles en réseaux : le modèle de mesure n’apparaît pas, la largeur des flèches reflète la taille des coefficients , les relations contemporaines sont représentées par des traits pleins et les effets décalés par des traits pointillés.

**Représentation succincte d'un modèle uSEM [@gates_unsupervised_2017, p. 132]**

Représentation succincte d’un modèle uSEM (Gates et al., 2017, p. 132)

Traditionnellement (S. T. Lane & Gates, 2017b), les modèles uSEM sont appliqués soit au niveau de chaque individu (avec le risque de mettre en évidence des structures qui contiennent beaucoup de bruit), soit aux données agrégées pour l’ensemble des individus (avec le risque, en cas de processus hétérogènes, que la structure mise en évidence ne corresponde à aucun individu).

2.2 Les données analysées

La matrice de données à analyser pour un uSEM est une matrice block-Toeplitz (Gates et al., 2017) qui est une matrice de covariances (donc de forme diagonale) comprenant à la fois les covariances contemporaines (lag 0) entre les variables et les covariances décalées (on se limite ici à un décalage de 1 moment temporel : entre \(t\) et \(t+1\)). La matrice des covariances contemporaines est une matrice symétrique, triangulaire (matrice de couleur rouge dans la figure ci-dessous) ; la matrice des covariances décalées est une matrice rectangulaire (matrice verte), car la covariance entre \(v1_t\) et \(v2_{t+1}\) n’est pas égale à la covariance entre \(v2_{t}\) et \(v1_{t+1}\). Pour obtenir une matrice triangulaire (nécessaire pour estimer un modèle SEM) à partir de ces deux matrices, il faut répéter la matrice triangulaire ; la matrice block-Toeplitz qui en résulte comporte donc de l’information redondante qu’il faut gérer par des contraintes sur les paramètres lors de l’estimation du modèle.

**Représentation schématique d'une matrice *block-Toeplitz***

Représentation schématique d’une matrice block-Toeplitz

2.3 Les paramètres d’un uSEM

La matrice \(B\) (notation LISREL) ci-dessous illustre, pour un modèle avec quatre variables, les paramètres estimés les plus importants du modèle3.

\[B = \begin{pmatrix} & V1_{t-1} & V2_{t-1} & V3_{t-1} & V4_{t-1} & V1_{t} & V1_{t} & V3_{t} & V4_{t} \\ V1_{t-1} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ V2_{t-1} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ V3_{t-1} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ V4_{t-1} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ V1_{t} & \beta_{1,5} & \beta_{2,5} & \beta_{3,5} & \beta_{4,5} & 0 & \beta_{6,5} & \beta_{7,5} & \beta_{8,5} \\ V2_{t} & \beta_{1,6} & \beta_{2,6} & \beta_{3,6} & \beta_{4,6} & \beta_{5,6} & 0 & \beta_{7,6} & \beta_{8,6} \\ V3_{t} & \beta_{1,7} & \beta_{2,7} & \beta_{3,7} & \beta_{4,7} & \beta_{5,7} & \beta_{6,7} & 0 & \beta_{8,7} \\ V4_{t} & \beta_{1,8} & \beta_{2,8} & \beta_{3,8} & \beta_{4,8} & \beta_{5,8} & \beta_{6,8} & \beta_{7,8} & 0 \\ \end{pmatrix}\]

Au total, cette matrice comporte (pour quatre variables) 64 paramètres répartis en quatre carrés (cf. figure ci-dessous) de 16 paramètres chacun (Gates et al., 2010). Le carré en bas à gauche contient les coefficients décalés (matrice \(\Phi\)). Par exemple, le coefficient \(\beta_{1,6}\) correspond à l’influence de \(V1\) au moment \(t-1\) sur \(V2\) au moment \(t\). Les éléments du carré en haut à droite sont tous fixés à zéro, car ils correspondraient à des effets logiquement incompatibles avec l’enchaînement temporel (par exemple l’influence de \(V1\) au moment \(t\) sur \(V2\) au moment \(t-1\)). Le carré en bas à droite correspond aux influences contemporaines (matrice \(A\)).

**Les principaux paramètres estimés d'un *uSEM* : exemple avec quatre variables**

Les principaux paramètres estimés d’un uSEM : exemple avec quatre variables

Il est très important de noter que la matrice \(A\) contient des coefficients de piste et qu’il y a à la fois un coefficient qui exprime l’influence causale d’une variable sur une autre et inversement et ces deux coefficients ne sont pas identiques (\(\beta_{7,6} \neq \beta_{6,7}\)). La diagonale de cette sous-matrice est fixée à 0, parce qu’au même moment temporel, une variable ne peut pas s’influencer elle-même. Le modèle oblige à estimer une piste causale entre deux variables contemporaines. Il n’est pas possible d’estimer une simple corrélation. La relation entre deux variables contemporaines se traduit donc nécessairement par la libération des deux paramètres dans la matrice \(\Phi\) (Gates & Molenaar, 2012, p. 317). Enfin, la sous-matrice en haut à gauche est totalement redondante avec la matrice en bas à droite : ses coefficients sont donc fixés à 0.

L’estimation de coefficients contemporains dirigés est donc une caractéristique importante de la modélisation uSEM. Ce type de relations a priori impossibles peut toutefois être observé pour deux raisons (S. T. Lane, Gates, Pike, Beltz, & Wright, 2019) :

  • l’effet d’une variable sur une autre se produit dans un délai plus court que celui programmé pour le recueil des données ;

  • il existe un effet décalé non mesuré sur deux variables ; cet effet non mesuré ne peut apparaître que sous forme d’une piste contemporaine.

Le premier cas de figure est courant avec l’analyse de données issues d’IRMf où le taux d’échantillonnage des données est réalisé à un taux plus lent que le phénomène sous-jacent. Les chercheurs qui analysent ces données accordent donc le plus souvent davantage d’importance à ces relations contemporaines dirigées (e.g. Adriene M. Beltz & Gates (2017); T. R. Henry et al. (2019)). C’est aussi souvent le cas lorsqu’on s’intéresse aux relations entre données psychologiques et physiologiques (pour un exemple, voir Bouwmans et al. (2018)). Les coefficients décalés ne servent alors qu’à obtenir des estimations non biaisées des coefficients contemporains (Adriene M. Beltz & Gates, 2017).

2.4 L’estimation des paramètres : la recherche automatique d’un modèle optimal

Une caractéristique très importante de l’approche uSEM est qu’elle permet de trouver un modèle optimal des relations contemporaines et décalées sans qu’il soit nécessaire de spécifier a priori les pistes causales entre les différentes variables. Et en effet, Gates et al. (2010) proposent d’utilser les tests multiplicatifs de Lagrange (que l’on connaît plus communément, dans les modèles structuraux, sous l’expression “indices de modification”) pour dériver une solution optimale de manière automatique. Comme les indices de modification se distribuent asymptotiquement selon une loi du \(\chi²\), on connait la significativité de chacun des indices (Gates et al., 2017, p. 132).

La procédure consiste à partir d’un modèle nul (tous les paramètres de la matrice \(B\) sont fixés à 0). Les multiplicateurs de Lagrange (indices de modification) sont alors calculés pour tous les paramètres non fixés à 0 de la matrice \(B\) (Gates et al., 2010). Le paramètre qui a l’indice de modification le plus élevé est libéré et estimé. Les indices de modification sont calculés sur ce nouveau modèle et le paramètre de la matrice \(B\) le plus élevé est alors libéré. La procédure se poursuit jusqu’à ce qu’aucun indice de modification ne soit significatif à un seuil prédéterminé.

La procédure de recherche automatique peut conduire à ce que certains coefficients libérés dans les premières phases deviennent non significatifs lorsque plusieurs autres coefficients sont estimés. Il est possible, dans une dernière phase de contraindre les valeurs de ces paramètres à zéro et à vérifier que les indicateurs d’adéquation restent satisfaisants. Selon les auteurs (Gates et al., 2010, p. 1120), le modèle uSEM présente une alternative à la causalité de Granger qui est pertinent à la fois pour les relations contemporaines et décalées. Ceci conduit à pouvoir déterminer non seulement des coefficients dirigés (causaux) pour la partie décalée du modèle, mais aussi pour la partie contemporaine.

L’estimation des paramètres d’un modèle uSEM est possible avec n’importe quel logiciel ou package SEM standard (Narayanan, 2012).

3 La recherche d’un modèle au niveau du groupe tenant compte de l’hétérogénétité au niveau des individus : la procédure GIMME

3.1 Description de la procédure

La présence d’hétérogénéité dans les processus au niveau des individus rend très délicate la question de leur agrégation. En analysant des données agrégées, il est possible que le modèle obtenu ne corresponde à aucun des individus ayant servi à sa construction. A l’inverse, si on s’inscrit dans une démarche bottom-up dont le point de départ est constitué par une description des processus observés au niveau de chaque individu, ceux-ci risquent d’être plus ou moins contaminés par de l’erreur qui peut faire en sorte que l’on considère différents des processus qui sont pourtant similaires (Zelle, Gates, Fiez, Sayette, & Wilson, 2017).

Gates et Molenaar proposent en 2012 (Gates & Molenaar, 2012) une démarche permettant de répondre à ces deux difficultés : la procédure GIMME (Group Iterative Multiple Model Estimation) qui va permettre de modéliser “de manière simultanée l’homogénéité et l’hétérogénéité” (Adriene M. Beltz, Moser, Zhu, Burt, & Klump, 2018, p. 9).

La logique de la technique est assez simple (Gates & Molenaar, 2012, p. 311). GIMME cherche tout d’abord à identifier un modèle de groupe (i.e. un modèle commun). Cette structure commune (si elle existe, cf. Gates et al. (2017), p. 144 ; Adriene M. Beltz & Gates (2017)) est obtenue en retenant les coefficients qui vont améliorer l’adéquation de la majorité des modèles au niveau individuel. En utilisant comme critère la majorité plutôt que la moyenne ou d’autres indicateurs équivalents, on espère différencier le signal du bruit.

Concrètement, la procédure commence avec un modèle nul (tous les coefficients fixés à zéro) pour chaque individu ce qui permet d’obtenir les indices de modification. Les indices de modification significatifs au seuil de 0.014 sont pris en compte. Pour le modèle au niveau du groupe, on libère le coefficient dont l’indice de modification est significatif pour le plus grand nombre d’individus5. Le coefficient est alors libéré pour tous les individus et la procédure est réitérée jusqu’à une certaine valeur seuil. Celle-ci correspond à la proportion d’individus chez lesquels un nouvel indice de modification est significatif. Cette valeur seuil doit être fixée par le chercheur. Si la valeur seuil est fixée à 75%, cela signifie que la procédure itérative s’arrête si 75% des individus n’ont pas une même piste avec un indice de modification significatif (au seuil de p < .01). Le recours à un seuil exigeant (comme 75%) semble permettre de mieux séparer le signal du bruit (Gates et al., 2017, p. 133)6.

Dans une seconde étape, le modèle de groupe est simplifié en enlevant tous les coefficients qui ne sont plus acceptables en fonction du critère seuil fixé. Par exemple, à la première itération, un coefficient \(\beta\) a pu être libéré (75% des individus ont un indice de modification significatif pour ce coefficient). Mais la libération d’autres coefficients dans les itérations suivantes peut conduire ce coefficient \(\beta\) à ne plus être significatif chez certains individus. Si le nombre d’individus chez lesquels le coefficient est significatif est inférieur au seuil fixé (75% par exemple), alors le coefficient est supprimé (i.e. fixé à zéro) dans le modèle au niveau du groupe.

Dans la troisième étape, les modèles individuels sont établis de manière semi-confirmatoire. La procédure débute non pas avec un modèle nul, mais avec le modèle construit au niveau du groupe. Cette procédure permet (Gates et al., 2017, p. 133) d’améliorer de manière très importante la récupération de la direction causale correcte des pistes au niveau individuel. Ensuite, les coefficients sont libérés de manière itérative en fonction de la valeur des indices de modification. La procédure s’arrête dès lors qu’au moins deux indicateurs classiques d’adéquation sont satisfaisants (RMSEA et SRMR < 0.05 ; NFI et CFI > 0.95), même s’il reste des indices de modification significatifs. Cela conduit d’une part à des modèles plus parcimonieux et d’autre part à diminuer le risque de capitaliser sur le hasard (Gates et al. (2017), p. 133). In fine, les indicateurs d’adéquation des modèles individuels sont généralement très bons étant donné le caractère itératif des estimations guidées par les données. Quelques exceptions peuvent toutefois exister, notamment lorsque les séries temporelles sont courtes (Adriene M. Beltz & Gates, 2017) et/ou lorsqu’il existe peu de covariations entre les variables.

Enfin, dans une dernière étape, les coefficients non significatifs au niveau individuel et non présents au niveau du groupe sont supprimés (fixés à zéro). Autrement dit, les coefficients présents au niveau individuel ne sont pas forcément présents dans le modèle de groupe ; mais les coefficients présents au niveau du groupe sont forcément estimés dans tous les modèles individuels, même s’ils ne sont pas significatifs. Et l’intensité du coefficient dans le modèle de groupe est alors obtenue par la moyenne des valeurs des coefficients estimés pour chaque individu.

La figure suivante résume la procédure :

**Résumé de la procédure [@beltz_network_2017, p. 313]**

Résumé de la procédure (Adriene M. Beltz & Gates, 2017, p. 313)

La logique de la procédure qui vient d’être décrite fait de GIMME une approche exploratoire, “guidée par les données” (Bouwmans et al., 2018). Mais une approche confirmatoire est tout à fait possible (T. R. Henry et al., 2019) en contraignant au départ de l’agorithme toutes (approche confirmatoire totale) ou certaines (approche semi-confirmatoire) des valeurs de certains coefficients et en regardant l’adéquation du modèle testé (approche confirmatoire totale) avec les données ou en comparant l’adéquation de différents modèles (approche semi-confirmatoire) (Gates et al., 2010).

3.2 GIMME et mlVAR

La procédure mlVAR (multilevel vector auto-regression) est une autre approche permettant d’analyser des séries temporelles d’un groupe de personnes (L. F. Bringmann et al., 2016 , 2013 ; Epskamp, Waldorp, Mõttus, & Borsboom, 2018b) implémenté dans le package mlvar disponible dans R (Epskamp, Deserno, & Bringmann, 2018a). Il existe toutefois plusieurs différences entre les deux approches.

La plus importante (e.g. Foster & Beltz (2018)) est que mlVAR, le modèle élaboré au niveau du groupe est un modèle moyen et les différences entre individus sont considérés comme des déviations par rapport à ce modèle moyen. Dans GIMME, le modèle au niveau du groupe est un modèle commun à la majorité (ou à la totalité des personnes). Le modèle du groupe émerge nécessairement dans mlVAR ; il est possible qu’il n’existe pas dans GIMME si les différences inter-individuelles sont trop importantes. Cette constatation conduisent Bouwmans et al. (2018) à écrire (p. 166) : “Thus, GIMME determines group-level effects from person-specific models emphasizing heterogeneity, whereas multilevel models determine person-specific effects from group averages emphasizing homogeneity” et Adriene M. Beltz et al. (2018) à noter, de manière quelque peu ironique (p. 731) : " (…) ‘average’ people do not walk into clinics; individuals do“.

Il en découle (Gates & Molenaar, 2012, p. 312) que la distribution des valeurs d’un coefficient qui n’est pas présent dans le modèle de groupe va probablement être bimodale. Si un coefficient n’est pas dans le modèle de groupe, c’est que sa valeur est proche de zéro chez une majorité d’individus (d’où un pic de la distribution autour de 0) ; mais il y aura aussi un certain nombre d’individus chez lesquels ce coefficient sera significativement différent de zéro, d’où un autre pic de la distribution. Or, dans les modèles multi-niveaux, la distribution des paramètres est supposée être normale, pas bi-modale.

On peut noter aussi, avec Adriene M. Beltz & Gates (2017), que dans GIMME, les coefficients des relations décalées sont estimés de manière simultanée avec les coefficients des relations contemporaines alors que dans mlVAR, on estime d’abord les relations décalées pour estimer a posteriori les relations contemporaines sur la base des résidus des régressions décalées. Les auteurs avancent que ces derniers résultats sont alors dépendants de l’ordre dans lequel sont introduites les variables dans le modèle, un problème qui n’existe pas avec GIMME.

Enfin, il faut souligne que, dans GIMME, les relations contemporaines sont dirigées, comme les relations décalées. Avec mlVAR, seules les relations décalées le sont.

3.3 Un exemple

Un exemple d’application de la procédure GIMME sur un nombre réduit de variables est fourni par Bouwmans et al. (2018). L’échantillon est composé de trente personnes : 15 avec un trouble dépressif majeur et 15 personnes appariées. Celles-ci sont soumises à un recueil de 90 mesures (3 mesures par jour pendant 30 jours) recueillies à 6h d’intervalle. Quatre variables sont mesurées à chaque moment temporel : une variable physiologique (mesure de la mélatonine) et trois variables psychologiques (PA : affectivité positive ; NA : affectivité négative et le niveau de fatigue).

Dans le modèle au niveau du groupe (figure ci-dessous), seuls des effets contemporains émergent : l’effet de l’affectivité positive sur l’affectivité négative (moyenne des coefficients individuels de -0.47) et l’effet de l’affectivité postive sur la fatigue (moyenne des coefficients individuels de -0.44).

**Le modèle au niveau du groupe (@bouwmans_personspecific_2018)** [les traits plein indiquent des relations contemporaines ; m = mélatonine ; pa = affectivité positive ; na = affectivité négative ; f = fatigue]

Le modèle au niveau du groupe (Bouwmans et al. (2018)) [les traits plein indiquent des relations contemporaines ; m = mélatonine ; pa = affectivité positive ; na = affectivité négative ; f = fatigue]

Ce modèle général (commun) cache une hétérogénité assez importante. Dans le graphique suivant, on représente de manière condensée les modèles individuels :

  • les traits pleins correspondent aux pistes contemporaines ;

  • les traits tiretés correspondent aux pistes décalées ;

  • la largeur de chaque trait est proportionnelle au nombre de personnes chez lesquelles la piste est incluse dans le modèle individuel

**Résumé des réseaux individuels (@bouwmans_personspecific_2018)** [voir le texte et la figure précédente pour la légende]

Résumé des réseaux individuels (Bouwmans et al. (2018)) [voir le texte et la figure précédente pour la légende]

3.4 Deux paramètres importants dans la procédure d’estimation

L’implémentation informatique de la procédure GIMME nécessite de la part du chercheur de faire des choix quant à deux paramètres importants :

  • la définition du seuil requis pour constituer le modèle au niveau du groupe ;

  • la libération des coefficients d’auto-régression dans le modèle nul.

3.4.1 Définition du seuil requis pour définir le modèle commun

Le modèle commun (au niveau du groupe) est bâti sur la nécessité d’observer une piste statistiquement significative pour une majorité de l’échantillon. Les auteurs considèrent qu’un seuil de 75% est un bon compromis et permet notamment de bien séparer le signal du bruit (Gates et al., 2017, p. 133). Mais celui-ci peut être augmenté, notamment lorsque l’effectif total de l’échantillon est faible (par exemple, Adriene M. Beltz et al. (2018) fixent le seuil à 100%). Ce paramètre influe sur le niveau d’hétérogénéité permise dans le modèle commun : plus le seuil est faible, plus le modèle commun contient encore beaucoup d’hétégogénéité. Certains (T. R. Henry et al., 2019) recommandent donc d’ajuster ce paramètre en l’augmentant lorsque l’effectif total croit.

3.4.2 Libération des coefficients d’auto-régression dans le modèle nul

La procédure GIMME débute généralement par un modèle nul (tous les coefficients sont fixés à zéro). Mais parce que les coefficients d’auto-régression (effets d’une variable au moment \(t\) sur la même variable au moment \(t+1\)) reflètent la stabilité des séries temporelles ayant des intervalles courts entre les moments temporels (Adriene M. Beltz et al., 2018), il est généralement conseillé de les libérer (i.e. les faire estimer) dès le début de l’algorithme. Des études sur données simulées semblent confirmer que les résultats des estimations sont de meilleure qualité avec cette option (S. T. Lane et al., 2019), même si certains (Adriene M. Beltz & Gates, 2017) considèrent que des études complémentaires sont nécessaires pour en apprécier l’effet, notamment lorsque l’intervalle entre les mesures est important et/ou lorsque les corrélations temporelles sont supposées peu importantes.

3.5 Performances de la procédure

Les performances de la procédure GIMME peuvent être évaluées dans des études sur données simulées. C’est ce qu’on entrepris Gates & Molenaar (2012), notamment en confrontant les résultats de GIMME avec un grand nombre d’autres méthodes.

3.5.1 Données homogènes

Avec des données homogènes (i.e. réseaux fortement similaires chez les différents participants), les principaux résultats sont les suivants :

  • GIMME permet de retrouver de manière excellente les liens existants (i.e. présence vs. absence) ;

  • la valeur des coefficients de pistes est aussi très bien retrouvée par GIMME ;

  • la direction des pistes est correctement identifée par GIMME dans 90% des cas (c’est beaucoup moins bon lorsque les analyses sont menées sur chaque participant isolément, sans construire un modèle de groupe) ;

  • GIMME s’avère très performant pour séparer le signal du bruit dans différents scénarios testés.

3.5.2 Données hétérogènes

Les données hétérogènes sont des données dans lesquelles les réseaux diffèrent de manière importante entre les sujets. Outre les résultats détaillés ci-dessous, toutes les simulations montrent qu’en présence d’hétérogénéité, la structure mise en évidence quand on agrège les individus est très mauvaise, dans le sens où elle reflète, mal, très mal voire pas du tout les structures individuelles.

3.5.2.1 Différences inter-individuelles dans les valeurs des coefficients de piste

Les mêmes pistes sont présentes chez tous les participants, mais leurs valeurs diffèrent (elles sont par exemple générées avec une moyenne de 0.6 et un écart type de 0.3).

GIMME retrouve très correctement la présence et la direction des pistes. La corrélation entre les valeurs simulées des pistes et les valeurs estimées est de 0.76.

3.5.2.2 Quatre sous-groupes avec des réseaux différents

Les données sont générées de telle sorte qu’il y ait 4 sous-groupes de 25 participants qui ont des pistes en commun et qui diffèrent sur la présence de deux pistes.

Les performances de GIMME sont très bonnes, voire excellentes (99% des pistes sont retrouvées correctement).

3.5.2.3 Réseaux “aléatoires”

Une structure de groupe est générée (5 effets décalés de 0.70 sont présents pour la majorité des participants ainsi que deux pistes contemporaines de 0.60 ; il y a aussi l’introduction d’un effet expérimental sur la relation entre deux noeuds du réseau). Des pistes supplémentaires sont générées de manière aléatoire pour chaque participant.

Là encore, les performances de GIMME sont excellentes, avec près de 100% des pistes et de leur direction correctement estimées.

4 Contraintes, postulats et limites de l’approche GIMME

L’approche GIMME est encore relativement récente, mais les publications mentionnent plusieurs contraintes, postulats et limites en suggérant des solutions existantes ou à venir pour certaines d’entre elles.

4.1 Le nombre de variables

La plupart des applications de GIMME ont été réalisées avec un nombre de variables comprises entre 4 et 10 (Adriene M. Beltz & Gates, 2017), mais les auteurs notent que la procédure devrait pouvoir être appliquée sans difficulté avec un nombre de variables compris entre 3 et 20. Sans surprise, les simulations (S. T. Lane et al., 2019) semblent toutefois montrer que la performance de GIMME est meilleure lorsque le nombre de variables est moindre.

Le nombre de variables doit être le même pour tous les individus et il importe tout de même de noter que les temps de calcul peuvent devenir très longs lorsque le nombre de variables augmente (S. Lane et al., 2019).

4.2 Le nombre de sujets

Il ne semble pas exister de contraintes fortes quant au nombre de sujets à inclure dans les analyses. T. R. Henry et al. (2019) suggèrent toutefois qu’il y ait au moins 10 individus pour établir un réseau commun au niveau d’un groupe. Les simulations (S. T. Lane et al., 2019) ne montrent pas de différences notables dans les performances de l’algorithme en fonction de la taille de l’échantillon.

4.3 La longueur des séries temporelles

Les auteurs recommandent au moins 60 moments temporels, ce nombre n’ayant pas besoin d’être égal d’un individu à l’autre (S. Lane et al., 2019). Les analyses sur données simulées montrent que les performances de l’algorithme s’améliorent avec l’augmentation de la longueur des séries temporelles (S. T. Lane et al., 2019). Des séries temporelles courtes (n = 30) conduisent à négliger beaucoup d’effets qui existent dans les données, mais cet effet est modéré par le nombre de variables (les liens non découverts sont proportionnellement moins nombreux pour les séries courtes quand le nombre de variables augmente ; cf. S. T. Lane et al. (2019)). En revanche, même avec un nombre réduit de moments temporels, l’algorithme détecte très peu de pistes qui n’existent pas dans les données (S. T. Lane et al., 2019).

T. R. Henry et al. (2019) quant à eux considèrent que l’on détecte correctement les liens dès lors qu’il y a au moins 50 moments temporels, mais qu’il y a alors une grande incertitude sur leur direction. Il faudrait des séries temporelles de taille supérieure à 200 pour lever de manière substantielle cette incertitude.

4.4 L’intervalle entre les moments temporels

La procédure GIMME requiert pour le moment des mesures espacées avec des intervalles temporels égaux (S. T. Lane et al., 2019; S. Lane et al., 2019 ). Lorsque ce n’est pas le cas, certains (S. T. Lane et al., 2019) conseillent d’utiliser des procédures d’interpolation ou de ré-échantillonnage des données (voir Adriene M. Beltz & Gates (2017) et A. J. Fisher & Boswell (2016) pour des exemples), tout en notant que l’effet de ce pré-traitement sur les résultats n’est pas connu.

Avec des données psychologiques comportant plusieurs mesures quotidiennes pendant plusieurs jours, l’intervalle temporel séparant la dernière mesure de la journée et la première mesure du lendemain est en général beaucoup plus important que les autres. Cette particularité et la manière de la gérer n’est pas abordée à notre connaissance dans la littérature.

4.5 La stationnarité des séries temporelles

La procédure GIMME postule pour le moment7 des séries temporelles stationnaires, c’est-à-dire dont les propriétés statistiques (moyennes, variances, covariances) sont constantes au cours du temps (S. T. Lane et al., 2019).

Si des tendances sont repérées au cours du temps dans les séries temporelles, il est nécessaire de les supprimer avant d’appliquer l’algorithme. Par exemple, une tendance linéaire en fonction du temps peut être supprimée en utilisant les résidus d’une régression des données en fonction du temps. C’est la solution utilisée par Adriene M. Beltz & Gates (2017) qui constatent qu’il y a une tendance temporelle pour une variable chez tous les participants : des régressions en fonction du temps sont alors réalisés pour toutes les variables et pour tous les individus et leurs résidus standardisés servent comme point de départ pour les analyses GIMME.

Lorsque les dépendances temporelles sont plus complexes (sur les covariances par exemple), on peut réaliser des analyses séparées dans des fenêtres temporelles différentes8 (Adriene M. Beltz & Gates, 2017) ou utiliser d’autres méthodes d’analyses (Molenaar, Beltz, Gates, & Wilson, 2016).

4.6 Ordre des décalages

Les outils développés pour mettre en oeuvre la procédur GIMME (S. Lane et al., 2019) ne permettent pas de prendre en compte des effets décalés supérieurs à un moment temporel (lag 1). Il est possible de vérifier s’il existe des décalages d’ordre supérieur en inspectant les résidus des variables du modèle final. Ceux-ci doivent correspondre à des fluctuations aléatoires (white noise). Le graphique des auto-corrélations (ACF) est une procédure simple à mettre en oeuvre pour évaluer l’ampleur des corrélations décalées restantes dans les résidus (Gates et al., 2010). Une manière plus sophistiquée de procéder à cette vérification est proposée par Adriene M. Beltz & Gates (2017) en testant explicitement l’adéquation de modèles imposant qu’il n’existe aucune relation temporelle pour les résidus9

Les décalages d’ordre supérieur peuvent aussi être supprimés lors du pré-traitement des séries temporelles (Adriene M. Beltz & Gates, 2017), mais certains auteurs considèrent qu’un décalage d’ordre 1 est généralement suffisant lorsque les intervalles temporels entre les mesures ne sont pas trop rapprochés (Bouwmans et al., 2018).

4.7 Données manquantes

On sait encore peu de choses quant à l’effet des données manquantes avec la procédure GIMME. Pour l’instant, l’algorithme postule que s’il y a des données manquantes, celles-ci sont aléatoires et les estimations sont réalisées avec la méthode FIML (Full Information Maximum Likelihood) (Adriene M. Beltz & Gates, 2017; S. T. Lane & Gates, 2017a).

Il est bien sûr possible d’imputer les données manquantes avant de procéder à l’analyse GIMME. Des logiciels ad hoc sont alors utilisés. On peut signaler le package iVAR (Liu & Molenaar, 2014) qui utilise la technique des fenêtres glissantes ou encore le package AMELIA II (Honaker, King, & Blackwell, 2011) qui permet de réaliser des imputations en tenant compte de la structure dynamique des données10.

4.8 Normalité des distributions

La normalité des distributions est un postulat de la procédure GIMME, mais on ne connaît pas pour le moment les conséquences et l’importance de la violation de ce postulat (S. T. Lane et al., 2019).

4.9 La prise en compte des erreurs de mesure

Les erreurs de mesure ne peuvent pas pour le moment être prises en compte dans les estimations des paramètres par le package gimme, mais une adaptation pour variables latentes est en phase de réalisation (S. T. Lane et al., 2019) en combinant le package gimme et le package MIIVsem (Fisher, Bollen, Gates, & Rönkkö, 2019).

4.10 Le sens de la causalité

Estimer des relations contemporaines dirigées est à la fois un atout et une faiblesse de la procédure GIMME. Un atout parce que c’est un des rares modèles qui le permet et une faiblesse, parce qu’on peut s’interroger sur la fiabilité du sens de la causalité qui est affiché. Une extension récente de GIMME (GIMME-MS : GIMME-Multiple Solutions ; Adriene M. Beltz & Molenaar (2016)) permet d’estimer plusieurs solutions ayant un niveau d’adéquation proche et, sous certaines conditions, de choisir entre ces solutions afin d’établir avec plus de confiance le sens de la causalité. Mais on l’a vu précédemment, il faut être particulièrement prudent avec le sens de la causalité des relations contemporaines lorsque les séries temporelles sont courtes (< 200 moments temporels).

4.11 Variables sans variance

Comme dans tous les modèles linéaires, la procédure GIMME ne permet pas de conserver les variables qui n’auraient pas de variance (S. T. Lane et al., 2019). La littérature ne propose pas de solution à ce problème fréquent avec des données psychologiques. Dès lors qu’une série temporelle (i.e. pour un individu) comporte une variable sans variance, elle ne peut pas être incluse dans la modélisation.

4.12 La prise en compte du niveau des variables

La procédure GIMME élabore un modèle structural et, de fait, ne prend pas en compte le niveau (i.e. la moyenne) des variables incluses dans le modèle (Adriene M. Beltz & Gates, 2017; Foster & Beltz, 2018). Des hypothèses sur des différences de moyennes doivent donc être testées avec d’autres méthodes.

4.13 Absence de modèle général

Le modèle général qui découle de GIMME repose sur l’existence d’une homogénéité forte entre les modèles individuels. Si cette homogénéité existe, un modèle général (i.e. au niveau du groupe) émerge. S’il y a trop d’hétérogénéité, aucun modèle général ne peut être établi, contrairement à ce qui se passe avec d’autres méthodes (mlVAR par exemple). C’est à la fois un avantage (l’émergence d’un modèle général est permise, mais pas systématique) et un inconvénient, car les estimations au niveau individuel (et notamment la direction des pistes) sont moins bonnes et potentiellement contaminées par du bruit. Adriene M. Beltz & Gates (2017) suggèrent, en l’absence d’un modèle général, d’une part de libérer les coefficients d’auto-régression pour tous les individus au point de départ de l’algorithme et d’autre part de permettre l’émergence de solutions multiples (GIMME-MS ; Adriene M. Beltz & Molenaar (2016)) et de les comparer.

4.14 Risques algorithmiques

La procédure GIMME repose sur un algorithme itératif basé sur les données observées. Il en découle deux risques potentiels (Adriene M. Beltz & Gates, 2017).

Tout d’abord, l’algorithme itératif ajoute des pistes au modèle au fur à mesure et le choix des pistes ajoutées dépend des pistes retenues lors des itérations précédentes. La sélection de “mauvaises” pistes au départ de l’algorithme peut donc conduire à retenir des pistes aux itérations ultérieures qui ne soient pas les plus pertinentes, pour aboutir in fine à un modèle final qui ne soit pas optimal.L’examen des différentes solutions possibles avec GIMME-MS est un moyen de faire face à cette difficulté, mais il n’est pas certain que cela la résolve entièrement.

Ensuite, un surajustement (overfitting) est toujours possible avec des algorithmes guidés par les données. Cela conduit à déboucher sur un modèle plus complexe que nécessaire comprenant des coefficients qui ne reflètent que du bruit. GIMME n’échappe pas à ce risque, mais on considère qu’il est limité. En effet, l’ajout d’un coefficient dans un modèle ne se base pas seulement sur sa significativité, mais aussi et surtout sur les critères d’adéquation globale du modèle aux données, ces critères prenant en compte la complexité du modèle en la pénalisant.

5 Les extensions de la procédure GIMME

GIMME est une procédure encore récente et donc en plein développement qui connait et/ou promet plusieurs extensions :

  • la recherche automatique de sous-groupes homogènes (S-GIMME) ;

  • le test de l’existence de sous-groupes pré-définis dans une logique confirmatoire (CS-GIMME) ;

  • la modélisation conjointe d’effets exogènes variant dans le temps (euSEM) ;

  • la modélisation et la comparaison de multiples solutions (MS-GIMME) ;

  • la modélisation de l’erreur de mesure avec l’intégration de variables latentes.

5.1 La recherche de sous-groupes homogènes : la procédure S-GIMME11

5.1.1 Présentation générale

Gates et al. (2017) présentent une extension permettant, en plus d’identifier une structure de groupe générale, de rechercher de manière automatique des sous-groupes présentant des réseaux homogènes12. Cette procédure prend le nom de S-GIMME (“S” pour “subgrouping”).

Tout comme construire une structure de groupe améliore l’identification des modèles individuels en séparant le signal du bruit (Gates & Molenaar, 2012), la détection de sous-groupes homogènes permet d’affiner encore davantage la fiabilité des estimations au niveau individuel.

De nombreux travaux existent déjà afin d’identifier quelles sont les meilleures caractéristiques de séries temporelles à prendre en compte pour constituer des groupes homogènes (Liao, 2005). Il est possible, par exemple, de calculer les similarités entre les sujets, chacun d’entre eux étant caractérisé par la matrice de corrélations sans décalages entre les variables ; ou par la matrice block-Toeplitz des corrélations sans et avec décalages. C’est le plus intuitif, mais ce n’est sans doute pas la meilleure approche pour maximiser le ratio signal/bruit (Gates et al., 2017, p. 135).

La procédure S-GIMME propose de constituer les sous-groupes sur la base de la proximité entre des structures individuelles en terme de présence/absence de pistes causales entre deux variables et de leur signe (positif/négatif). La méthode de classification utilisée est l’algorithme Walktrap (Pons & Latapy, 2006).

5.1.2 Procédure de classification

5.1.2.1 Matrice de similarités

Dans la procédure GIMME, on estime un modèle au niveau du groupe. Ce modèle général est ensuite le point de départ pour estimer les modèles individuels. Les pistes présentes dans le modèle de groupe sont des paramètres libres dans l’estimation des modèles individuels et les pistes absentes dans le modèle de groupe sont fixées à zéro dans les modèles individuels. Chaque piste laissée libre reçoit une estimation au niveau individuel (paramètre \(\beta\)) ; et un indice de modification est associé à chaque piste fixée à zéro. Chaque indice de modification se caractétise par ailleurs par un EPC (Expected Parameter Change) qui est la valeur attendue du coefficient s’il était libéré.

Plusieurs cas de figure peuvent donc se présenter (Gates et al., 2017, pp. 136–137) :

  • la piste causale est présente dans le modèle général et elle est significative dans le modèle individuel : la piste est alors considérée comme présente dans le modèle individuel ; son signe est pris en compte.

  • la piste causale est présente dans le modèle général et elle n’est pas significative dans le modèle individuel ; la piste est alors considérée comme absente du modèle individuel.

  • la piste causale est absente dans le modèle de groupe et son EPC est significatif dans le modèle individuel ; la piste est alors considérée comme présente dans le modèle individuel ; son signe est pris en compte.

  • la piste causale est absente du modèle général et son EPC n’est pas significatif dans le modèle individuel ; la piste est alors considérée comme absente dans le modèle individuel

La matrice de similarités est alors construite en comptant, pour chaque paire d’individus, le nombre de pistes causales présentes et de même signe. Autrement dit, une proximité de 10 entre deux individus signifie qu’ils ont 10 pistes causales présentes et de même signe dans leur modèle individuel respectif. Pour éviter l’éparpillement, la valeur la plus faible de cette matrice est alors soustraite de tous les autres éléments (i.e. si la similarité initiale est de 3 entre deux individus et que cette valeur est la plus faible observée, elle devient nulle après cette transformation, ce qui revient à considérer que ces deux individus n’ont aucune proximité).

5.1.2.2 Méthode de classification

Les méthodes classiques d’analyses en clusters (méthodes hiérarchiques) posent le problème récurrent de la détermination arbitraire du nombre de groupes (Gates et al., 2017, p. 136). Newman (2006) a proposé un score dit de modularité (dans le cadre de la théorie des graphes) permettant d’établir un nombre optimal de clusters. Le score de modularité indique le degré avec lequel la similarité intra-cluster est élevée par rapport à la similarité inter-clusters. La détection de communautés est une nouvelle classe d’algorithmes développée pour la classification qui s’appuie sur la modularité. Parmi les multiples méthodes disponibles (cf. par exemple Porter, Onnela, & Mucha (2009)), la méthode Walktrap (Pons & Latapy, 2006)13 semble particulièrement appropriée, notamment parce qu’elle fonctionne aussi bien sur des matrices de similarités comportant des corrélations que des comptages (Gates, Henry, Steinley, & Fair, 2016).

5.1.3 La procédure S-GIMME

La procédure S-GIMME est présentée de manière schématique dans la figure suivante :

**Présentation schématique de la procédure S-GIMME [@gates_unsupervised_2017, p. 136]**

Présentation schématique de la procédure S-GIMME (Gates et al., 2017, p. 136)

Après l’identification d’une structure au niveau du groupe, les structures individuelles sont affinées et donnent lieu à une analyse en clusters. Les individus composant les différents sous-groupes servent de base pour déterminer les structures au niveau des sous-groupes, de la même manière qu’est mise en évidence la structure au niveau de l’ensemble de l’échantillon (Gates et al., 2017, p. 136). L’identification de la structure du sous-groupe utilise le modèle général comme point de départ. Des pistes causales sont ajoutées au niveau du modèle du sous-groupe dès lors qu’elles améliorent la majorité des modèles individuels des individus composant le sous-groupe. Dans la procédure GIMME globale (i.e. pour identifier un modèle général), c’est un seuil de 75% qui est utilisé pour définir la majorité ; pour la recherche de sous-groupes dont les tailles sont nécessairement réduites, les auteurs (Gates et al., 2017; T. R. Henry et al., 2019) proposent de fixer ce seuil à 50%. Il en découle nécessairement une hétérogénéité plus importante entre les modèles individuels des personnes identifiées dans un même sous-groupe.

Ensuite, on affine les modèles individuels en utilisant comme modèle de départ le modèle de groupe et celui du sous-groupe auquel appartient l’individu. La procédure S-GIMME peut donc s’écrire (Gates et al., 2017, p. 136) :

\[\eta_{i,t} = (A_i + A^s_{i,k} + A^g_{i}) \eta_{i,t} + (\Phi_i + \Phi^s_{i,k} + \Phi^g_{i}) \eta_{i,t-1} + \zeta_{i,t}\]\(i\) fait référence aux individus, \(g\) et \(s\) respectivement à la structure du groupe global et du sous-groupe \(k\).

5.1.4 Un exemple de résultats

S. T. Lane et al. (2019) proposent une application de la procédure S-GIMME à des données psychologiques. Des mesures quotidiennes ont été réalisées pendant 100 jours auprès de personnes souffrant de troubles de la personnalité borderline. Sept items sont retenus pour les analyses qui sont réalisées auprès de 36 participants ayant répondu au moins pendant 60 jours14 :

  • mood lability (“My mood was up and down”)

  • anxiousness (“I felt anxious”)

  • depression (“I felt depressed”)

  • anger (“I lost my temper”)

  • impulsivity (“I did something on impulse”)

  • emptiness (“My relationships felt empty”)

  • urgency (“I acted on my emotions”).

L’application de la procédure S-GIMME détecte trois sous-groupes, mais l’un des trois est un singleton. La personne composant ce sous-groupe est considérée comme un individu aberrant (outlier) et les résultats des deux sous-groupes peuvent être représentés comme suit :

**Les résultats issus de la procédure S-GIMME appliquée à des données psychologiques [@lane_uncovering_2019, p. 65]** [les traits pleins indiquent des effets contemporains et les traits tiretés des effets décalés]

Les résultats issus de la procédure S-GIMME appliquée à des données psychologiques (S. T. Lane et al., 2019, p. 65) [les traits pleins indiquent des effets contemporains et les traits tiretés des effets décalés]

Le modèle général ne comporte qu’une seule piste (reperée par la couleur noire dans le graphique) au-delà des sept effets auto-régressifs : l’effet contemporain (i.e. intra-journée) de la labilité émotionnelle sur le sentiment de déprime. Ce résultat atteste d’une grande hétérogénéité des modèles individuels et justifie d’autant une analyse en sous-groupes.

Les pistes en couleur permettent de repérer les modèles des deux sous-groupes. Autrement dit pour prendre un exemple, dans le groupe correspondant au réseau de la figure de gauche, la majorité des individus se caractérisent par un effet intra-journée de la labilité émotionnelle sur l’anxiété. Cette piste caractérise aussi la majorité des personnes composant le second groupe, mais le sens de la causalité est inversé : c’est l’anxiété qui prédit (toujours au sein d’une même journée) la labilité émotionnelle. Tant dans le modèle de groupe que dans les modèles des sous-groupes, on peut noter que l’on ne trouve aucun effet décalé : seuls les effets contemporains sont mis en évidence15.

En revanche, il existe bien des effets décalés au niveau des modèles individuels comme l’attestent les flèches grisées tiretées présentes dans les réseaux individuels des personnes des deux groupes16. La comparaison visuelle des deux modèles peut laisser penser que les réseaux individuels sont plus denses dans la groupe représenté à gauche que dans celui de droite. C’est une impression qu’il faut pondérer par l’effectif des deux groupes ; celui de gauche comprend 24 personnes contre 10 dans celui de droite17 et toutes choses égales par ailleurs, il y a plus de chances de voir émerger une piste significative dans un modèle individuel lorsque le nombre d’individus augmente.

Les auteurs interprètent les différences de fonctionnement psychologique en considérant que les processus émotionnels sont largement internalisés dans le groupe représenté à gauche de la figure et plus externalisés dans le groupe de droite.

5.1.5 Performances de la procédure S-GIMME

Les performances de la procédure S-GIMME ont été évaluées en recourant à des données simulées par S. T. Lane et al. (2019).

Ces simulations sont réalisées avec 10 variables. On fait varier le nombre d’individus (25, 75, 150), le nombre de sous-groupes et l’inégalité d’effectifs entre les sous-groupes. Les données générées comportent 10 pistes dans la structure de groupe, 6 pistes supplémentaires au niveau des sous-groupes et 4 supplémentaires au niveau des individus. Il y a 200 observations par individu. Pour évaluer l’effet de la non-prise en compte d’une variable importante dans les données, une des dix variables générées est supprimée dans chaque jeu de données.

Différents indicateurs sont utilisés pour évaluer la proximité entre les données générées et les structures estimées :

  • L’indice de Rand ajusté de Hubert-Arabie (\(ARI_{HA}\) ; Hubert & Arabie (1985)) pour évaluer l’exactitude de la détection des sous-groupes ;

  • Les indices de Ramsey (Ramsey, Hanson, & Glymour, 2011) pour l’exactitude des patterns temporels dans la réseau ;

Les principaux résultats des simulations sont les suivants :

  • le pourcentage de classifications correctes dans les sous-groupes est de l’ordre de 94%. Les pourcentages sont moins élevés lorsque la taille de l’échantillon diminue, le nombre de sous-groupes augmente et les effectifs différent de manière importante selon les sous-groupes. Mais mise à part la situation dans laquelle il y a 25 individus et 4 sous-groupes, on reste à des pourcentages plutôt satisfaisants (de l’ordre de 90%) ;

  • La récupération de la présence des pistes causales ainsi que de leur direction au niveau individuel est très bonne. On note au passage que la précision s’améliore effectivement quand on passe de l’estimation GIMME (un modèle global de groupe) à la procédure S-GIMME (une structure globale et des sous-groupes) même si l’estimation initiale est déjà tout à fait satisfaisante. L’amélioration apportée par S-GIMME ne conduit pas à l’apparition de faux-positifs (pistes estimées qui n’existent pas dans les données).

  • l’effet de l’omission d’une variable n’est évalué que dans les conditions les plus optimales (N = 150 ; 2 sous-groupes de taille égale). Il en ressort :
    • que l’exactitude des sous-groupes reste bonne ;
    • que l’identification des pistes existantes est assez robuste, mais il y davantage de faux positifs (ce qui était attendu) ;
    • que la précision est un peu moins bonne.

5.2 Le test de l’existence de sous-groupes pré-définis dans une logique confirmatoire (CS-GIMME)

S-GIMME permet de trouver des groupes de personnes homogènes d’un point de vue exploratoire. La variante introduite dans l’article de T. R. Henry et al. (2019) utilise une approche confirmatoire. Elle prend le nom de CS-GIMME (Confirmatory Subgrouping) qui est implémentée dans le package gimme (S. Lane et al., 2019). L’appartenance à des groupes pré-définis est prise en compte durant la procédure de recherche des modèles et la logique suivi est la même que celle que l’on trouve dans S-GIMME :

  • Le point de départ (modèle nul) est le modèle général établi sur la base de l’ensemble des individus ;

  • L’algorithme recherche ensuite la piste qui, si elle est libérée pour chaque membre du sous-groupe prédéfini, conduit à une amélioration de l’adéquation du modèle pour le plus grand nombre d’individus18.

  • Lorsque la piste est identifiée, elle est estimée pour toutes les personnes du sous-groupe pré-défini.

  • La procédure s’arrête lorsque aucune piste n’améliore significativement les indices de modification pour la majorité des membres du sous-groupe pré-défini.

  • Enfin, en partant du modèle général et des modèles par sous-groupes, l’algorithme recherche les pistes qui améliorent de manière significative les modèles individuels.

Bien que qualifiée de “confirmatoire” par ses auteurs, la procédure CS-GIMME ne semble pas bénéficier d’indicateur direct d’adéquation permet de réfuter la légitimité de la classification a priori des individus dans des groupes. On peut en revanche, comparer les structures des différents sous-groupes (densité du réseau, présence/absence de pistes, intensité et directions des pistes) pour établir si des différences existent empiriquement. Si de telles différences n’émergent pas, il est possible de conclure à l’absence de fondement des groupes pré-définis.

5.3 La modélisation conjointe d’effets exogènes variant dans le temps (euSEM)

Gates, Molenaar, Hillary, & Slobounov (2011) proposent une extension du modèle uSEM (euSEM : extented uSEM) pour étudier l’influence de variables exogènes sur un réseau dynamique. On entend par variables exogènes des variables qui ne peuvent être influencées par des variables incluses dans le réseau (Adriene M. Beltz & Gates, 2017). Ces variables exogènes doivent être mesurées aux mêmes moments temporels que les variables du réseau. On obtient alors les estimations des pistes contemporaines et décalées des variables exogènes sur chaque noeud du réseau. Il est aussi possible de modéliser des effets modérateurs de la variable exogène sur les liens estimés dans le réseau.

Cette extension est implémentée dans le package gimme (S. Lane et al., 2019). On trouvera un exemple d’application chez F. G. Hillary, Medaglia, Gates, Molenaar, & Good (2014).

5.4 La modélisation et la comparaison de solutions multiples (MS-GIMME)

La littérature sur les modèles SEM comprend beaucoup de débats quant à l’existence de modélisations différentes de mêmes données qui fournissent la même adéquation (e.g. MacCallum, Wegener, Uchino, & Fabrigar (1993); Markus (2002)). Il en est de même avec les modèles GIMME, principalement quant au sens de la direction des pistes contemporaines. L’extension MS-GIMME (Multiple Solution GIMME), implémentée dans le package gimme (S. Lane et al., 2019), permet de modéliser les différentes solutions possibles et de les comparer. On trouvera des exemples de l’utilisation de cette extension et des conseils quant à la manière de sélectionner entre les différentes solutions chez Adriene M. Beltz & Molenaar (2016) et chez A. M. Beltz, Wright, Sprague, & Molenaar (2016).

5.5 La modélisation de l’erreur de mesure avec l’intégration de variables latentes

La prise en compte de l’erreur de mesure et l’intégration de variables latentes dans GIMME ne sont pas encore réalisées, mais c’est une extension envisagée dans l’avenir (Adriene M. Beltz & Gates, 2017).

6 L’application de GIMME à des données psychologiques

Jusqu’à présent, les principales applications de la procédure GIMME et de ses extensions ont porté sur des données issues de neuro-imagerie (e.g. T. R. Henry et al., 2019; F. G. Hillary et al., 2014; Price et al., 2017; Zelle et al., 2017). Mais on trouve maintenant différentes applications à des données psychologiques (A. M. Beltz, Beekman, Molenaar, & Buss, 2013; Bouwmans et al., 2018; Foster & Beltz, 2018; S. T. Lane & Gates, 2017a, 2017b).

Les données psychologiques sont souvent des mesures répétées quotidiennement ou plusieurs fois par jour à l’aide de méthodes comme l’échantillonnage d’expériences (ESM : Experience Sampling Methods) ou l’évaluation ambulatoire (ambulatory assessment)19. Ce type de données présente toutefois certaines spécificités par rapport à celles issues de neuro-imagerie (Gates et al., 2017; S. T. Lane et al., 2019) :

  • les variables psychologiques peuvent présenter une faible variabilité pour certains individus ;

  • la taille des séries temporelles est généralement plus faible que celle de données d’IRMf ;

  • certains processus peuvent être mieux mis en évidence par des corrélations entre variables, ce qui peut poser problème avec la procédure GIMME qui n’envisage que des effets directionnels ;

  • les données psychologiques peuvent nécessiter des décalages supérieurs à 1 ;

  • elles ont souvent des intervalles de temps non équivalents.

  • les données de neuro-imagerie relèvent de taux d’échantillonage particulièrement élevés de l’ordre de 2 secondes, ce qui conduit à des effets auto-régressifs particulièrement importants et donc probablement beaucoup plus marqués qu’avec des données psychologiques plus espacées temporellement ;

  • les données psychologiques sont probablement beaucoup plus hétérogènes que les données de neuro-imagerie qui reflètent des processus biologiques dont on peut penser qu’ils existent de manière équivalente chez la plupart des individus.

Ces différences importantes ont conduit S. T. Lane et al. (2019) à tester les performances de la procédure GIMME avec des données simulées présentant certaines caractéristiques particulières de données psychologiques, notamment des coefficients d’auto-régression relativement faibles et des séries temporelles plus petites. Les résultats obtenus sont encourageants, même si on constate évidemment des estimations beaucoup plus fiables avec des séries temporelles plus longues. Ces simulations ont aussi permis d’établir qu’il était essentiel d’inclure les coefficients d’auto-régression dans le modèle nul de départ et c’est maintenant l’option par défaut dans le package gimme (S. Lane et al., 2019). Les auteurs soulignent toutefois que des études complémentaires devront permettre d’établir s’il ne faut pas utiliser des critères moins stricts pour l’ajout d’une piste dans le réseau lorsque globalement l’intensité des liens dans le réseau est relativement faible, comme c’est le cas avec des données psychologiques.

7 L’analyse des résultats de réseaux GIMME

Chaque réseau individuel estimé par la procédure GIMME se caractériste par plusieurs éléments d’information :

  • la présence/absence de la piste contemporaine/décalée entre deux variables ;

  • sa direction (sens de la causalité) ;

  • son signe (effet positif ou négatif) ;

  • son intensité (coefficient standardisé) ;

  • l’adéquation du modèle aux données.

Dans le modèle général (ou dans les modèles par sous-groupe si ce sont les extensions S-GIMME ou CS-GIMME qui sont utilisées), on retrouve les deux premiers paramètres listés ci-dessus : le modèle général comprend ou pas une piste (contemporaine ou décalée) entre deux variables et cette piste, si elle est présente, est dirigée. L’intensité de la piste dans le modèle général est obtenue à partir de la moyenne des coefficients estimés dans les modèles individuels. Le signe de cette piste découle de cette moyenne et même si cette situation est sans doute peu fréquente20, il est possible qu’une partie des individus ait des coefficients positifs et une autre des coefficients négatifs. Même si on ne peut pas parler stricto-sensu d’adéquation du modèle général, certains articles (Bouwmans et al., 2018) fournissent les moyennes des indicateurs d’adéquation des modèles individuels (pour le modèle général ou pour les modèles par sous-groupes).

T. R. Henry et al. (2019) notent que les pistes conservées dans le modèle de groupe sont estimées pour tous les individus et qu’on peut considérer que la distribution de l’intensité de ces pistes est approximativement normale. L’intensité moyenne de ces coefficients peut donc être comparée statistiquement entre des sous-groupes (définis de manière ad hoc ou détectés empiriquement par S-GIMME). L’intensité des pistes au niveau individuel est alors la variable dépendante dans des analyses (t-test comme chez Price et al. (2017) ; régression linéaire chez T. R. Henry et al. (2019) ; analyse de variance à mesures répétées21 chez Zelle et al. (2017)) et l’appartenance aux sous-groupes la variable indépendante22. Des corrections sur la significativité sont appliquées pour tenir compte de la multiplication des analyses (correction de Benjamani-Hochberg par exemple chez T. R. Henry et al. (2019)).

Les pistes qui ne sont pas présentes dans le modèle général ne peuvent donner lieu à ce type d’analyse23, car elles ne sont pas estimées chez tous les individus24. T. R. Henry et al. (2019) proposent, dans ce cas, de réaliser un test de permutation pour comparer les modèles des sous-groupes. Il s’agit d’évaluer la probabilité que la présence d’une piste dans un sous-groupe est due au hasard. Si cette probabilité est faible, alors sa présence dans un sous-groupe et pas dans un autre peut-être considérée comme une “vraie” différence de structure25.

Zelle et al. (2017) réalisent plusieurs types d’analyse pour comparer les réseaux obtenus dans deux échantillons différents et notamment :

  • la comparaison entre le nombre de pistes présentes dans les modèles individuels des deux échantillons avec un test t de Student ;

  • la comparaison entre le nombre de pistes présentes dans les modèles généraux des deux échantillons ;

  • la comparaison entre les moyennes des indicateurs d’adéquation des modèles individuels des deux échantillons (en présence d’une différence sur ces indicateurs, les auteurs considèrent qu’une moins bonne adéquation correspond à une plus grande hétérogénéité intra-échantillon) ;

  • la comparaison entre le nombre de pistes ajoutées dans les modèles individuels par rapport au modèle général obtenu pour chaque échantillon ;

Enfin, Adriene M. Beltz & Gates (2017) indiquent qu’il est aussi possible de calculer des indicateurs spécifiques aux réseaux (centralité des noeuds, force…).

8 Un exemple de mise en oeuvre et de résultats de la procédure GIMME standard avec le package gimme (version 0.5-1)

8.1 Le package gimme

La procédure GIMME a d’abord été programmée en combinant les logiciels MATLAB et LISREL. Depuis 2014 (S. T. Lane & Gates, 2017a), elle est implémentée dans un package \(R\) appelé gimme (S. Lane et al., 2019) qui met en place à la fois la procédure GIMME standard et les extensions S-GIMME, CS-GIMME, MS-GIMME et euSEM. Le package gimme utilise le package lavaan (Rosseel, 2012) pour estimer les paramètres des modèles structuraux.

Le package nécessite que tous les individus aient le même nombre de variables et que celles-ci aient le même ordre dans le tableau de données. Le nombre d’observations peut varier, quant à lui, d’un individu à l’autre. gimme peut être utilisé avec un minimum de trois variables. Le nombre maximum n’est pas limité, mais au-delà de 20 variables, les temps d’exécution deviennent rédhibitoires (et l’interprétation des réseaux aussi denses très compliquée). Les auteurs recommandent un minimum de 60 observations par individu. Un seul décalage temporel peut être pris en compte pour le moment. Les données manquantes sont gérées par le package sous réserve que celles-ci soient aléatoires (les modèles sont estimés avec la méthode FIML (Full Information Maximum Likelihood). Il est fortement recommandé que les mesures soient espacées d’un même interval temporel. Enfin, gimme ne permet pas (pour l’instant) de prendre en considération des effets qui varient avec le temps.

La fonction principale du package s’appelle gimmeSEM qui permet de mettre en oeuvre la procédure GIMME standard, ainsi que les extensions S-GIMME, CS-GIMME et euSEM. L’extention MS-GIMME nécessite d’utiliser les fonctions ms.fit et solution.tree. Le fonction indSEM permet d’estimer les modèles individuels de manière indépendante, c’est-à-dire sans que les estimations des paramètres individuels ne soient dépendantes du modèle général. La fonction aggSEM réalise quant à elle une analyse agrégée au niveau du groupe, sans tenir compte de l’hétérogénéite entre les individus.

Les principales fonction du package s’appliquent à des fichiers de données individuelles stockées dans un répertoire spécifique ou à un objet \(R\) de type list, contenant les séries temporelles individuelles. Seule la seconde option sera détaillée dans ce document. De la même manière, les différents fichiers de résultats peuvent être exportés directement dans un répertoire spécifié et/ou stockés dans un objet de type list.

Enfin, notons qu’il existe une interface graphique permettant d’indiquer les différents paramètres choisis pour la modélisation (package gimmeTools) dont il ne sera pas fait mention plus avant ici (cette interface est présentée chez S. T. Lane & Gates (2017a)).

8.2 Les données

Pour illustrer l’utilisation du package gimme, on aura recours aux données fictives intégrées dans le package. Ces données constituent des séries temporelles de 50 observations pour 5 individus et 3 variables. Les données doivent être stockées dans un objet de type list comprenant autant d’éléments que d’individus. Chaque élément de la liste est un data.frame dans lequel les moments sont en ligne et les variables en colonnes. La structure de l’objet est la suivante.

library (gimme)
str (ts)
## List of 5
##  $ ts1:'data.frame': 50 obs. of  3 variables:
##   ..$ V1: num [1:50] -0.696 -0.815 0.253 0.813 0.292 ...
##   ..$ V2: num [1:50] -0.381 -2.73 -2.268 -0.866 0.43 ...
##   ..$ V3: num [1:50] 4.53 3.16 1.93 2.06 3.06 ...
##  $ ts2:'data.frame': 50 obs. of  3 variables:
##   ..$ V1: num [1:50] 1.49 0.86 1.013 0.435 -1.772 ...
##   ..$ V2: num [1:50] 2.72 1.78 1.5 2.63 1.38 ...
##   ..$ V3: num [1:50] 3.12 1.97 1.64 3.36 3.74 ...
##  $ ts3:'data.frame': 50 obs. of  3 variables:
##   ..$ V1: num [1:50] 1.155 -0.836 1.479 1.456 2.09 ...
##   ..$ V2: num [1:50] -0.272 -0.584 -1.87 -1.054 -0.199 ...
##   ..$ V3: num [1:50] -0.638 1.602 -0.291 1.096 0.712 ...
##  $ ts4:'data.frame': 50 obs. of  3 variables:
##   ..$ V1: num [1:50] -0.448 -0.712 -2.563 -2.63 -0.631 ...
##   ..$ V2: num [1:50] 1.97 1.32 1.61 1.27 -2.2 ...
##   ..$ V3: num [1:50] 1.277 1.097 2.246 3.064 0.485 ...
##  $ ts5:'data.frame': 50 obs. of  3 variables:
##   ..$ V1: num [1:50] 0.0408 -0.3919 0.8936 1.5338 2.6159 ...
##   ..$ V2: num [1:50] -2.23 -1.443 0.453 1.26 -1.193 ...
##   ..$ V3: num [1:50] -4.869 -3.423 -2.397 -0.619 0.828 ...

Les 10 premières observation du premier individu se présentent ainsi :

library (knitr)  # pour présenter les résultats avec une mise en forme plus esthétique que la sortie standard
kable (head (ts[[1]], 10))
V1 V2 V3
-0.695598 -0.381068 4.528117
-0.815085 -2.730419 3.160198
0.253186 -2.268427 1.926741
0.813265 -0.866214 2.063980
0.292352 0.430201 3.061942
0.250911 0.813786 3.903032
1.094363 -0.380292 4.145783
0.209091 1.247851 6.489414
-0.368817 0.243201 6.709159
-2.198585 -0.088848 4.127438

Les statistiques descriptives des 3 variables pour chaque individu sont les suivantes :

library (psych)  # pour la fonction "describe"
lapply(ts, describe)
## $ts1
##    vars  n  mean   sd median trimmed  mad   min  max range  skew kurtosis
## V1    1 50 -0.27 1.13  -0.37   -0.35 0.95 -2.42 2.50  4.92  0.52    -0.07
## V2    2 50 -0.04 1.53   0.20    0.00 1.59 -2.95 2.95  5.90 -0.24    -1.00
## V3    3 50  1.83 3.58   1.77    1.67 4.40 -4.43 8.94 13.37  0.27    -0.93
##      se
## V1 0.16
## V2 0.22
## V3 0.51
## 
## $ts2
##    vars  n  mean   sd median trimmed  mad   min  max range  skew kurtosis
## V1    1 50 -0.07 1.14   0.22   -0.01 1.21 -2.59 2.28  4.88 -0.37    -0.66
## V2    2 50 -0.28 1.55  -0.07   -0.22 1.25 -3.63 2.72  6.35 -0.36    -0.42
## V3    3 50 -0.38 2.10  -0.23   -0.37 2.41 -5.05 3.74  8.79 -0.09    -0.76
##      se
## V1 0.16
## V2 0.22
## V3 0.30
## 
## $ts3
##    vars  n  mean   sd median trimmed  mad   min  max range  skew kurtosis
## V1    1 50  0.56 1.42   0.46    0.56 1.61 -2.60 3.89  6.49  0.04    -0.66
## V2    2 50  0.05 1.55  -0.29   -0.13 1.10 -3.18 4.83  8.00  1.01     1.05
## V3    3 50 -0.32 1.61  -0.26   -0.29 1.81 -3.74 2.95  6.69 -0.11    -0.80
##      se
## V1 0.20
## V2 0.22
## V3 0.23
## 
## $ts4
##    vars  n  mean   sd median trimmed  mad   min  max range  skew kurtosis
## V1    1 50 -0.25 1.25  -0.24   -0.22 1.39 -2.63 2.09  4.72 -0.13    -0.85
## V2    2 50 -0.39 1.36  -0.45   -0.40 1.50 -2.89 2.09  4.98  0.12    -1.12
## V3    3 50 -0.61 2.05  -0.46   -0.44 2.21 -6.18 3.06  9.25 -0.66     0.07
##      se
## V1 0.18
## V2 0.19
## V3 0.29
## 
## $ts5
##    vars  n  mean   sd median trimmed  mad   min  max range  skew kurtosis
## V1    1 50 -0.27 1.29  -0.20   -0.21 1.27 -3.07 2.62  5.68 -0.32    -0.48
## V2    2 50 -0.87 1.41  -1.00   -0.90 1.44 -3.83 2.64  6.47  0.13    -0.55
## V3    3 50 -1.34 1.96  -1.45   -1.35 2.39 -5.04 3.21  8.25  0.11    -0.90
##      se
## V1 0.18
## V2 0.20
## V3 0.28

8.3 Les arguments de la fonction gimmeSEM

La fonction gimmeSEM comporte 27 arguments ou options. Les options principales concernant la procédure GIMME standard sont les suivantes :

  • data : le nom de la liste contenant les données

  • out : le nom du répertoire (avec le chemin) dans lequel stocker les fichiers des résultats (fichiers csv avec les résultats chiffrés et fichiers pdf avec les graphiques)

  • ar : permet de libérer dès le début de la procédure les coefficients d’auto-régression. La valeur par défaut est TRUE et correspond à ce qui est recommandé dans la littérature au vu des simulations

  • plot : permet d’obtenir les représentations graphiques des réseaux (la valeur par défaut est TRUE)

  • paths : cet argument permet de libérer des paramètres au début de l’estimation et s’utilise lorsque l’on veut imposer l’estimation d’un paramètre pour tous les individus

  • standardize : possibilité de centrer-réduire les variables avant l’analyse (la valeur par défaut est FALSE)

  • groupcutoff : le pourcentage d’individus ayant une piste significative nécessaire pour intégrer la piste au modèle du groupe (la valeur par défaut est de 0.75, soit 75%)

D’autres options concernent les extensions de la procédure GIMME :

  • extension S-GIMME : subgroup, sub_feature, subcutoff

  • extension CS-GIMME : confirm_subgroup

  • extension MS-GIMME : ms_allow, ms_tol

  • extension euSEM : exogenous, mult_vars, mean_center_mult

D’autres options concernent des situations spécifiques :

  • lorsque les données ne sont pas stockées dans un objet de type list : sep, header

  • lorsque les données sont issues d’IRMf : conv_vars, conv_length, conv_interval

  • lorsque les données sont des variables latentes : lv_model, lv_scores, lv_estimator, lv_miiv_scaling, lv_final_estimator

  • l’option diagnos fournit des résultats internes pour des besoins de diagnostic (la valeur par défaut est FALSE).

8.4 Mise de oeuvre de la procédure GIMME standard

La procédure GIMME standard est appliquée sur les données fictives décrites ci-dessus :

setwd("~/recherche/methodes/GIMME")  # définition du répertoire par défaut
res <- gimmeSEM(data = ts, out = "output", ar = T, plot = T, standardize = F, groupcutoff = .75)
  • Les résultats sont stockés dans un objet appelé res

  • le répertoire output (qui va être créé automatiquement dans le répertoire de destination spécifié par la fonction setwd) contiendra les fichiers de résultats et les graphiques

  • les pistes d’auto-régression sont libérées au début de la procédure

  • les représentations des résultats sous forme graphique sont demandées

  • les données ne sont pas standardisées

  • le seuil pour retenir une piste dans le modèle général est fixé à 75%

Le répertoire contenant les résultats contient 5 fichiers et un répertoire (dont le contenu est décrit en détail dans les sections suivantes) :

  • fichier summaryPathsPlot.pdf : un graphique présentant un résumé des résultats

  • fichier indivPathEstimates.csv : les coefficients des modèles individuels

  • fichier summaryFit.csv : les indicateurs d’adéquation des modèles individuels

  • fichier summaryPathCounts.csv : nombre d’individus chez lesquels telle piste est présente

  • fichier summaryPathCountsMatrix.csv : même information que la précédente présentée sous forme de matrice

  • répertoire individual qui comprend plusieurs fichiers :

    • ts1Plot.pdf : le modèle individuel de l’individu ayant pour identifiant ts1 (un fichier par individu)

    • ts1Betas.csv : les valeurs des coefficients de piste du modèle de l’individu ts1 (un fichier par individu)

    • ts1StdErrors.csv : les erreurs standards des coefficients de piste du modèle de l’individu ts1 (un fichier par individu)

    • ts1Psi.csv : les corrélations (contemporaines) entre les variables pour l’individu ts1 (un fichier par individu)

8.5 Le résumé des résultats

Le fichier summaryPathsPlot.pdf est la représentation graphique résumée des résultats. Ce graphique peut être aussi obtenu avec la commande suivante :

plot (res)
## Please specify a file id for individual plots. Otherwise, summary plot is presented.

Cette représentation graphique repose sur un certain nombre de conventions :

  • Les pistes en traits pleins correspondent aux effets contemporains ;

  • Les liens tiretés correspondent aux effets décalés ;

  • Les pistes noires correspondent au modèle général (au niveau du groupe). Leur largeur est proportionnelle au nombre d’individus chez lesquels la piste est présente.

  • Les pistes grises correspondent aux pistes présentes dans les modèles individuels. Leur largeur est proportionnelle au nombre d’individus chez lesquels la piste est présente.

Dans ces résultats, il y a donc 5 pistes présentes dans le modèle de groupe (donc significatives chez au moins 75% des individus) : les trois auto-régressions, la piste contemporaine de V2 sur V3 et l’influence décalée de V1 sur V2. D’autres pistes ne sont significatives que chez certains individus (par exemple, l’influence décalée de V2 sur V3). D’autres pistes enfin ne sont significatives chez aucun individu (par exemple l’influence contemporaine de V1 sur V2 ou l’influence décalée de V2 sur V1).

Il n’y a pas d’options internes dans le package gimme pour modifier les graphiques. Toutefois, comme ceux-ci sont générés à partir du package qgraph (Epskamp, Cramer, Waldorp, Schmittmann, & Borsboom, 2012), il est possible de les modifier à partir de ce package. La procédure consiste à utiliser deux objets générés automatiquement dans l’objet contenant les résultats : l’objet res$plots et l’objet res$group_plot. Le premier contient les paramètres graphiques de tous les modèles individuels et le second les paramètres graphiques du modèle général. La fonction qgraph peut être appliquée directement sur ces objets et on accède ainsi aux nombreuses options de cette fonction.

Par exemple, la commande suivante permet :

  • de forcer la réalisation du graphique (arugment DoNotPlot qu’il est indispensable de paramétrer à FALSE)

  • d’ajouter un titre (argument title) ;

  • de changer la couleur de fond (argument bg) ;

  • d’ajouter des étiquettes aux pistes (argument edge.labels).

library (qgraph)
qgraph (res$group_plot, DoNotPlot = F, bg = "grey85", edge.labels = T, title = "Résumé des résultats")

Les étiquettes des pistes ajoutées avec l’option edge.labels = T correspondent au pourcentage d’individus chez lesquels la piste est présente dans les modèles individuels. Ainsi, par exemple, l’influence décalée de V2 sur V3 comporte une étiquette de \(1\) (soit 100%) ; cette piste est donc présente dans tous les modèles individuels (parce que c’est une piste retenue dans le modèle général)26. La piste contemporaine entre V2 et V3 n’est présente quant à elle que dans un seul (0.2 = 20%) des modèles individuels. Pour les 4 autres individus cette piste n’est pas significative et sa valeur est donc fixée à zéro.

8.6 Le modèle général (au niveau du groupe)

La figure précédente présente globalement l’ensemble des résultats, avec toutes les pistes présentes dans le modèle général (ou modèle de groupe) et dans les modèles individuels. Pour la lisibilité, on peut représenter uniquement le modèle de groupe. Cela revient à n’afficher que les pistes significatives chez au moins 75% des individus. Cela peut se faire avec l’argument minimum de la fonction qgraph27 :

qgraph (res$group_plot, DoNotPlot = F, edge.labels = T, minimum = 0.74)

Le fichier externe summaryPathCounts.csv identifie toutes les pistes qui sont présentes au moins une fois dans les modèles individuels. Il contient une colonne précisant les pistes présentes dans le modèle général (ce sont les pistes présentes chez tous les individus : count.group = 5) et une autre colonne indiquant le nombre d’individus chez lesquels on trouve une piste spécifique (non présente dans le modèle général). Dans cet exemple, chaque piste spécifique n’est présente que chez un seul individu.

setwd("~/recherche/methodes/GIMME/output")
kable (read.csv ("summaryPathCounts.csv"))
dv iv count.group count.ind
V1 V1lag 5 0
V2 V1lag 5 0
V3 V2 5 0
V2 V2lag 5 0
V3 V3lag 5 0
V3 V1 0 1
V3 V1lag 0 1
V3 V2lag 0 1
V1 V3 0 1
V1 V3lag 0 1

Les mêmes informations sont disponibles directement dans l’environnement R avec le sous-objet path_counts, mais la présentation est différente :

kable (res$path_counts)
V1lag V2lag V3lag V1 V2 V3
V1 5 0 1 0 0 1
V2 5 5 0 0 0 0
V3 1 1 5 1 5 0

Il s’agit d’une matrice avec en colonnes les variables indépendantes en en lignes les variables dépendantes. Le chiffre 5 figurant à la seconde ligne (V2) et première colonne (V1lag) signifie que la piste décalée entre \(V1_{t-1}\) et \(V2_t\) est présente dans les 5 modèles individuels et donc, dans le modèle général. Le chiffre 1 figurant à la troisième ligne (V3) et quatrième colonne (V1) signifie que la piste contemporaine entre \(V1_{t}\) et \(V32_t\) est présente dans un seul modèle individuel.

Cette présentation sous forme matricielle est aussi disponible dans un fichier externe : summaryPathCountsMatrix.csv28

setwd("~/recherche/methodes/GIMME/output")
kable (read.csv ("summaryPathCountsMatrix.csv"))
V1lag V2lag V3lag V1 V2 V3
5 0 1 0 0 1
5 5 0 0 0 0
1 1 5 1 5 0

Il existe encore une autre manière d’obtenir les mêmes informations, avec la fonction print :

print (res)
## Please specify a file id for individual coefficient matrix.  
##  Otherwise, a summary count matrix is presented below. 
## 
## Lagged Count Matrix for Sample 
##    V1lag V2lag V3lag
## V1     5     0     1
## V2     5     5     0
## V3     1     1     5
## 
## Contemporaneous Count Matrix for Sample 
##    V1 V2 V3
## V1  0  0  1
## V2  0  0  0
## V3  1  5  0

Dans ce cas, les résultats sont présentés dans deux matrices différentes, l’une contenant les pistes décalées et l’autre les pistes contemporaines.

Cette fonctionnalité permet en outre d’obtenir la moyenne des coefficients de piste pour l’ensemble des individus :

print (res, mean = T)
## Please specify a file id for individual coefficient matrix.  
##  Otherwise, a summary average matrix is presented below. 
## 
## Lagged Average Matrix for Sample 
##    V1lag V2lag V3lag
## V1  0.46  0.00 -0.08
## V2  0.41  0.55  0.00
## V3  0.06 -0.05  0.64
## 
## Contemporaneous Average Matrix for Sample 
##      V1   V2   V3
## V1 0.00 0.00 0.09
## V2 0.00 0.00 0.00
## V3 0.04 0.34 0.00

Ces résultats indiquent que le coefficient d’auto-régression de \(V1\) est de 0.46. Il s’agit de la moyenne de l’estimation de ce coefficient pour chaque individu (ces coefficients sont estimés, comme on le verra ci-dessous à 0.45, 0.46, 0.15, 0.72 et 0.50, respectivement pour les 5 individus).

La valeur indiquée pour la piste décalée de V2 sur V3 est de -0.05. Il est important de noter que cette piste n’est pas présente dans le modèle général, mais dans un seul modèle individuel et que la valeur mentionnée est la moyenne calculée en considérant que la piste vaut zéro dans les modèles individuels pour lesquels la piste n’est pas statistiquement significative (cette piste est estimée à -0.27 pour l’individu ts1 et elle est non significative dans les autres modèles individuels ; la moyenne indiquée correspond donc à -0.27/5 soit, en arrondissant, à -0.05)29.

8.7 Les modèles individuels

8.7.1 Les graphiques

Le sous-répertoire individual contient les résultats des estimations des modèles individuels. Par exemple, le fichier ts1Plot.pdf est la représentation graphique du modèle pour l’individu correspondant à l’identifiant ts1. Il peut aussi être obtenu avec la commande suivante :

plot (res, "ts1")

Les conventions utilisées par défaut pour les graphiques individuels sont les suivantes :

  • Les pistes en traits pleins correspondent aux effets contemporains (leur largeur est proportionnelle à la valeur du coefficient) ;

  • Les liens tiretés correspondent aux effets décalés (leur largeur est proportionnelle à la valeur du coefficient) ;

  • les pistes rouges correspondent aux effets positifs ;

  • les pistes bleues correspondent aux effets négatifs.

Pour cet individu (ts1), on retrouve nécessairement les 5 pistes retenues dans le modèle général (au niveau du groupe) ; les trois auto-régressions (toutes positives), l’influence décalée de V1 sur V2 (positive) et l’influence contemporaine de V2 sur V3 (positive). Le réseau de cet individu ne comporte qu’une piste supplémentaire par rapport au modèle général : l’influence décalée négative de V2 sur V3.

Les modèles individuels des quatre autres individus sont représentés ci-dessous (respectivement de gauche à droite et de haut en bas) :

par (mfrow = c(2,2))
plot (res, "ts2")
plot (res, "ts3")
plot (res, "ts4")
plot (res, "ts5")

Tout comme pour le modèle général, l’utilisation du package qgraph permet de modifier de nombreuses options graphiques. Dans l’exemple suivant (modèle de l’individu ts1), on ajoute le coefficient estimé de chaque piste (option edge.labels) et la couleur des pistes positives (option posCol) est changée de rouge à vert.

library (qgraph)
qgraph (res$plots$ts1, DoNotPlot = F, posCol = "green", edge.labels = T)

8.7.2 Les coefficients des modèles individuels

Les valeurs des coefficients estimés des modèles individuels peut être obtenue de différentes manières.

1) Par le fichier externe indivPathEstimates.csv. Celui-ci contient les estimations des coefficients pour chaque modèle individuel avec notamment leur erreur-standard et leur significativité. Les 10 premières lignes sont affichées ci-dessous)30 :

setwd("~/recherche/methodes/GIMME/output")
kable (head (read.csv ("indivPathEstimates.csv"), 10))
file dv iv beta se z pval level
ts1 V1 V1lag 0.4486487 0.1141021 3.931995 0.0000842 group
ts1 V2 V2lag 0.5508322 0.0893660 6.163781 0.0000000 group
ts1 V3 V3lag 0.8764946 0.0497722 17.610139 0.0000000 group
ts1 V2 V1lag 0.3689486 0.0979474 3.766804 0.0001654 group
ts1 V3 V2 0.3696952 0.0720103 5.133921 0.0000003 group
ts1 V3 V2lag -0.2707206 0.0759560 -3.564177 0.0003650 ind
ts2 V1 V1lag 0.4571508 0.1018691 4.487627 0.0000072 group
ts2 V2 V2lag 0.5251500 0.0868088 6.049504 0.0000000 group
ts2 V3 V3lag 0.6622592 0.0692764 9.559667 0.0000000 group
ts2 V2 V1lag 0.4720978 0.0893036 5.286435 0.0000001 group

La première ligne se lit de la manière suivante : pour l’individu ts1, la piste entre V1lag (\(iv\) = Independant Variable) et V1 (\(dv\) = dependant variable), autrement dit entre \(V1_{t-1}\) et \(V1_t\) est estimée à 0.449 (beta). L’erreur standard est égale à 0.114 et le rapport entre la valeur estimée du coefficient et son erreur standard vaut 3.93 (z), ce qui est significativement différent de zéro (pval < 0.05). Cette piste a été retenue dans le modèle général (level : group).

2) Par le sous-objet path_se_est. Les informations contenues dans le fichier précédent sont générées automatiquement dans l’environnement R sous forme d’un sous-objet (path_se_est) de l’objet contenant les résultats (les 10 premières lignes de ce tableau) :

kable (head (res$path_se_est, 10))
file dv iv beta se z pval level
ts1.25 ts1 V1 V1lag 0.4486487 0.1141021 3.931995 0.0000842 group
ts1.26 ts1 V2 V2lag 0.5508322 0.0893660 6.163781 0.0000000 group
ts1.27 ts1 V3 V3lag 0.8764946 0.0497722 17.610139 0.0000000 group
ts1.28 ts1 V2 V1lag 0.3689486 0.0979474 3.766804 0.0001654 group
ts1.29 ts1 V3 V2 0.3696952 0.0720103 5.133921 0.0000003 group
ts1.30 ts1 V3 V2lag -0.2707206 0.0759560 -3.564177 0.0003650 ind
ts2.25 ts2 V1 V1lag 0.4571508 0.1018691 4.487627 0.0000072 group
ts2.26 ts2 V2 V2lag 0.5251500 0.0868088 6.049504 0.0000000 group
ts2.27 ts2 V3 V3lag 0.6622592 0.0692764 9.559667 0.0000000 group
ts2.28 ts2 V2 V1lag 0.4720978 0.0893036 5.286435 0.0000001 group

3) Par la fonction print. La fonction print extrait les coefficients sous forme de deux matrices : une matrice avec les coefficients estimés des pistes décalées et une pour les pistes contemporaines.

print (res, "ts1")
## 
## Lagged Matrix for ts1 
##    V1lag V2lag V3lag
## V1  0.45  0.00  0.00
## V2  0.37  0.55  0.00
## V3  0.00 -0.27  0.88
## 
## Contemporaneous Matrix for ts1 
##    V1   V2 V3
## V1  0 0.00  0
## V2  0 0.00  0
## V3  0 0.37  0

4) Par les fichiers du sous-répertoire individual : Outre les coefficients présentés de manière synthétique dans le répertoire principal de stockage des résultats, un sous-répertoire appelé individual contient les résultats présentés de manière analytique. Il existe trois fichiers par individu (en plus du fichier contenant la représentation graphique du modèle individuel présenté plus haut).

4a) Les coefficients \(\beta\) : Les coefficients \(\beta\) sont tous les coefficients de piste du modèle (pistes contemporaines et décalées). Ils sont disponibles dans les fichier ts1Betas.csv pour l’individu ts1.

setwd("~/recherche/methodes/GIMME/output/individual")
kable (read.csv ("ts1Betas.csv"))
X V1lag V2lag V3lag V1 V2 V3
V1 0.4486 0.0000 0.0000 0 0.0000 0
V2 0.3689 0.5508 0.0000 0 0.0000 0
V3 0.0000 -0.2707 0.8765 0 0.3697 0

Dans cette matrice, il faut comprendre que les variables indépendantes constituent les colonnes et les variables dépendantes les lignes. Ainsi, le coefficient de 0.3697 qui se trouve à la troisième ligne et à la cinquième colonne de la matrice signifie que l’influence contemporaine de V2 sur V3 est estimée à 0.3697. En revanche, l’influence contemporaine de V3 sur V2 (deuxième ligne, sixième colonne) est de zéro (ce qui signifie que cette piste n’est pas statistiquement significative pour cet individu).

4b) Les erreurs standards : Les erreurs standards des coefficients \(\beta\) se trouvent dans le fichier ts1StdErrors.csv pour l’individu ts1 :

setwd("~/recherche/methodes/GIMME/output/individual")
kable (read.csv ("ts1StdErrors.csv"))
X V1lag V2lag V3lag V1 V2 V3
V1 0.1275 0.0000 0.0000 0 0.0000 0
V2 0.1361 0.1008 0.0000 0 0.0000 0
V3 0.0000 0.1678 0.0618 0 0.1529 0

Le nombre qui se trouver à l’intersection de la troisième ligne et de la cinquième colonne de la matrice est l’erreur standard de l’effet contemporain de V2 sur V3 (0.1529).

Il est important de noter que les erreurs standards qui figurent dans ce fichier ne sont pas les mêmes que celles qui sont indiquées dans les autres résultats fournis par le package (que ce soit dans le fichier indivPathEstimates.csv ou dans l’objet res$path_se_est)31. Aucune explication pour le moment à ces étranges différences !

5) Par le sous-objet path_est_mats. Celui-ci contient les matrices des coefficients \(\beta\) pour chaque individu. On l’obtient pour l’individu ts1 avec la commande suivante :

kable (res$path_est_mats$ts1)
V1lag V2lag V3lag V1 V2 V3
V1 0.4486 0.0000 0.0000 0 0.0000 0
V2 0.3689 0.5508 0.0000 0 0.0000 0
V3 0.0000 -0.2707 0.8765 0 0.3697 0

6) Par les sous-objets vcovfull et vcov : Ces deux objets de type liste contiennent les matrices de variances-covariances entre les paramètres estimés pour chaque individu. Pour l’individu ts1, la liste vcovfull se présente comme suit :

kable (res$vcovfull$ts1, digits = 3)
V1~~V1 V2~~V2 V3~~V3 V1~1 V2~1 V3~1 V1lag~~V1lag V1lag~~V2lag V1lag~~V3lag V2lag~~V2lag V2lag~~V3lag V3lag~~V3lag V1lag~1 V2lag~1 V3lag~1 V1~V1lag V2~V2lag V3~V3lag V2~V1lag V3~V2 V3~V2lag
V1~~V1 0.010 0.001 0.000 -0.003 0.000 0.000 0 -0.001 -0.001 0 0.000 0 -0.001 0.000 0.000 -0.012 0.000 0.000 -0.001 0.000 0.000
V2~~V2 0.001 0.010 0.001 0.000 -0.001 0.000 0 -0.005 -0.003 0 -0.002 0 -0.001 0.000 0.001 -0.001 -0.004 0.001 -0.002 -0.001 0.000
V3~~V3 0.000 0.001 0.001 0.000 0.000 0.000 0 -0.001 -0.001 0 -0.001 0 0.000 0.000 0.001 0.000 0.000 0.000 0.000 0.000 0.000
V1~1 -0.003 0.000 0.000 0.018 0.000 0.000 0 0.000 0.000 0 0.000 0 0.000 0.000 0.000 0.004 0.000 0.000 0.000 0.000 0.000
V2~1 0.000 -0.001 0.000 0.000 0.010 0.000 0 0.000 0.000 0 0.000 0 0.000 0.000 0.000 0.000 -0.001 0.000 0.002 0.000 0.000
V3~1 0.000 0.000 0.000 0.000 0.000 0.004 0 0.000 0.000 0 0.000 0 0.000 0.000 0.000 0.000 0.000 -0.001 0.000 0.001 0.001
V1lag~~V1lag 0.000 0.000 0.000 0.000 0.000 0.000 0 0.000 0.000 0 0.000 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
V1lag~~V2lag -0.001 -0.005 -0.001 0.000 0.000 0.000 0 0.018 0.009 0 0.004 0 0.001 0.000 -0.002 0.001 -0.002 0.000 -0.001 0.001 0.000
V1lag~~V3lag -0.001 -0.003 -0.001 0.000 0.000 0.000 0 0.009 0.015 0 0.001 0 0.001 0.000 -0.002 0.001 -0.001 -0.001 0.000 -0.001 0.001
V2lag~~V2lag 0.000 0.000 0.000 0.000 0.000 0.000 0 0.000 0.000 0 0.000 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
V2lag~~V3lag 0.000 -0.002 -0.001 0.000 0.000 0.000 0 0.004 0.001 0 0.010 0 0.000 0.000 -0.002 0.000 0.001 0.001 -0.001 0.000 0.000
V3lag~~V3lag 0.000 0.000 0.000 0.000 0.000 0.000 0 0.000 0.000 0 0.000 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
V1lag~1 -0.001 -0.001 0.000 0.000 0.000 0.000 0 0.001 0.001 0 0.000 0 0.021 0.005 0.007 0.001 0.000 0.000 0.001 0.000 0.000
V2lag~1 0.000 0.000 0.000 0.000 0.000 0.000 0 0.000 0.000 0 0.000 0 0.005 0.020 0.011 0.000 0.000 0.000 0.000 0.000 0.000
V3lag~1 0.000 0.001 0.001 0.000 0.000 0.000 0 -0.002 -0.002 0 -0.002 0 0.007 0.011 0.024 0.000 0.000 -0.001 0.000 0.001 -0.001
V1~V1lag -0.012 -0.001 0.000 0.004 0.000 0.000 0 0.001 0.001 0 0.000 0 0.001 0.000 0.000 0.013 0.000 0.000 0.001 0.000 0.000
V2~V2lag 0.000 -0.004 0.000 0.000 -0.001 0.000 0 -0.002 -0.001 0 0.001 0 0.000 0.000 0.000 0.000 0.008 0.000 -0.005 0.001 -0.001
V3~V3lag 0.000 0.001 0.000 0.000 0.000 -0.001 0 0.000 -0.001 0 0.001 0 0.000 0.000 -0.001 0.000 0.000 0.002 -0.001 -0.002 -0.001
V2~V1lag -0.001 -0.002 0.000 0.000 0.002 0.000 0 -0.001 0.000 0 -0.001 0 0.001 0.000 0.000 0.001 -0.005 -0.001 0.010 0.000 0.001
V3~V2 0.000 -0.001 0.000 0.000 0.000 0.001 0 0.001 -0.001 0 0.000 0 0.000 0.000 0.001 0.000 0.001 -0.002 0.000 0.005 -0.003
V3~V2lag 0.000 0.000 0.000 0.000 0.000 0.001 0 0.000 0.001 0 0.000 0 0.000 0.000 -0.001 0.000 -0.001 -0.001 0.001 -0.003 0.006

L’intersection de la 20e ligne et de la 20e colonne est la covariance de l’estimation de la piste contemporaine de l’influence de V2 sur V3. Sa racine carrée permet de retrouver l’erreur standard du coefficient :

res$vcovfull$ts1 [20,20]
## [1] 0.005185483
sqrt (res$vcovfull$ts1 [20,20])
## [1] 0.0720103

La liste vcov est un extrait de cette liste générale. Elle ne contient que les variances-covariances entre les paramètres estimés des pistes contemporaines et décalées (à l’exception des auto-régressions) :

kable (res$vcov$ts1)
V2~V1lag V3~V2 V3~V2lag
V2~V1lag 0.0095937 -0.0000420 0.0005742
V3~V2 -0.0000420 0.0051855 -0.0027213
V3~V2lag 0.0005742 -0.0027213 0.0057693

A nouveau, on retrouve ici l’erreur standard de la piste contemporaine de V2 sur V3 en calculant la racine carrée de l’élément qui se trouve à la 2e ligne et 2e colonne de cette matrice :

sqrt (res$vcov$ts1 [2,2])
## [1] 0.0720103

8.7.3 L’adéquation des modèles individuels

Les indicateurs d’adéquation des modèles individuels (RMSEA, NNFI, CFI, etc., ainsi que l’information sur la convergence des estimations) se trouvent dans le fichier summaryFit.csv (répertoire principal).

setwd("~/recherche/methodes/GIMME/output")
kable (read.csv ("summaryFit.csv"))
file chisq df npar pvalue rmsea srmr nnfi cfi bic aic logl status
ts1 5.9521 6 21 0.4286 0.0000 0.0493 1.0007 1.0000 1095.7189 1055.9906 -506.9953 converged normally
ts2 1.2039 6 21 0.9767 0.0000 0.0136 1.0784 1.0000 996.7993 957.0711 -457.5355 converged normally
ts3 1.2499 5 22 0.9400 0.0000 0.0158 1.0755 1.0000 990.8292 949.2092 -452.6046 converged normally
ts4 10.0380 7 20 0.1864 0.0941 0.0349 0.9607 0.9817 981.6660 943.8296 -451.9148 converged normally
ts5 7.1295 6 21 0.3090 0.0620 0.0436 0.9824 0.9930 991.4476 951.7194 -454.8597 converged normally

Les mêmes informations sont disponibles directement dans le sous-objet fit de l’objet contenant les résultats :

kable (res$fit)
file chisq df npar pvalue rmsea srmr nnfi cfi bic aic logl status
ts1 ts1 5.9521 6 21 0.4286 0.0000 0.0493 1.0007 1.0000 1095.7189 1055.9906 -506.9953 converged normally
ts2 ts2 1.2039 6 21 0.9767 0.0000 0.0136 1.0784 1.0000 996.7993 957.0711 -457.5355 converged normally
ts3 ts3 1.2499 5 22 0.9400 0.0000 0.0158 1.0755 1.0000 990.8292 949.2092 -452.6046 converged normally
ts4 ts4 10.0380 7 20 0.1864 0.0941 0.0349 0.9607 0.9817 981.6660 943.8296 -451.9148 converged normally
ts5 ts5 7.1295 6 21 0.3090 0.0620 0.0436 0.9824 0.9930 991.4476 951.7194 -454.8597 converged normally

8.7.4 Les corrélations observées

Enfin, le fichier externe ts1Psi.csv (pour l’individu d’identifiant ts1) contient notamment les corrélations entre les variables observées32.

setwd("~/recherche/methodes/GIMME/output/individual")
kable (read.csv ("ts1Psi.csv"))
X V1lag V2lag V3lag V1 V2 V3
V1lag 1.0000 0.2206 0.3756 0.0000 0.0000 0.0000
V2lag 0.2206 1.0000 0.5471 0.0000 0.0000 0.0000
V3lag 0.3756 0.5471 1.0000 0.0000 0.0000 0.0000
V1 0.0000 0.0000 0.0000 0.7987 0.0000 0.0000
V2 0.0000 0.0000 0.0000 0.0000 0.4708 0.0000
V3 0.0000 0.0000 0.0000 0.0000 0.0000 0.1229

Dans l’environnement \(R\), ces corrélations peuvent être calculées facilement à partir des données qui se trouvent dans le sous-objet data :

head (res$data$ts1)
##       V1lag     V2lag    V3lag        V1        V2       V3
## 1 -0.695598 -0.381068 4.528117 -0.815085 -2.730419 3.160198
## 2 -0.815085 -2.730419 3.160198  0.253186 -2.268427 1.926741
## 3  0.253186 -2.268427 1.926741  0.813265 -0.866214 2.063980
## 4  0.813265 -0.866214 2.063980  0.292352  0.430201 3.061942
## 5  0.292352  0.430201 3.061942  0.250911  0.813786 3.903032
## 6  0.250911  0.813786 3.903032  1.094363 -0.380292 4.145783
kable (cor (res$data$ts1 [,1:3]))
V1lag V2lag V3lag
V1lag 1.0000000 0.2205632 0.3756033
V2lag 0.2205632 1.0000000 0.5470933
V3lag 0.3756033 0.5470933 1.0000000

On retrouve ainsi la corrélation de 0.22 entre V1 et V2.

9 Un exemple de mise en oeuvre et de résultats de l’extension S-GIMME avec le package gimme (version 0.5-1)

La procédure S-GIMME permet, en plus de la procédure GIMME standard, de rechercher des sous-groupes homogènes d’individus, autrement dit des sous-groupes dont les réseaux individuels sont proches.

9.1 Les données

La proécédure S-GIMME ne peut pas être mise en oeuvre avec les données utilisées jusqu’à présent parce que le nombre d’individus est trop réduit.

On a donc recours à un autre jeu de données fictives, mis à disposition dans une vignette de présentation de la procédure CS-GIMME. Il s’agit d’une archive zip téléchargeable ici contenant 25 fichiers (un par individu) au format texte. Une fois téléchargé, les fichiers de cette archive doivent être extraits et stockés dans un répertoire vide (appelé data_sgimme dans le code qui suit). Les commandes suivantes ont pour fonction de créer une liste (appelée lx) comprenant le tableau de données de chaque individu. Les individus sont repérés par les identifiants S1, S2, … S25.

setwd("~/recherche/methodes/GIMME/data_sgimme")
x <- list.files(pattern="*.txt")
lx <- lapply(x, function (x) read.csv (x, header = F))
names (lx) <- paste ("S", 1:25, sep = "")

Pour chacun des 25 individus, le tableau de données comporte 5 variables mesurées lors de 121 moments temporels. Les mesures enregistrées aux six premiers moments temporels pour l’individu S1 sont indiquées ci-dessous :

kable (head (lx[[1]]))
V1 V2 V3 V4 V5
-0.68910 -1.08629 -3.36396 -1.29537 -0.56248
0.02430 0.13298 -1.03891 -0.57535 0.14901
0.28033 2.11835 -1.88308 -0.85243 -0.25453
-2.77616 0.71784 -1.08406 -1.80678 0.11518
-2.73240 -0.36843 -0.62537 -0.93683 0.34408
-2.21934 -0.34673 -1.75807 -0.63868 -2.47445

9.2 Les arguments spécifiques de la fonction gimmeSEM pour la procédure S-GIMME

La fonction pour mettre en oeuvre la procédure S-GIMME est la même que celle utilisée pour la procédure GIMME standard : gimmeSEM. Elle comporte plusieurs arguments spécifiques à la situation où l’on recherche des sous-groupes homogènes :

  • subgroup : cet argument logique permet de mettre en oeuvre la recherche de sous-groupes (la valeur par défaut est FALSE)

  • subcutoff : le pourcentage d’individus ayant une piste significative nécessaire pour intégrer la piste au modèle du sous-groupe (la valeur par défaut est de 0.5, soit 50%)

  • subfeature : les caractéristiques des modèles à utiliser pour regrouper les individus. Le regroupement peut se faire seulement à partir des similitudes entre les pistes contemporaines des réseaux, seulement à partir des pistes décalées ou à partir des pistes contemporaines et décalées. La prise en compte des pistes contemporaines et décalées est la valeur par défaut (lag & contemp)

9.3 Mise en oeuvre de la procédure

Les commandes suivantes mettent en oeuvre la procédure S-GIMME à partir des données contenues dans la liste lx. Les résultats sont stockés dans l’objet ressg et exportés sous forme de fichiers dans le répertoire outputsg. Les autres options sont explicitées ci-dessus et dans la description de la procédure GIMME standard.

setwd("~/recherche/methodes/GIMME")  # définition du répertoire par défaut
library (gimme)
ressg <- gimmeSEM(data = lx, out = "outputsg", ar = T, plot = T, subgroup = T, sub_feature = "lag & contemp", standardize = F, groupcutoff = .75, subcutoff = .5)

Le répertoire exetrne contenant les résultats outputsg contient 6 fichiers et deux répertoires (dont le contenu est décrit en détail dans les sections suivantes) :

  • fichier summaryPathsPlot.pdf : un graphique présentant un résumé des résultats

  • fichier indivPathEstimates.csv : les coefficients des modèles individuels

  • fichier similarityMatrix.csv : matrice de similarités entre les individus composée du nombre de pistes causales de même signe présentes dans les modèles individuels (cf. ici pour les détails)

  • fichier summaryFit.csv : les indicateurs d’adéquation des modèles individuels

  • fichier summaryPathCounts.csv : nombre d’individus chez lesquels telle piste est présente

  • fichier summaryPathCountsMatrix.csv : même information que la précédente présentée sous forme de matrice

  • répertoire individual qui comprend plusieurs fichiers :

    • S1Plot.pdf : le modèle individuel de l’individu ayant pour identifiant S1 (un fichier par individu)

    • S1Betas.csv : les valeurs des coefficients de piste du modèle de l’individu S1 (un fichier par individu)

    • S1StdErrors.csv : les erreurs standards des coefficients de piste du modèle de l’individu S1 (un fichier par individu)

    • ts1Psi.csv : les corrélations (contemporaines) entre les variables pour l’individu S1 (un fichier par individu)

  • répertoire subgroup qui comprend plusieurs fichiers :

    • subgroup1Plot.pdf : le modèle du sous-groupe 1 (un fichier par sous-groupe)

    • fichier subgroup1PathCountsMatrix.csv : nombre d’individus du sous-groupe 1 chez lesquels telle piste est présente (un fichier par sous-groupe)

9.4 Le nombre de groupes identifiés

Il n’existe pas d’élément spécifique dans l’objet résultat pour indiquer le nombre de groupes identifiés33. On peut toutefois l’obtenir avec la commande suivante qui fournit le nombre d’individus composant chacun des groupes.

table (ressg$fit$sub_membership)
## 
##  1  2 
## 12 13

La procédure a donc constitué deux sous-groupes, l’un comportant 12 individus et le second 13.

Si un répertoire de destination a été indiqué pour stocker les résultats (ce qui est le cas dans cet exemple, avec l’argument out = "outputsg"), il est aussi possible de regarder le nombre de fichiers pdf contenus dans le sous-répertoire subgroup.

9.5 Le résumé des résultats

Le fichier externe summaryPathsPlot.pdf contient la représentation graphique résumée des résultats. Ce graphique peut être aussi obtenu avec la commande suivante :

plot (ressg)
## Please specify a file id for individual plots. Otherwise, summary plot is presented.

Enrichie avec l’option edge.labels de qgraph, la représentation graphique se présente comme suit :

library (qgraph)
qgraph (ressg$group_plot, DoNotPlot = F, edge.labels = T)

Les conventions utilisées sont les suivantes :

  • les traits pleins correspondent aux effets contemporains ;

  • les traits tiretés correspondent aux effets décalés ;

  • Les pistes noires correspondent au modèle général (au niveau du groupe constitué par l’ensemble des individus). Leur largeur est proportionnelle au nombre d’individus chez lesquels la piste est présente.

  • Les pistes grises correspondent aux pistes présentes dans les modèles individuels. Leur largeur est proportionnelle au nombre d’individus chez lesquels la piste est présente.

  • Les pistes de couleur verte correspondent aux pistes présentes dans les modèles des sous-groupes. Leur largeur est proportionnelle au nombre d’individus chez lesquels la piste est présente. Il est important de noter que les pistes vertes ne sont pertinentes généralement que pour un seul sous-groupe. Par exemple, comme on le verra plus loin, la piste contemporaine entre V1 et V5 est présente dans le modèle du sous-groupe 1, mais pas dans le modèle du sous-groupe 2 ; c’est l’inverse pour la piste contemporaine entre V2 et V1 (présente dans le modèle du sous-groupe 2, mais pas dans le modèle du sous-groupe 1).

Les étiquettes ajoutées sur les pistes correspondent aux pourcentages d’individus chez lesquels la piste est présente. Ces pourcentages sont élevés chez les pistes du modèle général (le seuil a été fixée à 75%), plus faibles pour les pistes des modèles de sous-groupes (le seuil a été fixée à 50%) et faibles pour les pistes spécifiques (on note par exemple un pourcentage de 16% pour l’effet décalé de V3 sur V4, ce qui signifie qu’elle est présente dans 4 modèles individuels sur 25).

9.6 Le modèle général (au niveau du groupe composé par l’ensemble des individus)

Le modèle général comporte 9 pistes, dont les 5 auto-régressions. Ces pistes sont présentes dans tous les modèles individuels.

qgraph (ressg$group_plot, DoNotPlot = F, edge.labels = T, minimum = 0.74)

Le comptage du nombre de pistes présentes dans les modèles individuels est disponible :

1) dans le fichier externe summaryPathCounts.csv

setwd("~/recherche/methodes/GIMME/outputsg")
kable (read.csv ("summaryPathCounts.csv"))
dv iv count.group count.subgroup2 count.subgroup1 count.ind
V1 V1lag 25 0 0 0
V4 V2 25 0 0 0
V2 V2lag 25 0 0 0
V1 V3 25 0 0 0
V2 V3 25 0 0 0
V4 V3 25 0 0 0
V3 V3lag 25 0 0 0
V4 V4lag 25 0 0 0
V5 V5lag 25 0 0 0
V1 V2 0 13 0 0
V5 V3 0 13 0 1
V5 V4 0 13 0 1
V5 V1 0 0 12 1
V1 V4 0 0 12 2
V4 V1 0 0 0 4
V4 V3lag 0 0 0 4
V1 V4lag 0 0 0 4
V5 V4lag 0 0 0 4
V5 V1lag 0 0 0 3
V5 V2lag 0 0 0 3
V3 V4lag 0 0 0 3
V3 V1 0 0 0 2
V1 V2lag 0 0 0 2
V1 V3lag 0 0 0 2
V3 V5 0 0 0 2
V4 V5 0 0 0 2
V4 V5lag 0 0 0 2
V2 V1 0 0 0 1
V2 V1lag 0 0 0 1
V3 V1lag 0 0 0 1
V4 V1lag 0 0 0 1
V5 V2 0 0 0 1
V4 V2lag 0 0 0 1
V2 V3lag 0 0 0 1
V5 V3lag 0 0 0 1
V2 V4 0 0 0 1
V3 V4 0 0 0 1
V2 V5 0 0 0 1
V1 V5lag 0 0 0 1

On repère facilement dans ce fichier :

  • les pistes du modèle général (count.group) : par exemple l’influence contemporaine de V2 sur V4 ;

  • les pistes de chaque modèle de sous-groupe (count.subgroup1 et count.subgroup2) : par exemple l’influence contemporaine de V2 sur V1 dans le modèle du sous-groupe 1 et l’influence contemporaine de V1 sur V5 dans le modèle du sous-groupe 2.

2) dans le sous_objet path_counts avec une présentation plus compacte :

kable (ressg$path_counts)
V1lag V2lag V3lag V4lag V5lag V1 V2 V3 V4 V5
V1 25 2 2 4 1 0 13 25 14 0
V2 1 25 1 0 0 1 0 25 1 1
V3 1 0 25 3 0 2 0 0 1 2
V4 1 1 4 25 2 4 25 25 0 2
V5 3 3 1 4 25 13 1 14 14 0

3) dans le fichier externe summaryPathCountsMatrix.csv avec la même représentation matricielle :

setwd("~/recherche/methodes/GIMME/outputsg")
kable (read.csv ("summaryPathCountsMatrix.csv"))
V1lag V2lag V3lag V4lag V5lag V1 V2 V3 V4 V5
25 2 2 4 1 0 13 25 14 0
1 25 1 0 0 1 0 25 1 1
1 0 25 3 0 2 0 0 1 2
1 1 4 25 2 4 25 25 0 2
3 3 1 4 25 13 1 14 14 0
names (ressg)
##  [1] "data"            "path_est_mats"   "varnames"       
##  [4] "n_vars_total"    "n_lagged"        "n_endog"        
##  [7] "fit"             "path_se_est"     "plots"          
## [10] "group_plot"      "sub_plots"       "subgroup"       
## [13] "path_counts"     "path_counts_sub" "vcov"           
## [16] "vcovfull"        "sim_matrix"      "syntax"         
## [19] "lvgimme"

4) avec la fonction print :

print (ressg)
## Please specify a file id for individual coefficient matrix.  
##  Otherwise, a summary count matrix is presented below. 
## 
## Lagged Count Matrix for Sample 
##    V1lag V2lag V3lag V4lag V5lag
## V1    25     2     2     4     1
## V2     1    25     1     0     0
## V3     1     0    25     3     0
## V4     1     1     4    25     2
## V5     3     3     1     4    25
## 
## Contemporaneous Count Matrix for Sample 
##    V1 V2 V3 V4 V5
## V1  0 13 25 14  0
## V2  1  0 25  1  1
## V3  2  0  0  1  2
## V4  4 25 25  0  2
## V5 13  1 14 14  0

Cette fonction permet en outre d’obtenir les moyennes des valeurs de chaque coefficient de piste calculées àpartir de l’ensemble des modèles individuels. Rappelons ici que ces moyennes sont calculées en attribuant la valeur 0 aux pistes non présentes dans un modèle individuel, ce qui est discutable comme cela a été exposé plus haut

print (ressg, mean = T)
## Please specify a file id for individual coefficient matrix.  
##  Otherwise, a summary average matrix is presented below. 
## 
## Lagged Average Matrix for Sample 
##    V1lag V2lag V3lag V4lag V5lag
## V1  0.13 -0.03 -0.04 -0.06 -0.02
## V2 -0.01  0.25 -0.02  0.00  0.00
## V3  0.02  0.00  0.24 -0.04  0.00
## V4 -0.01  0.01 -0.04  0.10  0.02
## V5 -0.05 -0.06 -0.01 -0.06  0.17
## 
## Contemporaneous Average Matrix for Sample 
##       V1    V2    V3   V4    V5
## V1  0.00  0.31  0.01 0.22  0.00
## V2  0.03  0.00  0.42 0.02  0.02
## V3 -0.12  0.00  0.00 0.03 -0.02
## V4  0.06 -0.02  0.52 0.00 -0.01
## V5  0.19  0.02 -0.04 0.30  0.00

9.7 Les modèles des sous-groupes

Comme on l’a vu, la procédure S-GIMME a permis de détecter deux sous-groupes relativement homogènes. Le sous-répertoire subgroup contient les deux représentations graphiques de ces modèles sous formes de fichiers pdf. Ils peuvent aussi être obtenus avec les commandes suivantes :

par (mfrow = c(1,2))
qgraph (ressg$sub_plots[[1]], DoNotPlot = F, title = "Sous-groupe 1", edge.labels = T)
qgraph (ressg$sub_plots[[2]], DoNotPlot = F, title = "Sous-groupe 2", edge.labels = T)

par (mfrow = c(1,1))

En conservant uniquement les pistes dans le modèle de groupe et dans le modèle de chaque sous-groupe, on obtient une version plus épurée de ces graphiques :

par (mfrow = c(1,2))
qgraph (ressg$sub_plots[[1]], DoNotPlot = F, title = "Sous-groupe 1", minimum = 0.49, edge.labels = T)
qgraph (ressg$sub_plots[[2]], DoNotPlot = F, title = "Sous-groupe 2", minimum = 0.49, edge.labels = T)

par (mfrow = c(1,1))

Les fichiers csv dans le sous-répertoire subgroup contiennent le comptage du nombre de pistes présentes dans les modèles individuels :

setwd("~/recherche/methodes/GIMME/outputsg/subgroup")
kable (read.csv ("subgroup1PathCountsMatrix.csv"))
X V1lag V2lag V3lag V4lag V5lag V1 V2 V3 V4 V5
V1 12 2 2 3 0 0 0 12 12 0
V2 1 12 0 0 0 0 0 12 0 0
V3 1 0 12 2 0 1 0 0 1 0
V4 0 1 0 12 0 0 12 12 0 0
V5 0 2 1 3 12 12 1 1 1 0
kable (read.csv ("subgroup2PathCountsMatrix.csv"))
X V1lag V2lag V3lag V4lag V5lag V1 V2 V3 V4 V5
V1 13 0 0 1 1 0 13 13 2 0
V2 0 13 1 0 0 1 0 13 1 1
V3 0 0 13 1 0 1 0 0 0 2
V4 1 0 4 13 2 4 13 13 0 2
V5 3 1 0 1 13 1 0 13 13 0

Ces informations sont aussi disponibles dans l’objet path_counts_sub :

ressg$path_counts_sub
## [[1]]
##    V1lag V2lag V3lag V4lag V5lag V1 V2 V3 V4 V5
## V1    12     2     2     3     0  0  0 12 12  0
## V2     1    12     0     0     0  0  0 12  0  0
## V3     1     0    12     2     0  1  0  0  1  0
## V4     0     1     0    12     0  0 12 12  0  0
## V5     0     2     1     3    12 12  1  1  1  0
## 
## [[2]]
##    V1lag V2lag V3lag V4lag V5lag V1 V2 V3 V4 V5
## V1    13     0     0     1     1  0 13 13  2  0
## V2     0    13     1     0     0  1  0 13  1  1
## V3     0     0    13     1     0  1  0  0  0  2
## V4     1     0     4    13     2  4 13 13  0  2
## V5     3     1     0     1    13  1  0 13 13  0

9.8 Les modèles individuels

Les résultats des modèles individuels s’obtiennent exactement comme dans le cas de la procédure GIMME standard. Les différentes possibilités pour accéder à ces résultats a été présenté plus haut. Pour ne pas alourdir le document, on ne reprendra pas ces informations ici.

9.9 L’adéquation des modèles individuels

L’adéquation de tous les modèles individuels se trouve dans le fichier externe summaryFit.csv :

setwd("~/recherche/methodes/GIMME/outputsg")
kable (read.csv ("summaryFit.csv"), digits = 3)
file chisq df npar pvalue rmsea srmr nnfi cfi bic aic logl status sub_membership modularity
S1 32.198 22 43 0.074 0.062 0.050 0.968 0.984 3845.978 3726.116 -1820.058 converged normally 1 0.148
S10 23.507 20 45 0.265 0.038 0.058 0.980 0.991 3662.288 3536.851 -1723.425 converged normally 1 NA
S11 30.371 23 42 0.139 0.052 0.052 0.969 0.984 3662.238 3545.163 -1730.582 converged normally 1 NA
S12 22.310 22 43 0.442 0.011 0.035 0.999 1.000 3727.454 3607.591 -1760.796 converged normally 1 NA
S13 21.445 20 45 0.371 0.024 0.048 0.989 0.995 3501.631 3376.194 -1643.097 converged normally 2 NA
S14 29.789 20 45 0.073 0.064 0.045 0.964 0.984 3669.448 3544.011 -1727.005 converged normally 2 NA
S15 24.306 20 45 0.229 0.042 0.032 0.979 0.990 3671.067 3545.630 -1727.815 converged normally 2 NA
S16 47.684 22 43 0.001 0.099 0.050 0.902 0.952 3735.385 3615.523 -1764.762 converged normally 2 NA
S17 27.309 20 45 0.127 0.055 0.052 0.960 0.982 3545.007 3419.570 -1664.785 converged normally 2 NA
S18 20.525 20 45 0.426 0.015 0.034 0.998 0.999 3550.375 3424.938 -1667.469 converged normally 2 NA
S19 29.948 20 45 0.071 0.064 0.050 0.966 0.985 3804.406 3678.969 -1794.485 converged normally 2 NA
S2 30.981 22 43 0.096 0.058 0.061 0.964 0.982 3764.769 3644.907 -1779.454 converged normally 1 NA
S20 26.827 21 44 0.177 0.048 0.038 0.972 0.987 3586.062 3463.412 -1687.706 converged normally 2 NA
S21 37.990 20 45 0.009 0.087 0.045 0.939 0.973 3800.753 3675.316 -1792.658 converged normally 2 NA
S22 31.596 21 44 0.064 0.065 0.045 0.958 0.980 3661.910 3539.260 -1725.630 converged normally 2 NA
S23 27.731 21 44 0.148 0.052 0.049 0.977 0.989 3757.836 3635.186 -1773.593 converged normally 2 NA
S24 30.125 22 43 0.116 0.056 0.041 0.975 0.988 3839.760 3719.897 -1816.949 converged normally 2 NA
S25 25.341 21 44 0.233 0.042 0.053 0.981 0.991 3656.964 3534.315 -1723.157 converged normally 2 NA
S3 35.487 23 42 0.046 0.067 0.052 0.956 0.978 3728.198 3611.123 -1763.562 converged normally 1 NA
S4 36.213 22 43 0.029 0.073 0.053 0.957 0.979 3763.179 3643.316 -1778.658 converged normally 1 NA
S5 26.995 22 43 0.211 0.044 0.059 0.970 0.985 3570.762 3450.899 -1682.450 converged normally 1 NA
S6 39.243 23 42 0.019 0.077 0.048 0.929 0.964 3568.120 3451.045 -1683.523 converged normally 1 NA
S7 26.496 23 42 0.278 0.036 0.040 0.984 0.992 3643.843 3526.768 -1721.384 converged normally 1 NA
S8 33.601 22 43 0.054 0.066 0.052 0.956 0.978 3677.718 3557.855 -1735.928 converged normally 1 NA
S9 31.974 21 44 0.059 0.066 0.066 0.956 0.979 3591.132 3468.483 -1690.241 converged normally 1 NA

Les mêmes informations figurent dans l’objet fit :

kable (ressg$fit, digits = 3)
file chisq df npar pvalue rmsea srmr nnfi cfi bic aic logl status sub_membership modularity
S1 32.198 22 43 0.074 0.062 0.050 0.968 0.984 3845.978 3726.116 -1820.058 converged normally 1 0.1485
S10 23.507 20 45 0.265 0.038 0.058 0.980 0.991 3662.288 3536.851 -1723.425 converged normally 1
S11 30.371 23 42 0.139 0.052 0.052 0.969 0.984 3662.238 3545.163 -1730.582 converged normally 1
S12 22.310 22 43 0.442 0.011 0.035 0.999 1.000 3727.454 3607.591 -1760.796 converged normally 1
S13 21.445 20 45 0.371 0.024 0.048 0.989 0.995 3501.631 3376.194 -1643.097 converged normally 2
S14 29.789 20 45 0.073 0.064 0.045 0.964 0.984 3669.448 3544.011 -1727.005 converged normally 2
S15 24.306 20 45 0.229 0.042 0.032 0.979 0.990 3671.067 3545.630 -1727.815 converged normally 2
S16 47.684 22 43 0.001 0.099 0.050 0.902 0.952 3735.385 3615.523 -1764.762 converged normally 2
S17 27.309 20 45 0.127 0.055 0.052 0.960 0.982 3545.007 3419.570 -1664.785 converged normally 2
S18 20.525 20 45 0.426 0.015 0.034 0.998 0.999 3550.375 3424.938 -1667.469 converged normally 2
S19 29.948 20 45 0.071 0.064 0.050 0.966 0.985 3804.406 3678.969 -1794.485 converged normally 2
S2 30.981 22 43 0.096 0.058 0.061 0.964 0.982 3764.769 3644.907 -1779.454 converged normally 1
S20 26.827 21 44 0.177 0.048 0.038 0.972 0.987 3586.062 3463.412 -1687.706 converged normally 2
S21 37.990 20 45 0.009 0.087 0.045 0.939 0.973 3800.753 3675.316 -1792.658 converged normally 2
S22 31.596 21 44 0.064 0.065 0.045 0.958 0.980 3661.910 3539.260 -1725.630 converged normally 2
S23 27.731 21 44 0.148 0.052 0.049 0.977 0.989 3757.836 3635.186 -1773.593 converged normally 2
S24 30.125 22 43 0.116 0.056 0.041 0.975 0.988 3839.760 3719.897 -1816.949 converged normally 2
S25 25.341 21 44 0.233 0.042 0.053 0.981 0.991 3656.964 3534.315 -1723.157 converged normally 2
S3 35.487 23 42 0.046 0.067 0.052 0.956 0.978 3728.198 3611.123 -1763.562 converged normally 1
S4 36.213 22 43 0.029 0.073 0.053 0.957 0.979 3763.179 3643.316 -1778.658 converged normally 1
S5 26.995 22 43 0.211 0.044 0.059 0.970 0.985 3570.762 3450.899 -1682.450 converged normally 1
S6 39.243 23 42 0.019 0.077 0.048 0.929 0.964 3568.120 3451.045 -1683.523 converged normally 1
S7 26.496 23 42 0.278 0.036 0.040 0.984 0.992 3643.843 3526.768 -1721.384 converged normally 1
S8 33.601 22 43 0.054 0.066 0.052 0.956 0.978 3677.718 3557.855 -1735.928 converged normally 1
S9 31.974 21 44 0.059 0.066 0.066 0.956 0.979 3591.132 3468.483 -1690.241 converged normally 1

9.10 La matrice de similarités entre les individus

La recherche de sous-groupes homogènes est réalisée à partir du calcul de la similarité des réseaux individuels. La procédure comptabilise le nombre de pistes de même signe présentes dans les modèles individuels deux par deux.

Cette matrice est stockée, sous forme de fichier, dans le répertoire de destination des résultats :

setwd("~/recherche/methodes/GIMME/outputsg")
kable (read.csv ("similarityMatrix.csv"))
S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16 S17 S18 S19 S20 S21 S22 S23 S24 S25
0 5 5 5 3 3 3 5 3 5 4 6 3 4 2 2 1 3 4 3 3 4 2 3 2
5 0 4 7 3 3 5 5 4 7 5 7 3 5 2 2 1 3 2 3 3 3 2 3 2
5 4 0 7 3 5 3 4 3 4 3 5 3 2 3 2 2 2 4 2 3 3 2 3 2
5 7 7 0 3 9 5 5 8 11 4 9 3 4 4 2 3 3 3 4 4 4 2 4 3
3 3 3 3 0 2 3 3 2 2 2 3 2 2 1 2 1 2 2 2 2 2 2 3 2
3 3 5 9 2 0 2 3 5 7 2 5 2 3 2 2 4 2 2 3 2 2 3 2 3
3 5 3 5 3 2 0 3 3 3 4 4 2 2 1 2 1 3 2 2 3 2 2 2 2
5 5 4 5 3 3 3 0 3 4 3 5 3 3 2 2 1 2 2 3 2 3 2 3 2
3 4 3 8 2 5 3 3 0 8 4 6 1 1 0 1 2 2 1 1 2 1 1 1 2
5 7 4 11 2 7 3 4 8 0 6 9 2 6 2 2 2 5 4 5 5 3 1 2 2
4 5 3 4 2 2 4 3 4 6 0 6 1 3 0 1 0 3 2 1 3 2 1 1 1
6 7 5 9 3 5 4 5 6 9 6 0 3 6 5 4 4 5 6 4 7 6 4 6 4
3 3 3 3 2 2 2 3 1 2 1 3 0 7 7 4 3 6 4 7 4 6 6 5 4
4 5 2 4 2 3 2 3 1 6 3 6 7 0 8 5 4 8 6 10 6 7 8 6 5
2 2 3 4 1 2 1 2 0 2 0 5 7 8 0 5 5 6 6 8 6 7 7 7 5
2 2 2 2 2 2 2 2 1 2 1 4 4 5 5 0 4 6 7 6 7 5 6 6 6
1 1 2 3 1 4 1 1 2 2 0 4 3 4 5 4 0 3 4 4 4 3 6 4 6
3 3 2 3 2 2 3 2 2 5 3 5 6 8 6 6 3 0 8 9 9 6 7 5 5
4 2 4 3 2 2 2 2 1 4 2 6 4 6 6 7 4 8 0 7 10 7 6 7 6
3 3 2 4 2 3 2 3 1 5 1 4 7 10 8 6 4 9 7 0 7 6 8 6 5
3 3 3 4 2 2 3 2 2 5 3 7 4 6 6 7 4 9 10 7 0 7 6 7 7
4 3 3 4 2 2 2 3 1 3 2 6 6 7 7 5 3 6 7 6 7 0 6 7 5
2 2 2 2 2 3 2 2 1 1 1 4 6 8 7 6 6 7 6 8 6 6 0 6 6
3 3 3 4 3 2 2 3 1 2 1 6 5 6 7 6 4 5 7 6 7 7 6 0 6
2 2 2 3 2 3 2 2 2 2 1 4 4 5 5 6 6 5 6 5 7 5 6 6 0

Elle constitue aussi un objet dans l’environnement de travail :

kable (ressg$sim_matrix)
S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16 S17 S18 S19 S20 S21 S22 S23 S24 S25
S1 0 5 5 5 3 3 3 5 3 5 4 6 3 4 2 2 1 3 4 3 3 4 2 3 2
S2 5 0 4 7 3 3 5 5 4 7 5 7 3 5 2 2 1 3 2 3 3 3 2 3 2
S3 5 4 0 7 3 5 3 4 3 4 3 5 3 2 3 2 2 2 4 2 3 3 2 3 2
S4 5 7 7 0 3 9 5 5 8 11 4 9 3 4 4 2 3 3 3 4 4 4 2 4 3
S5 3 3 3 3 0 2 3 3 2 2 2 3 2 2 1 2 1 2 2 2 2 2 2 3 2
S6 3 3 5 9 2 0 2 3 5 7 2 5 2 3 2 2 4 2 2 3 2 2 3 2 3
S7 3 5 3 5 3 2 0 3 3 3 4 4 2 2 1 2 1 3 2 2 3 2 2 2 2
S8 5 5 4 5 3 3 3 0 3 4 3 5 3 3 2 2 1 2 2 3 2 3 2 3 2
S9 3 4 3 8 2 5 3 3 0 8 4 6 1 1 0 1 2 2 1 1 2 1 1 1 2
S10 5 7 4 11 2 7 3 4 8 0 6 9 2 6 2 2 2 5 4 5 5 3 1 2 2
S11 4 5 3 4 2 2 4 3 4 6 0 6 1 3 0 1 0 3 2 1 3 2 1 1 1
S12 6 7 5 9 3 5 4 5 6 9 6 0 3 6 5 4 4 5 6 4 7 6 4 6 4
S13 3 3 3 3 2 2 2 3 1 2 1 3 0 7 7 4 3 6 4 7 4 6 6 5 4
S14 4 5 2 4 2 3 2 3 1 6 3 6 7 0 8 5 4 8 6 10 6 7 8 6 5
S15 2 2 3 4 1 2 1 2 0 2 0 5 7 8 0 5 5 6 6 8 6 7 7 7 5
S16 2 2 2 2 2 2 2 2 1 2 1 4 4 5 5 0 4 6 7 6 7 5 6 6 6
S17 1 1 2 3 1 4 1 1 2 2 0 4 3 4 5 4 0 3 4 4 4 3 6 4 6
S18 3 3 2 3 2 2 3 2 2 5 3 5 6 8 6 6 3 0 8 9 9 6 7 5 5
S19 4 2 4 3 2 2 2 2 1 4 2 6 4 6 6 7 4 8 0 7 10 7 6 7 6
S20 3 3 2 4 2 3 2 3 1 5 1 4 7 10 8 6 4 9 7 0 7 6 8 6 5
S21 3 3 3 4 2 2 3 2 2 5 3 7 4 6 6 7 4 9 10 7 0 7 6 7 7
S22 4 3 3 4 2 2 2 3 1 3 2 6 6 7 7 5 3 6 7 6 7 0 6 7 5
S23 2 2 2 2 2 3 2 2 1 1 1 4 6 8 7 6 6 7 6 8 6 6 0 6 6
S24 3 3 3 4 3 2 2 3 1 2 1 6 5 6 7 6 4 5 7 6 7 7 6 0 6
S25 2 2 2 3 2 3 2 2 2 2 1 4 4 5 5 6 6 5 6 5 7 5 6 6 0

Ainsi, les individus S1 et S2 partagent, dans leurs modèles respectives, 4 pistes de même signe.

10 Comparaisons empiriques entre les résultats de gimme, graphicalVAR et mlVAR

Parmi les différentes méthodes disponibles pour analyser des séries temporelles en réseaux dynamiques, les outils implementés dans les packages graphicalVAR (Epskamp, 2018) et mlVAR (Epskamp et al., 2018a) ont été fréquemment utilisés ces dernières années en psychologie (Epskamp et al., 2018b).

Le package graphicalVAR permet de représenter les réseaux dynamiques des relations contemporaines et décalées de séries temporelles observées sur un seul individu, tandis que mlVAR permet de construire un modèle général à partir de plusieurs réseaux individuels. Il n’est pas question de présenter en détail ces méthodes ici, mais seulement d’observer les similitudes et les différences entre les approches à partir des données fictives utilisées pour illustre la procédure GIMME. Les principales différences théoriques et méthodologiques entre ces méthodes ont été présentées dans une section antérieure.

Etant donné ces différences, on peut s’attendre à des résultats sensiblement différents pour le modèle de groupe (celui-ci étant davantage un modèle général pour GIMME et un modèle moyen pour mlVAR) et plus proches pour les analyses individuelles (mais pas identiques, car les coefficients contemporains et décalés ne sont pas estimés en même temps avec graphicalVAR). Par ailleurs, une étude récente (Bastiaansen et al., 2019) vient de montrer que l’analyse des mêmes séries temporelles par des chercheurs utilisant des méthodes différentes conduit à des résultats qui diffèrent de manière beaucoup plus substantielle que ce qu’on pourrait espérer. Les comparaisons (d’ampleur bien plus modestes) réalisées ici viendront compléter ces premières investigations méthodologiques qui devront se développer dans l’avenir afin d’assurer une meilleure convergence inter-méthodes.

10.1 Comparaison entre les estimations des réseaux individuels : gimme vs. graphicalVAR

Le package graphicalVAR permet d’estimer le réseau dynamique de séries temporelles de plusieurs variables mesurées auprès d’un seul individu. La procédure GIMME standard permet d’obtenir la même chose, mais comme on l’a vu plus haut, les estimations du réseau individuel sont ajustés en fonction du modèle général (celui tenant compte de l’ensemble des individus). Afin de rendre les résultats comparables entre les deux approches, on utilisera ici la fonction indSEM du package gimme, car celle-ci permet d’estimer un modèle individuel sans tenir compte de la structure générale.

La comparaison s’effectuera sur deux individus choisis aléatoirement du premier jeu de données et deux individus choisis aléatoirement du second jeu de donnéee .

set.seed(123)
sample (1:5, 2)  # 1er jeu de données
## [1] 3 2
sample (1:25, 2)  # 2e jeu de données
## [1]  3 10

Dans toutes les analyses, ce sont les paramètres par défaut des fonctions qui seront utilisées.

10.1.1 Deux individus du premier jeu de données

Les individus #2 et #4 ont été sélectionnés pour les comparaisons.

gvts2 <- graphicalVAR (ts[[2]])
gvts4 <- graphicalVAR (ts[[4]])
gits <- indSEM (data = ts, ar = T, plot = T, standardize = F)

10.1.1.1 Les deux réseaux estimés pour l’individu #2

par (mfrow = c(1,3))
plot (gvts2, include = "PCC", edge.labels = T, edge.label.cex = 1.5, layout = "circle", titles = F, title = "graphicalVAR : contemporain")
plot (gvts2, include = "PDC", edge.labels = T, edge.label.cex = 1.5, layout = "circle", titles = F, title = "graphicalVAR : décalé")
qgraph (gits$plots$ts2, DoNotPlot = F, posCol = "forestgreen", negCol = "red", edge.labels = T, edge.label.cex = 1.5, title = "Estimation GIMME")

La procédure graphicalVAR présente les résultats sous forme de deux graphiques séparés : le premier contient les relations contemporaines (non dirigées) et le second les relations décalées (dirigées). La procédure indSEM fournit un seul graphique, avec les relations contemporaines et décalées (toutes les deux dirigées) repérées respectivement par des traits pleins et des traits tiretés. Il existe des similitudes entre les deux estimations, mais aussi des différences :

  • les trois auto-régressions sont présentes dans les deux estimations, avec des intensités relativement semblables (pour les trois variables, respectivement 0.38, 0.42 et 0.50 pour graphicalVAR et 0.46, 0.53 et 0.56 pour gimme) ;

  • les liens décalés entre V1 et V2 et entre V3 et V1 sont présents avec le même signe dans les deux estimations (avec des coefficients respectifs de 0.46, et -0.23 pour graphicalVAR et 0.47 et -0.39 pour gimme) ;

  • graphicalVAR estime à la fois une relation contemporaine entre V2 et V3 (0.24) ainsi qu’un effet décalé de V2 sur V3 (0.23) ; gimme n’estime qu’un lien contemporain de V2 sur V3 (0.40) ;

  • graphicalVAR relève un lien décalé de V1 sur V2 (0.21) qui n’est pas présent dans le réseau gimme.

10.1.1.2 Les deux réseaux estimés pour l’individu #4

par (mfrow = c(1,3))
plot (gvts4, include = "PCC", edge.labels = T, edge.label.cex = 1.5, layout = "circle", titles = F, title = "graphicalVAR : contemporain")
plot (gvts4, include = "PDC", edge.labels = T, edge.label.cex = 1.5, layout = "circle", titles = F, title = "graphicalVAR : décalé")
qgraph (gits$plots$ts4, DoNotPlot = F, posCol = "forestgreen", negCol = "red", edge.labels = T, edge.label.cex = 1.5, title = "Estimation GIMME")

Pour l’individu #4 :

  • les trois auto-régressions sont présentes dans les deux estimations, avec des intensités plus élevées avec gimme (pour les trois variables, respectivement 0.54, 0.40 et 0.52 pour graphicalVAR et 0.72, 0.51 et 0.70 pour gimme) ;

  • la piste décalée entre V1 et V2 est présente dans les deux estimations (respectivement 0.35 et 0.42) ;

  • la piste décalée entre V1 et V3 est présente dans l’estimation graphicalVAR (0.15), mais pas dans l’estimation gimme ;

  • entre V2 et V3, graphicalVAR estime une piste décalée (0.32), tandis que gimme relève une piste contemporaine (0.33).

10.1.2 Deux individus du second jeu de données

Les individus #11 et #22 ont été sélectionnés pour les comparaisons.

gvlx11 <- graphicalVAR (lx[[11]])
gvlx22 <- graphicalVAR (lx[[22]])
gilx <- indSEM (data = lx, ar = T, plot = T, standardize = F)

10.1.2.1 Les deux réseaux estimés pour l’individu #11

par (mfrow = c(1,3))
plot (gvlx11, include = "PCC", edge.labels = T, edge.label.cex = 1.5, layout = "circle", titles = F, title = "graphicalVAR : contemporain")
plot (gvlx11, include = "PDC", edge.labels = T, edge.label.cex = 1.5, layout = "circle", titles = F, title = "graphicalVAR : décalé")
qgraph (gilx$plots$S11, DoNotPlot = F, posCol = "forestgreen", negCol = "red", edge.labels = T, edge.label.cex = 1.5, title = "Estimation GIMME")

Pour l’individu #11 :

  • aucune auto-régression n’est présente dans l’estimation graphicalVAR ; dans l’estimation gimme, elles sont nécessairement toutes présentes car leur présence a été imposée (argument AR = TRUE de la procédure par défaut). Leur intensité est relativement faible (0.28 pour la plus élevée et 0.02 pour la plus faible) ;

  • une seule autre piste décalée est présente dans les deux estimations : entre V3 et V1 ; son intensité est plus forte avec gimme qu’avec graphicalVAR(respectivement -0.44 et -0.14) ;

  • les liens contemporains (dirigés avec gimme, non dirigés avec graphicalVAR) ayant les intensités les plus élevées sont présents dans les deux estimations : V1-V5, V1-V3, V3-V4, V3-V2

  • des liens contemporains à intensités faibles présents dans le réseau graphicalVAR ne sont pas conservés par l’estimation gimme (V1-V4, V2-V4, V3-V5).

10.1.2.2 Les deux réseaux estimés pour l’individu #22

par (mfrow = c(1,3))
plot (gvlx22, include = "PCC", edge.labels = T, edge.label.cex = 3, layout = "circle", titles = F, title = "graphicalVAR : contemporain", cut = 0.2)
plot (gvlx22, include = "PDC", edge.labels = T, edge.label.cex = 3, layout = "circle", titles = F, title = "graphicalVAR : décalé", cut = 0.2)
qgraph (gilx$plots$S22, DoNotPlot = F, posCol = "forestgreen", negCol = "red", edge.labels = T, edge.label.cex = 1.5, title = "Estimation GIMME")

Pour l’individu #22 :

  • les auto-régressions sont présentes pour toutes les variables dans les deux estimations ; elles semblent légèrement plus élevées avec gimme ;

  • la structure générale des deux réseaux contemporains est assez semblable, mais on note des différences importantes dans l’intensité des coefficients :

    • le lien contemporain de V2 sur V1 dans gimme (0.55) est présent dans le réseau graphicalVAR sous forme d’un faible effet décalé de V2 sur V1 (0.05) et d’une faible relation contemporaine (0.05)

    • il en est de même pour l’effet contemporain dans gimmede V5 sur V4 (0.3) ; dans graphicalVAR, on trouve entre ces deux variables, à la fois une relation contemporaine (0.03) et un effet décalé (0.2)

    • l’effet contemporain de V3 sur V1 dans gimme (-0.45) ne se retrouve dans graphicalVAR qu’en lien contemporain de très faible intensité (-0.03)

    • l’effet contemporain de V4 sur V2 dans gimme (0.51) a une correspondance graphicalVAR, mais sous forme de lien contemporain de faible intensité (0.16)

    • les deux réseaux comportent un lien contemporain entre V5 et V4 d’une part et entre V3 et V4, d’intensité plus élevée dans gimme (0.3 vs. 0.03 et 0.73 vs. 0.46, respectivement)

  • le réseau décalé comporte des liens seulement mis en évidence par l’estimation gimme :

    • l’influence de V5 sur V2 (-0.31)

    • l’influence de V3 sur V4 (-0.22)

10.1.3 Bilan

Il est difficile de tirer un bilan général de cette comparaison limité qu’il faudrait généraliser en utilisant des données simulées. Il semble toutefois que les deux estimations donnent des réseaux dont la structure générale est globalement semblable. Il existe toutefois des différences non triviales dans l’intensité des coefficients estimés (plus élevées dans l’estimation gimme) et dans la présence/absence de certains liens, sans qu’il soit possible ici de décider si ce sont des faux positifs ou des faux négatifs et, si c’est le cas, quelle est alors l’estimation la plus efficiente.

10.2 Comparaison entre les estimations des réseaux de groupe : gimme vs. mlVAR

Le réseau de groupe n’a pas la même signification dans l’approche gimme et dans l’approche mlvar : modèle général dans le premier cas et modèle moyen dans le second cas.

La comparaison entre les résultats des deux estimations se fera là aussi avec les deux jeux de données utilisées précédemment : premier jeu de données avec 5 individus, 50 moments temporels et cinq variables et second jeu de donnéee avec 25 individus, 121 moments temporels et 5 variables. Les deux procédures sont mises en oeuvre avec les options par défaut des deux fonctions.

10.2.1 Comparaison des résultats obtenus avec le premier jeu de données

La fonction mlvar nécessite que les données soient organisées comme un tableau de données (alors qu’il faut une liste pour gimme). Les commandes suivantes permettent de construire ce tableau.

tsdf <- do.call (rbind.data.frame,ts)
tsdf$ID <- rep (paste ("ts", 1:5, sep = ""), each = 50)
head (tsdf)
##              V1        V2       V3  ID
## ts1.1 -0.695598 -0.381068 4.528117 ts1
## ts1.2 -0.815085 -2.730419 3.160198 ts1
## ts1.3  0.253186 -2.268427 1.926741 ts1
## ts1.4  0.813265 -0.866214 2.063980 ts1
## ts1.5  0.292352  0.430201 3.061942 ts1
## ts1.6  0.250911  0.813786 3.903032 ts1

L’application de la procédure mlVAR se fait avec la commande suivante. Les résultats sont stockés dans l’objet ts. La procédure gimme a déjà été mise en oeuvre sur ces données et les résultats stockés dans un objet appelé res et elle n’est pas reprise ici.

mlts <- mlVAR (tsdf, vars = names (tsdf)[1:3], idvar = "ID")
## 'estimator' argument set to 'lmer'
## 'temporal' argument set to 'correlated'
## 'contemporaneous' argument set to 'correlated'
## Estimating temporal and between-subjects effects
## boundary (singular) fit: see ?isSingular
## boundary (singular) fit: see ?isSingular
## boundary (singular) fit: see ?isSingular
## Warning in lmer_mlVAR(PredModel, augData, idvar, verbose = verbose,
## contemporaneous = contemporaneous, : Zero SD found in mean of following
## variables: V1, V2 - Between-subject effects could not be estimated
## Estimating contemporaneous effects
## boundary (singular) fit: see ?isSingular
## boundary (singular) fit: see ?isSingular
## boundary (singular) fit: see ?isSingular

Les résultats graphiques des deux estimations figurent ci-dessous. Pour mlVAR, on obtient un réseau avec les relations contemporaines (non dirigées) et un réseau avec les relations décalées (dirigées). Pour gimme, on a les liens contemporains et décalés sur le même graphique, mais le graphique n’indique pas la valeur des coefficients (la largeur des liens est proportionnelle au nombre d’individus chez lesquels la piste est significative).

par (mfrow = c(1,3))
plot (mlts, "cont", edge.labels = T, edge.label.cex = 3, layout = "circle", title = "mlVAR : contemporain")
## 'nonsig' argument set to: 'hide'
plot (mlts, "temporal", edge.labels = T, edge.label.cex = 3, layout = "circle", title = "mlVAR : décalé")
## 'nonsig' argument set to: 'hide'
qgraph (res$group_plot, DoNotPlot = F, edge.labels = T, minimum = 0.74, title = "gimme")

Les moyennes des coefficients des liens de l’estimation gimme peuvent toutefois être obtenues comme suit34 :

print (res, mean = T)
## Please specify a file id for individual coefficient matrix.  
##  Otherwise, a summary average matrix is presented below. 
## 
## Lagged Average Matrix for Sample 
##    V1lag V2lag V3lag
## V1  0.46  0.00 -0.08
## V2  0.41  0.55  0.00
## V3  0.06 -0.05  0.64
## 
## Contemporaneous Average Matrix for Sample 
##      V1   V2   V3
## V1 0.00 0.00 0.09
## V2 0.00 0.00 0.00
## V3 0.04 0.34 0.00

La comparaison entre les résultats fait apparaître les faits saillants suivants :

  • les auto-régressions des trois variables sont présentes dans les deux estimations et les valeurs des coefficients sont très proches : respectivement 0.50, 0.58 et 0.65 dans mlVAR et 0.46, 0.55 et 0.64 pour gimme ;

  • mlVAR retient deux autres liens décalés, celui entre V1 et V2 (0.41) et celui entre V1 et V3 (0.20). Seul le premier est présent dans le modèle général au sens de gimme avec un coefficient moyen identique (0.41). Le second n’est pas retenu dans le modèle général de gimme, parce que la piste décalée de V1 vers V3 n’est significative que dans un seul modèle individuel (avec un coefficient de 0.30 ; le coefficient moyen est donc de 0.06) ;

  • gimme ne retient qu’un seul lien contemporain dans le modèle général, celui entre V2 et V3 (0.34). Son intensité moyenne est comparable à celle du lien contemporain non dirigé apparaissant dans les résultats de mlVAR (0.39) ;

  • les deux autres pistes contemporaines (V1-V2 et V1-V3) sont présentes dans le modèle moyen de mlVAR (respectivement -0.19 et 0.17), mais ne sont pas retenues dans le modèle général de gimme :

    • dans les modèles individuels de gimme, il n’y a aucun individu ayant une piste de V1 vers V2 significative et aucun ayant une piste de V2 vers V1 significative ;

    • dans les modèles individuels de gimme, il y a un seul individu ayant une piste significative de V1 vers V3 (0.20 pour l’individu, soit une moyenne de 0.04) et un seul individu avec une piste significative de V3 vers V1 significative (0.45 pour l’individu, soit une moyenne de 0.09).

10.2.2 Comparaison des résultats obtenus avec le second jeu de données

Il faut tout d’abord transformer les données stockées dans un objet liste en un objet data.frame :

lxdf <- do.call (rbind.data.frame,lx)
lxdf$ID <- rep (paste ("S", 1:25, sep = ""), each = 121)
head (lxdf)
##            V1       V2       V3       V4       V5 ID
## S1.1 -0.68910 -1.08629 -3.36396 -1.29537 -0.56248 S1
## S1.2  0.02430  0.13298 -1.03891 -0.57535  0.14901 S1
## S1.3  0.28033  2.11835 -1.88308 -0.85243 -0.25453 S1
## S1.4 -2.77616  0.71784 -1.08406 -1.80678  0.11518 S1
## S1.5 -2.73240 -0.36843 -0.62537 -0.93683  0.34408 S1
## S1.6 -2.21934 -0.34673 -1.75807 -0.63868 -2.47445 S1

L’application de la procédure mlVAR se fait de la manière suivante :

mllx <- mlVAR (lxdf, vars = names (lxdf)[1:5], idvar = "ID")
## 'estimator' argument set to 'lmer'
## 'temporal' argument set to 'correlated'
## 'contemporaneous' argument set to 'correlated'
## Estimating temporal and between-subjects effects
## Estimating contemporaneous effects

Dans l’utilisation précédente du jeu de données, c’est la procédure S-GIMME qui avait été utilisée. Pour une comparaison plus directe, nous utiliserons ici la procédure GIMME standard :

gimmelx <- gimmeSEM(data = lx, ar = T, plot = T, standardize = F, groupcutoff = .75)

Les résultats des deux estimations du modèle au niveau du groupe sous forme graphique :

par (mfrow = c(1,3))
plot (mllx, "cont", edge.labels = T, edge.label.cex = 3, layout = "circle", title = "mlVAR : contemporain")
## 'nonsig' argument set to: 'hide'
plot (mllx, "temporal", edge.labels = T, edge.label.cex = 3, layout = "circle", title = "mlVAR : décalé")
## 'nonsig' argument set to: 'hide'
qgraph (gimmelx$group_plot, DoNotPlot = F, edge.labels = T, minimum = 0.74, title = "gimme")

Le nombre de pistes présentes dans les modèles individuels de gimme :

print (gimmelx)
## Please specify a file id for individual coefficient matrix.  
##  Otherwise, a summary count matrix is presented below. 
## 
## Lagged Count Matrix for Sample 
##    V1lag V2lag V3lag V4lag V5lag
## V1    25     1     2     5     1
## V2     0    25     2     0     0
## V3     2     2    25     1     2
## V4     0     1     3    25     2
## V5     3     3     0     4    25
## 
## Contemporaneous Count Matrix for Sample 
##    V1 V2 V3 V4 V5
## V1  0  6 25 25  1
## V2  3  0  3  5  2
## V3  1  4  0  4  4
## V4  3 25 25  0  3
## V5 12  1  1 10  0

Et les coefficients moyens des pistes estimées par gimme :

print (gimmelx, mean = T)
## Please specify a file id for individual coefficient matrix.  
##  Otherwise, a summary average matrix is presented below. 
## 
## Lagged Average Matrix for Sample 
##    V1lag V2lag V3lag V4lag V5lag
## V1  0.13 -0.02 -0.04 -0.05 -0.02
## V2  0.00  0.22  0.00  0.00  0.00
## V3  0.03 -0.03  0.19 -0.02 -0.03
## V4  0.00  0.01 -0.04  0.10  0.00
## V5 -0.05 -0.06  0.00 -0.06  0.18
## 
## Contemporaneous Average Matrix for Sample 
##       V1    V2    V3   V4   V5
## V1  0.00  0.10 -0.09 0.52 0.01
## V2  0.08  0.00  0.00 0.15 0.06
## V3 -0.03  0.10  0.00 0.06 0.02
## V4 -0.16  0.04  0.45 0.00 0.04
## V5  0.19 -0.02  0.02 0.19 0.00

Les similitudes et les différences entre les réseaux :

  • l’estimation mlvar retient, tout comme l’estimation gimme les 5 coefficients d’auto-régression. Les valeurs sont relativement proches dans les deux estimations (respectivement 0.16, 0.19, 0.22, 0.17, 0.23 pour mlVAR et 0.13, 0.22, 0.19, 0.10, 0.18 pour gimme) ;

  • le réseau mlVAR comprend plusieurs autres pistes décalées (V1-V5, V5-V4, V5-V3, V2-V4, V2-V3) d’intensité faible (la piste la plus élevée en valeur absolue est égale à -0.12) dont aucune n’est retenue dans le réseau gimme général. Au niveau des modèles individuels, chacune de ces pistes est présente au maximum deux fois sur 25.

  • les réseaux des pistes contemporaines montrent aussi des différences sensibles :

    • gimme retient 4 pistes (V2 -> V4, V3 -> V1, V3 -> V4, V4 -> V1) dont 2 seulement sont présentes dans le réseau mlVAR (V3 -> V4, V4 -> V1). Les deux pistes communes aux deux modèles sont celles ayant les coefficients les plus élevées dans le réseau mlVAR (respectivement 0.43 et 0.28) ; les valeurs correspondantes dans le réseau gimme sont respectivement de 0.45 et 0.52). Les deux pistes contemporaines spécifiques au réseau gimme ont des coefficients moyens égaux respectivement à 0.04 et -0.09, soit des intensités très faibles.

    • mlVAR met en évidence 4 liens contemporains spécifiques : V1-V5 (0.19), V5-V4 (0.21), V1-V2 (0.20) et V2-V3 (0.26). Ces pistes sont présentes, respectivement, dans 13, 13, 9 et 7 réseaux individuels35 estimés par gimme. Les liens contemporains présents dans le réseau mlVAR sont donc bien présents chez un nombre substantiel de modèles individuels estimés par gimme, mais pas en nombre suffisant pour émerger dans le modèle général.

10.2.3 Bilan

Ici aussi, il faut se garder de trop généraliser les résultats obtenus. Mais on peut relever deux points importants :

  • gimme fournit des réseaux au niveau du groupe plus clairsemés que les réseaux mlVAR, ce qui est cohérent avec la logique de la procédure. Pour être présents dans le modèle général, il faut que la piste soit présente chez un pourcentage important d’individus, alors que mlVAR privilégie une moyenne de coefficients suffisamment élevée ;

  • lorsque les pistes sont présentes dans les deux modèles, les valeurs des coefficients estimés sont très proches dans ces deux exemples, ce qui est somme toute assez rassurant.

Références

Babbin, S. F., Velicer, W. F., Aloia, M. S., & Kushida, C. A. (2015). Identifying longitudinal patterns for individuals and subgroups: An example with adherence to treatment for obstructive sleep apnea. Multivariate Behavioral Research, 50(1), 91–108. https://doi.org/10.1080/00273171.2014.958211

Bastiaansen, J. A., Kunkels, Y. K., Blaauw, F., Boker, S. M., Ceulemans, E., Chen, M., … Bringmann, L. F. (2019). Time to get personal? The impact of researchers’ choices on the selection of treatment targets using the experience sampling methodology. https://doi.org/10.31234/osf.io/c8vp7

Beltz, A. M., & Gates, K. M. (2017). Network mapping with GIMME. Multivariate Behavioral Research, 52(6), 789–804. https://doi.org/10.1080/00273171.2017.1373014

Beltz, A. M., & Molenaar, P. C. M. (2015). A posteriori model validation for the temporal order of directed functional connectivity maps. Frontiers in Neuroscience, 9. https://doi.org/10.3389/fnins.2015.00304

Beltz, A. M., & Molenaar, P. C. M. (2016). Dealing with multiple solutions in structural vector autoregressive models. Multivariate Behavioral Research, 51(2-3), 357–373. https://doi.org/10.1080/00273171.2016.1151333

Beltz, A. M., Beekman, C., Molenaar, P. C. M., & Buss, K. A. (2013). Mapping temporal dynamics in social interactions with unified structural equation modeling: A description and demonstration revealing time-dependent sex differences in play behavior. Applied Developmental Science, 17(3), 152–168. https://doi.org/10.1080/10888691.2013.805953

Beltz, A. M., Moser, J. S., Zhu, D. C., Burt, S. A., & Klump, K. L. (2018). Using person-specific neural networks to characterize heterogeneity in eating disorders: Illustrative links between emotional eating and ovarian hormones. International Journal of Eating Disorders, 51(7), 730–740. https://doi.org/10.1002/eat.22902

Beltz, A. M., Wright, A. G. C., Sprague, B. N., & Molenaar, P. C. M. (2016). Bridging the nomothetic and idiographic approaches to the analysis of clinical data. Assessment. https://doi.org/10.1177/1073191116648209

Bouwmans, M. E., Beltz, A. M., Bos, E. H., Oldehinkel, A. J., de Jonge, P., & Molenaar, P. C. (2018). The person-specific interplay of melatonin, affect, and fatigue in the context of sleep and depression. Personality and Individual Differences, 123, 163–170. https://doi.org/10.1016/j.paid.2017.11.022

Bringmann, L. F., Pe, M. L., Vissers, N., Ceulemans, E., Borsboom, D., Vanpaemel, W., … Kuppens, P. (2016). Assessing temporal emotion dynamics using networks. Assessment, 23(4), 425–435. https://doi.org/10.1177/1073191116645909

Bringmann, L. F., Vissers, N., Wichers, M., Geschwind, N., Kuppens, P., Peeters, F., … Tuerlinckx, F. (2013). A network approach to psychopathology: New insights into clinical longitudinal data. PLoS ONE, 8(4), e60188. https://doi.org/10.1371/journal.pone.0060188

Bulteel, K., Tuerlinckx, F., Brose, A., & Ceulemans, E. (2016a). Clustering vector autoregressive models: Capturing qualitative differences in within-person dynamics. Frontiers in Psychology, 7. https://doi.org/10.3389/fpsyg.2016.01540

Bulteel, K., Tuerlinckx, F., Brose, A., & Ceulemans, E. (2016b). Using raw VAR regression coefficients to build networks can be misleading. Multivariate Behavioral Research, 51(2-3), 330–344. https://doi.org/10.1080/00273171.2016.1150151

Csardi, G., & Nepusz, T. (2006). The igraph software package for complex network research. InterJournal, Complex Systems, 1695.

Epskamp, S. (2018). GraphicalVAR: Graphical VAR for experience sampling data [R package version 0.2.2].

Epskamp, S., Cramer, A. O. J., Waldorp, L. J., Schmittmann, V. D., & Borsboom, D. (2012). Network visualizations of relationships in psychometric data. Journal of Statistical Software, 48(4). https://doi.org/10.18637/jss.v048.i04

Epskamp, S., Deserno, M. K., & Bringmann, L. F. (2018a). mlVAR: Multi-Level Vector Autoregression [R package version 0.4.1].

Epskamp, S., van Borkulo, C., van der Veen, D., Servaas, M., Isvoranu, A.-M., Riese, H., & Cramer, A. (2017). Personalized network modeling in psychopathology: The importance of contemporaneous and temporal connections. PsyArXiv. https://doi.org/10.17605/OSF.IO/JNPRZ

Epskamp, S., Waldorp, L. J., Mõttus, R., & Borsboom, D. (2018b). The gaussian graphical model in cross-sectional and time-series data. Multivariate Behavioral Research, 1–28. https://doi.org/10.1080/00273171.2018.1454823

Fisher, A. J., & Boswell, J. F. (2016). Enhancing the personalization of psychotherapy with dynamic assessment and modeling. Assessment. https://doi.org/10.1177/1073191116638735

Fisher, Z., Bollen, K., Gates, K., & Rönkkö, M. (2019). MIIVsem: Model Implied Instrumental Variable (MIIV) Estimation of Structural Equation Models [R package version 0.5.3].

Foster, K. T., & Beltz, A. M. (2018). Advancing statistical analysis of ambulatory assessment data in the study of addictive behavior: A primer on three person-oriented techniques. Addictive Behaviors, 83, 25–34. https://doi.org/10.1016/j.addbeh.2017.12.018

Friston, K. (2007). Dynamic causal modeling. In K. Friston, J. Ashburner, S. Kiebel, T. Nichols, & W. Penny (Eds.), Statistical parametric mapping: The analysis of functional brain images (pp. 541–560). Amsterdam, Netherlands: Academic Press.

Gates, K. M., & Molenaar, P. C. (2012). Group search algorithm recovers effective connectivity maps for individuals in homogeneous and heterogeneous samples. NeuroImage, 63(1), 310–319. https://doi.org/10.1016/j.neuroimage.2012.06.026

Gates, K. M., Henry, T., Steinley, D., & Fair, D. A. (2016). A Monte Carlo evaluation of weighted community detection algorithms. Frontiers in Neuroinformatics, 10. https://doi.org/10.3389/fninf.2016.00045

Gates, K. M., Lane, S. T., Varangis, E., Giovanello, K., & Guiskewicz, K. (2017). Unsupervised classification during time-series model building. Multivariate Behavioral Research, 52(2), 129–148. https://doi.org/10.1080/00273171.2016.1256187

Gates, K. M., Molenaar, P. C., Hillary, F. G., & Slobounov, S. (2011). Extended unified SEM approach for modeling event-related fMRI data. NeuroImage, 54(2), 1151–1158. https://doi.org/10.1016/j.neuroimage.2010.08.051

Gates, K. M., Molenaar, P. C., Hillary, F. G., Ram, N., & Rovine, M. J. (2010). Automatic search for fMRI connectivity mapping: An alternative to Granger causality testing using formal equivalences among SEM path modeling, VAR, and unified SEM. NeuroImage, 50(3), 1118–1125. https://doi.org/10.1016/j.neuroimage.2009.12.117

Henry, T. R., Feczko, E., Cordova, M., Earl, E., Williams, S., Nigg, J. T., … Gates, K. M. (2019). Comparing directed functional connectivity between groups with confirmatory subgrouping GIMME. NeuroImage, 188, 642–653. https://doi.org/10.1016/j.neuroimage.2018.12.040

Henry, T., & Gates, K. (2017). Causal search procedures for fMRI: Review and suggestions. Behaviormetrika, 44(1), 193–225. https://doi.org/10.1007/s41237-016-0010-8

Hillary, F. G., Medaglia, J. D., Gates, K. M., Molenaar, P. C., & Good, D. C. (2014). Examining network dynamics after traumatic brain injury using the extended unified SEM approach. Brain Imaging and Behavior, 8(3), 435–445. https://doi.org/10.1007/s11682-012-9205-0

Honaker, J., King, G., & Blackwell, M. (2011). Amelia II: A program for missing data. Journal of Statistical Software, 45(7), 1–47.

Hubert, L., & Arabie, P. (1985). Comparing partitions. Journal of Classification, 2(1), 193–218. https://doi.org/10.1007/BF01908075

Kim, J., Zhu, W., Chang, L., Bentler, P. M., & Ernst, T. (2007). Unified structural equation modeling approach for the analysis of multisubject, multivariate functional MRI data. Human Brain Mapping, 28(2), 85–93. https://doi.org/10.1002/hbm.20259

Lane, S. T., & Gates, K. M. (2017a). Automated selection of robust individual-level structural equation models for time series data. Structural Equation Modeling: A Multidisciplinary Journal, 24(5), 768–782. https://doi.org/10.1080/10705511.2017.1309978

Lane, S. T., & Gates, K. M. (2017b). Evaluating the use of the automated unified structural equation model for daily diary data. Multivariate Behavioral Research, 52(1), 126–127. https://doi.org/10.1080/00273171.2016.1265439

Lane, S. T., Gates, K. M., Pike, H. K., Beltz, A. M., & Wright, A. G. C. (2019). Uncovering general, shared, and unique temporal patterns in ambulatory assessment data. Psychological Methods, 24(1), 54–69. https://doi.org/10.1037/met0000192

Lane, S., Gates, K., Fisher, Z., Molenaar, P., Hallquist, M., Pike, H., … Duffy, K. (2019). Gimme: Group Iterative Multiple Model Estimation [R package version 0.5-1].

Liao, W. T. (2005). Clustering of time series data: A survey. Pattern Recognition, 38(11), 1857–1874. https://doi.org/10.1016/j.patcog.2005.01.025

Liu, S., & Molenaar, P. C. M. (2014). iVAR: A program for imputing missing data in multivariate time series using vector autoregressive models. Behavior Research Methods, 46(4), 1138–1148. https://doi.org/10.3758/s13428-014-0444-4

MacCallum, R. C., Wegener, D. T., Uchino, B. N., & Fabrigar, L. R. (1993). The problem of equivalent models in applications of covariance structure analysis. Psychological Bulletin, 114(1), 185–199. https://doi.org/10.1037/0033-2909.114.1.185

Markus, K. A. (2002). Statistical equivalence, semantic equivalence, eliminative induction, and the Raykov-Marcoulides proof of infinite equivalence. Structural Equation Modeling: A Multidisciplinary Journal, 9(4), 503–522. https://doi.org/10.1207/S15328007SEM0904_3

Molenaar, P. C. M. (2004). A manifesto on psychology as idiographic science: Bringing the person back into scientific psychology, this time forever. Measurement: Interdisciplinary Research & Perspective, 2(4), 201–218. https://doi.org/10.1207/s15366359mea0204_1

Molenaar, P. C., Beltz, A. M., Gates, K. M., & Wilson, S. J. (2016). State space modeling of time-varying contemporaneous and lagged relations in connectivity maps. NeuroImage, 125, 791–802. https://doi.org/10.1016/j.neuroimage.2015.10.088

Narayanan, A. (2012). A review of eight software packages for structural equation modeling. The American Statistician, 66(2), 129–138. https://doi.org/10.1080/00031305.2012.708641

Newman, M. E. J. (2006). Modularity and community structure in networks. Proceedings of the National Academy of Sciences, 103(23), 8577–8582. https://doi.org/10.1073/pnas.0601602103

Pons, P., & Latapy, M. (2006). Computing communities in large networks using random walks. Journal of Graph Algorithms and Applications, 10(2), 191–218. https://doi.org/10.7155/jgaa.00124

Porter, M., Onnela, J., & Mucha, P. (2009). Communities in networks. Notices of the AMS, 56, 1082–1097.

Price, R. B., Lane, S., Gates, K., Kraynak, T. E., Horner, M. S., Thase, M. E., & Siegle, G. J. (2017). Parsing heterogeneity in the brain connectivity of depressed and healthy adults during positive mood. Biological Psychiatry, 81(4), 347–357. https://doi.org/10.1016/j.biopsych.2016.06.023

Ramsey, J. D., Hanson, S. J., & Glymour, C. (2011). Multi-subject search correctly identifies causal connections and most causal directions in the DCM models of the Smith et al. simulation study. NeuroImage, 58(3), 838–848. https://doi.org/10.1016/j.neuroimage.2011.06.068

Rosseel, Y. (2012). Lavaan : An R package for structural equation modeling. Journal of Statistical Software, 48(2). https://doi.org/10.18637/jss.v048.i02

Sarda-Espinosa, A. (2019). Dtwclust: Time series clustering along with optimizations for the dynamic time warping distance [R package version 5.5.2].

Smith, S. M., Miller, K. L., Salimi-Khorshidi, G., Webster, M., Beckmann, C. F., Nichols, T. E., … Woolrich, M. W. (2011). Network modelling methods for FMRI. NeuroImage, 54(2), 875–891. https://doi.org/10.1016/j.neuroimage.2010.08.063

Zelle, S. L., Gates, K. M., Fiez, J. A., Sayette, M. A., & Wilson, S. J. (2017). The first day is always the hardest: Functional connectivity during cue exposure and the ability to resist smoking in the initial hours of a quit attempt. NeuroImage, 151, 24–32. https://doi.org/10.1016/j.neuroimage.2016.03.015


  1. on les appelle aussi Structural Vector Autoregression ou SVAR

  2. Voir aussi sur cette question : Bulteel, Tuerlinckx, Brose, & Ceulemans (2016b) et Epskamp et al. (2017)

  3. Voir le matériel supplémentaire de l’article de Gates et al. (2017) pour des informations plus détaillées, notamment sur les paramètres qu’il est nécessaire de fixer ainsi que sur les techniques d’estimation

  4. en utilisant une correction de Bonferroni pour la significativité

  5. en cas d’égalité, on prend le coefficient dont l’indice de modification moyen est le plus élevé

  6. S’il n’existe aucune piste significative chez 75% des individus, alors il en découle que les données sont tellement hétérogènes qu’il ne peut pas être établi de structure au niveau du groupe.

  7. Les auteurs (S. T. Lane et al., 2019) envisagent toutefois d’inclure dans les futurs développements la possibilité d’inclure dans le modèle un vecteur externe codant les tendances dans les séries

  8. à condition que le nombre d’observations total de la série temporelle permette de la subdiviser

  9. Les auteurs fournissent en annexe de leur article un programme LISREL permettant de faire le test (Adriene M. Beltz & Gates, 2017) ; voir aussi Adriene M. Beltz & Molenaar (2015).

  10. On trouve un exemple d’application chez Bouwmans et al. (2018) dans lequel les auteurs réalisent cinquante imputations, en font la moyenne et utilisent le jeu de données moyen imputé pour les analyses GIMME.

  11. Ce chapitre reprend largement le contenu et la structur de l’article de Gates et al. (2017)

  12. D’autres méthodes ont été proposées pour identifier des sous-groupes à partir de séries temporelles (dynamic cluster analysis). Le package dtwclust (Sarda-Espinosa, 2019) en propose plusieurs méthodes ; pour une application, voir (Babbin, Velicer, Aloia, & Kushida, 2015)). Il existe aussi des méthodes proposées pour constituer des sous-groupes à partir des résulats issus de l’application de modèles VAR, à l’instar de Bulteel, Tuerlinckx, Brose, & Ceulemans (2016a).

  13. L’algorithme walktrap est implémenté dans le package igraph (Csardi & Nepusz, 2006).

  14. un autre participant n’est pas pris en compte parce qu’une variance nulle est observée pour un des items

  15. même si les auteurs ne le relèvent pas, cela est peut-être la conséquence d’une fréquence trop faible des mesures émotionnelles (mesures quotidiennes) : les processus émotionnels se mettent probablement en place à des fréquences plus élevées

  16. la largeur des flèches grisées est proportionnelle au nombre de personnes chez lesquelles la piste est présente

  17. un 35e individu est dans un troisième groupe singleton et le 36e a disparu de l’article !

  18. Comme il s’agit d’une démarche confirmatoire, les auteurs suggèrent un seuil de 75% plutôt que le seuil de 50% utilisé dans l’approche exploratoire

  19. Des données comportementales issues d’observations sont une autre application possible. On en trouvera un exemple chez A. M. Beltz et al. (2013)

  20. elle n’est pas, à notre connaissance, abordée explicitement dans la littérature

  21. à mesures répétées, parce que les réseaux sont comparées avant/après une manipulation expérimentale

  22. D’autres variables externes décrivant les individus peut être incluses dans la régression : sexe, âge, caractéristiques de personnalité…

  23. Adriene M. Beltz & Gates (2017) déconseillent fortement de considérer dans ce cas que le coefficient est égal à zéro chez les individus. Elle n’est pas estimée au niveau individuel car elle n’est pas retenue dans le modèle de groupe. Si elle était estimée, elle ne vaudrait certainement pas zéro

  24. Zelle et al. (2017) (mais aussi Adriene M. Beltz & Gates (2017)) proposent toutefois une manière de contourner cette difficulté dès lors qu’on s’intéresse à une piste spécifique (par exemple parce qu’elle présente un intérêt théorique majeur). Leur raisonnement est le suivant. Si une piste est présente dans un échantillon et absente dans un autre, la différence tient peut-être au seuil quelque peu arbitraire du pourcentage d’individus nécessaire pour retenir la piste dans le modèle général. Il est alors possible dans l’échantillon où la piste est absente de contraindre son estimation (le paramètre de la piste est libéré systématiquement pour tous les individus). On dispose alors d’une estimation de l’intensité de cette piste pour chaque individu et on peut tester la différence d’intensité moyenne de celle-ci entre les deux échantillons.

  25. T. R. Henry et al. (2019) annoncent dans leur article que le code R pour réaliser le test de permutation est disponible dans le matériel supplémentaire. Mais celui-ci a été omis du site internet de la revue. Ce code est disponible ici (communication personnelle de l’auteur)

  26. et cela ne signifie pas que cette piste est statistiquement significative dans tous les modèles individuels.

  27. pour que les pistes significatives chez 75% des individus s’affichent, il vaut donner une valeur légèrement inférieur à .75 à l’option minimum (0.74 dans cet exemple)

  28. mais on notera que dans ce fichier, les lignes ne comportent pas les noms des variables

  29. Cette moyenne doit donc être considérée avec grande prudence, car ce n’est pas parce que les coefficients ne sont pas significatifs qu’ils valent zéro, comme cela a été discuté dans la section consacrée à l’analyse des résultats de réseaux GIMME

  30. ce fichier csv peut être ouvert dans tout tableur. Il faut toutefois être attentif lors de l’ouverture pour tous ces fichiers. Par exemple, avec la version d’Excel que j’utilise, les coefficients négatifs ne sont pas reconnus correctement avec la fonctionnalité “convertir” du menu “données”. La reconnaissance est correcte en revanche en utilisant la fonctionnalité “récupérer et transformer des données à partir d’un fichier texte/CSV” du menu “données”.

  31. l’erreur standard de l’effet contemporain de V2 sur V3 est indiquée comme valant 0.072 et pas 0.1529

  32. Dans la partie en bas à droite de cette matrice, on trouve aussi des valeurs sur la diagonale (entre V1 et V1 ; entre V2 et V2 ; entre V3 et V3) dont je ne comprends pas la signification

  33. Celui-ci s’affiche toutefois à la fin de l’exécution de la commande

  34. Rappelons qu’il s’agit de la moyenne des coefficients de tous les modèles individuels et que pour calculer cette moyenne, les liens non présents sont considérés comme ayant une intensité nelle

  35. Rappelons que les liens contemporains de gimme sont des liens dirigés ; on compte donc ici les pistes dans les deux sens de la causalité. Par exemple, pour le lien V1-V5, il y a 12 modèles individuels qui retiennent l’influence contemporaine de V1 sur V5 et 1 qui retient l’effet de V5 sur V1