52  Analyses intersectionnelles MAIHDA

L’analyse intersectionnelle multi-niveaux de l’hétérogénéité individuelle et de la précision discriminante, intersectional multilevel analysis of individual heterogeneity and discriminatory accuracy en anglais, appelée également MAIHDA, intersectional MAIHDA ou I-MAIHDA. C’est une approche innovante permettant d’étudier les inégalités en matière de santé, de maladie, mais également d’un point de vue psychosocial ou socio-économique. L’I-MAIHDA est une application de l’approche MAIHDA au sens large, qui permet de quantifier les inégalités dans un cadre théorique intersectionnel. Cette approche a gagné en popularité ces dernières années. En 2026, un package dédié, MAIHDA, est en développement actif. Pour une présentation plus générale et un tutoriel méthodologique, la référence est l’article de Clare Evans et ses collaborateurs (Evans et al. 2024), dont la lecture est fortement conseillée.

Le terme MAIHDA désigne l’utilisation de modèles multi-niveaux pour analyser les inégalités entre les différentes couches sociales, construits à partir de tableaux croisés multidimensionnels et multicatégoriels regroupant des identités, des conditions ou d’autres facteurs. Lorsqu’elle est appliquée dans un cadre intersectionnel, cette approche est plus précisément appelée I-MAIHDA et sert à analyser les inégalités en fonction de facteurs tels que le genre, la classe, le statut socio-économique ou la race.

Le terme de strates sociales pour désigner des sous-groupes analytiques, tels que certaines intersections entre genre, origine ethnique et classe sociale, est ici privilégié car il évoque l’adoption provisoire d’étiquettes à des fins d’analyses stratifiées, tout en restant sceptique vis-à-vis du terme groupe et en évitant de conceptualiser ces étiquettes comme monolithiques, immuables ou rigides. Dans le cadre d’une analyse MAIHDA, les inégalités entre strates ne sont pas seulement évaluées en termes de différences entre les moyennes des strates, mais également en déterminant la part de l’hétérogénéité totale du résultat qui se situe au niveau des strates.

52.1 Préparation des données et analyses préalables

Pour ce chapitre, nous allons utiliser le jeu données questionr::fecondite qui correspond à des données simulant une enquête démographique et de santé réalisée en Afrique sub-saharienne. Plus précisément, nous allons fusionner les données de la table femmes et de la table menages (pour récupérer le niveau de niveau de richesse du ménage). Notre indicateur d’intérêt sera le fait d’avoir déjà un réalisé un test de dépistage du VIH (variable test), dans la population des femmes âgées de 15 à 49 ans.

Pour constituer nos strates, nous allons considérer trois dimensions : le niveau d’études, le milieu de résidence et le niveau de richesse du ménage. Lorsque nous allons regarder plus loins les effets intersectionnels, les strates seront construites en croisant ces trois variables. Plus il y a de modalités, plus le nombre de strates sera élevé et plus nous aurons des strates avec très peu d’effectifs. C’est pourquoi nous allons regrouper les niveaux d’éducation secondaire et supérieur car il y a, dans cet échantillon, peu de femmes avec un niveau d’étude supérieur. De même, nous allons recoder les niveaux de richesses en seulement trois modalités.

En termes de préparation des données, nous allons également créer une variable groupe d’âges qui nous servira plus loin de variable d’ajustement et considérer la variable région que nous pourrons introduire comme variable de contexte. Enfin, nous allons supprimer les valeurs manquantes concernant notre variable d’intérêt test.

library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.2.1     ✔ readr     2.2.0
✔ forcats   1.0.1     ✔ stringr   1.6.0
✔ ggplot2   4.0.3     ✔ tibble    3.3.1
✔ lubridate 1.9.5     ✔ tidyr     1.3.2
✔ purrr     1.2.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(labelled)
library(gtsummary)
theme_gtsummary_language("fr", decimal.mark = ",", big.mark = " ")
Setting theme "language: fr"
guideR::theme_gtsummary_bold_labels()

data("fecondite", package = "questionr")

femmes <- 
  femmes |> 
  left_join(menages, by = "id_menage") |> 
  unlabelled() |> 
  mutate(
    groupe_ages = age |>
      cut(
        c(-Inf, 25, 35, Inf),
        right = FALSE,
        include.lowest = TRUE,
        labels = c("15-24 ans", "25-34 ans", "35 et plus")
      ),
    richesse = richesse |>
      fct_recode(
        "riche/très riche" = "très riche",
        "riche/très riche" = "riche",
        "pauvre/très pauvre" = "très pauvre",
        "pauvre/très pauvre" = "pauvre",
      ),
    educ = educ |> 
      fct_recode(
        "secondaire/supérieur" = "secondaire",
        "secondaire/supérieur" = "supérieur",
      )
  ) |> 
  set_variable_labels(
    groupe_ages = "Groupe d'âges"
  ) |> 
  filter(test != "manquant")

Avant de nous lancer dans une analyse intersectionnelle, effectuons déjà une analyse descriptive pour regarder les effets univariables.

femmes |> 
  guideR::plot_proportions(
    test == "oui",
    by = c(educ, richesse, milieu, groupe_ages, region),
    fill = "lightblue",
    flip = TRUE,
    minimal = TRUE,
    overall_label = "Ensemble",
    show_overall_line = TRUE
  )

L’analyse descriptive met en évidence, en analyse univariable, des effets marqués de nos trois variables intersectionnelles, l’accès au dépistage du VIH étant plus élevé pour les femmes éduquées, les femmes plus riches et celles vivant en milieu urbain. De même, nous voyons une influence du contexte avec des variations importantes selon les régions, et des effets d’âges significatifs.

Dans le cadre d’une analyse classique, nous pourrions poursuivre avec une régression logistique binaire multivariable (cf. Chapitre 23).

mod <- glm(
  test ~ educ + richesse + milieu,
  data = femmes,
  family = binomial
)
mod |> ggstats::ggcoef_table(exponentiate = TRUE)

Si l’on observe des effets additifs significatifs du milieu de résidence et du niveau d’éducation, les effets du niveau de richesse disparaissent une fois le modèle ajusté sur les deux autres variables. Cela se confirme en réalisant une Anova et en regardant les contributions des différentes variables (cf. Chapitre 29).

mod |> guideR::tbl_contributions(lang = "fr")
Déviance Contribution totale
(pseudo-R2 semi-partiel)
Contribution partielle
(pseudo-R2 partiel)
Contribution relative p-valeur
Niveau d'éducation 42,9 1,6% 1,7% 26,5% <0,001
Niveau de vie (quintiles) 1,8 0,1% 0,1% 1,1% 0,4
Milieu de résidence 24,6 0,9% 1,0% 15,2% <0,001
Déviance totale (modèle nul) : 2 635,6
Déviance résiduelle (modèle complet) : 2 473,9
Pseudo R2 de McFadden : 6,1%

On peut déjà noter un pseudo R2 relativement faible (inférieure à 10%), suggérant qu’une part important des variations de recours au dépistage ne sont pas expliquées par nos trois variables. La p-valeur associée aux niveaux de richesse confirme que la variable n’a pas d’effet significatif dans notre modèle multivariable.

Une analyse de dominance (cf. Chapitre 29) permet de nuancer un peu plus ces premiers résultats.

mod |> guideR::tbl_dominance(lang = "fr")
Contribution totale moyenne Contribution relative
Niveau d'éducation 2,5% 40,5%
Niveau de vie (quintiles) 1,3% 20,9%
Milieu de résidence 2,4% 38,6%
Total 6,1% 100,0%
Pseudo R2 de McFadden : 6,1%

En effet, le niveau de richesse est assez fortement corrélé au niveau d’éducation et au milieu de résidence. De fait, si l’analyse de dominance confirme l’importance du niveau d’éducation et du milieu de résidence (autour de 40% de contribution relative), la contribution du niveau de richesse n’est pas négligeable (autour 20%).

52.2 À la recherche des interactions

Il est important de faire la distinction entre le terme interaction dans le cadre théorique de l’intersectionnalité et le terme interaction utilisé en analyse de régression. Dans les modèles de régression, un effet d’interaction (cf. Chapitre 27) rend compte de la mesure dans laquelle deux (ou plusieurs) expositions sociales distinctes se combinent pour créer des schémas d’inégalité dans un résultat qui ne serait pas décrit de manière adéquate en utilisant uniquement des effets additifs (c’est-à-dire des effets principaux). Par exemple, évaluer le risque d’un résultat sanitaire de manière additive en fonction de l’origine migratoire et du genre (par exemple, les effets principaux additifs « immigrée » et « femme ») peut ne pas suffire à décrire la prévalence d’un résultat sanitaire particulier chez les personnes immigrées et femmes, ce qui nécessite un terme d’interaction multiplicatif supplémentaire (immigrée × femme). En termes simples, l’intersectionnalité est un cadre qui nous permet de théoriser et de critiquer les expériences sociales (expositions) à des intersections particulières ainsi que les systèmes d’oppression qui génèrent ces expériences, tandis que les analyses de régression incluant des interactions permettent de saisir les effets de ces expériences sur des résultats spécifiques. Ainsi, l’effet des expositions peut ou non se traduire par des effets d’interaction statistiquement significatifs. L’absence d’effets d’interaction statistiquement significatifs ne dit rien sur la validité de l’intersectionnalité : elle ne prouve ni ne réfute l’existence d’expériences intersectionnelles. En ce sens, il vaut mieux considérer l’intersectionnalité comme un cadre d’analyse.

Ceci étant posé, nous pourrions être tenté de réaliser un modèle de régression classique en y intégrant une interaction de l’ensemble de nos variables intersectionnelles. Or, lorsque l’on croise nos différentes variables intersectionnelles, le nombre de modalités devient très vite important, ici de l’ordre de 3×5×2 soit 30 combinaisons théoriquement possibles, sachant que certaines ne sont peut être pas observées dans les données. Dans ce genre de situation, un modèle GLM classique peut avoir des difficultés à converger, voir ne pas converger du tout.

L’approche MAIHDA adopte une autre stratégie : les strates (la combinaison de nos variables intersectionnelles) sont intégrées sous la forme d’une variable aléatoire d’un modèle mixte. Si, de ce fait, MAIHDA peut gérer beaucoup mieux que d’autres approches le fait d’avoir des strates avec un petit nombre d’observations, cela ne permet pas pour autant d’éviter complètement le problème des petits N. En pratique, cela signifie que l’on cherchera à réduire le nombre de strates avec moins de 10 ou 20 observations, quitte à procéder à des recodages de catégories en amont (par exemple ici recoder le niveau de richesse en trois modalités) et à limiter le nombre de dimensions intersectionnelles inclues dans l’analyse.

52.3 Analyse MAIHDA classique (modèle nul et modèle ajusté)

L’analyse MAIHDA classique, celle présentée dans l’article de Evans et al. (Evans et al. 2024), repose sur deux modèles mixtes. Le premier, dit modèle nul, ne contient qu’un intercept et les différentes strates (interaction des variables intersectionnelles) entrées comme effet aléatoire. Dans notre exemple, son équation est test ~ 1 + (1 | educ:richesse:milieu), avec (1 | educ:richesse:milieu) représentant les effets aléatoires. Le second modèle, dit modèle ajusté, inclut chacune des variables intersectionnelles comme effet fixe tout en conservant les strates intersectionnelles comme effet aléatoire. Son équation dans notre exemple est test ~ educ + richesse + milieu + (1 | educ:richesse:milieu).

Le package MAIHDA fournit tout un ensemble de fonctions permettant de réaliser aisément des analyses MAIHDA sous R. Le package guideR, le compagnon de guide-R, fournit plusieurs fonctions permettant de présenter les résultats obtenus sous la forme de tableaux mis en forme et prêts à être publiés.

La fonction MAIHDA::maihda() permet de réaliser une analyse MAIHDA complète en un seul appel. On lui passera l’équation du modèle complet. Elle en déduira les variables composant les strates intersectionnelles et générera automatiquement les différentes strates (et, au besoin, éliminera les strates non observées dans les données). Comme notre variable d’intérêt est binaire, on lui précisera family = "binomial".

m <- MAIHDA::maihda(
  test ~ educ + richesse + milieu + (1 | educ:richesse:milieu),
  data = femmes,
  family = "binomial"
)
Registered S3 method overwritten by 'lme4':
  method           from
  na.action.merMod car 
Binary outcome 'test' recoded to 0/1: 'non' = 0 (reference), 'oui' = 1 (modeled event). Set the factor levels (or supply a 0/1 outcome) to control which level is the event.

En premier lieu, nous pouvons vérifier la distribution de nos strates en fonction de leur nombre d’observations avec guideR::tbl_strata_info().

m |> guideR::tbl_strata_info()
Sample size per stratum Number of strata Proportion of strata
≥ 100 7 38.9%
≥ 50 8 44.4%
≥ 30 12 66.7%
≥ 20 13 72.2%
≥ 10 15 83.3%
< 10 3 16.7%
Total number of strata: 18

Dans notre exemple, nous avons 3/18 strates (soit 17% des strates) avec un effectif inférieur à 10 observations.

Reproduisons le tableau principal des résultats (cf. table 3 dans (Evans et al. 2024)) avec guideR::tbl_maihda().

Evans, Clare R., George Leckie, S. V. Subramanian, Andrew Bell, et Juan Merlo. 2024. « A tutorial for conducting intersectional multilevel analysis of individual heterogeneity and discriminatory accuracy (MAIHDA) ». SSM - Population Health 26 (juin): 101664. https://doi.org/10.1016/j.ssmph.2024.101664.
m |> guideR::tbl_maihda(exponentiate = TRUE)
Caractéristique
Null model
Adjusted model
OR 95% IC p-valeur OR 95% IC p-valeur
(Intercept) 0,73 0,54 – 0,98 0,038 0,67 0,46 – 0,98 0,038
Niveau d'éducation





    aucun



    primaire


1,65 1,27 – 2,14 <0,001
    secondaire/supérieur


2,24 1,67 – 3,02 <0,001
Niveau de vie (quintiles)





    pauvre/très pauvre



    moyen


0,93 0,67 – 1,30 0,7
    riche/très riche


1,10 0,77 – 1,58 0,6
Milieu de résidence





    urbain



    rural


0,50 0,37 – 0,68 <0,001
Summary statistics





Between-stratum variance 0,283

0,008

Variance Partition Coefficient (VPC) 7,93%

0,24%

Proportional Change in Variance (PCV)


97,3%

Area Under Receiver Operating Characteristic Curve (AUC) 0,673

0,668

Median Odds Ratio (MOR) 1,66

1,09

Abréviations: IC = intervalle de confiance, OR = rapport de cotes
Strata: 18, Observations: 1971, Engine: lme4, Family: binomial

Le premier élément à regarder est le modèle nul et plus précisément le VPC ou Variance Partition Coefficient comme le nomme Evans et al. Cette même métrique également connue sous le nom de ICC ou Intraclass Correlation Coefficient (coefficient de corrélation intra-classe). Il représente la variance entre les strates (between-stratum variance) exprimée en proportion de la variance totale.

Dans notre exemple, près de 8% de la variance totale est expliquée par les effets des strates intersectionnelles (le reste étant expliqué par l’hétérogénéité des individus au sein des strates). D’une certaine manière, nous pouvons mettre cette proportion en regard des 6% du pseudo R2 de notre modèle logistique classique que nous avons calculé en introduction.

La question qui se pose ensuite est de savoir, concernant le VPC, quelle est la part qui est due aux effets additifs des variables intersectionnelles et la part expliquée par les effets d’interactions (i.e. au-delà des effets additifs). Pour cela, nous pouvons nous pencher sur le second modèle, le modèle ajusté. Cette fois-ci les effets additifs sont capturés par les effets fixes associés à nos trois variables et inclus dans ce second modèle. De fait, les effets aléatoires associés aux strate ne capturent plus que les effets d’interactions. Si l’on regarde le VPC, il n’est plus que de 0,24%, représentant la part de la variance totale expliquée par les effets d’interactions. Le PVC ou Proportional Change in Variance (changement proportionnel de la variance) représente cette diminution du VPC entre les deux modèles : 97% de la variance entre les strates du modèle nul est additive et seulement 3%, dans notre exemple, correspond à des effets d’interaction entre les variables intersectionnelles.

Ceci posé, on pourra chercher à savoir quelles sont les strates avec la plus faible ou la plus forte probabilité de vivre l’évènement étudié. Pour cela, on pourra avoir recours à guideR::tbl_strata_predictions(). Par défaut, les 5 strates avec la plus forte prédiction et les 5 strates avec la plus faible prédiction sont affichées. Cela peut être modifié avec l’argument n_strata (utiliser Inf pour tout afficher).

m |> guideR::tbl_strata_predictions()
Rank Niveau d'éducation Niveau de vie (quintiles) Milieu de résidence n Predicted 95% CI
5 highest
1 secondaire/supérieur riche/très riche urbain 277 60,4% 54,7% – 65,9%
2 secondaire/supérieur moyen rural 12 57,2% 38,2% – 74,3%
3 primaire moyen urbain 44 55,0% 42,2% – 67,2%
4 primaire pauvre/très pauvre urbain 4 49,4% 28,0% – 71,1%
5 secondaire/supérieur pauvre/très pauvre rural 45 49,0% 36,6% – 61,5%
5 lowest
14 secondaire/supérieur pauvre/très pauvre urbain 2 37,2% 18,2% – 61,2%
15 primaire riche/très riche rural 26 35,0% 22,1% – 50,4%
16 aucun riche/très riche rural 82 32,3% 23,8% – 42,2%
17 aucun pauvre/très pauvre rural 483 22,8% 19,4% – 26,7%
18 aucun moyen rural 185 22,8% 17,6% – 29,1%

Un graphique de l’ensemble des prédictions par strate peut être obtenu avec plot(type = "predicted").

m |> plot(type = "predicted")

Il apparaît que les prédictions les plus élevées sont observées en milieu urbain et que les plus faibles sont en milieu rural. Pour une comparaison visuelle des prédictions selon le milieu de résidence, on pourra avoir recours à la fonction guideR::plot_maihda_predictions_by().

m |> guideR::plot_maihda_predictions_by(milieu)

Le graphique obtenu avec l’option plot(type = "effect_decomp") permet de visualiser la décomposition entre les effets additifs (représentés en gris) et les effets d’interaction (en orange). Dans notre exemple, sans surprise au regard du PVC, les effets d’interaction sont faibles.

m |> plot(type = "effect_decomp")

52.4 Modèles MAIHDA partiellement ajustés

Le recours aux modèles partiellement ajustés vise à quantifier dans quelle mesure les différentes dimensions utilisées pour construire les strates intersectionnelles contribuent à la variance entre les strates observées dans le modèle nul.

Pour cela, on va recalculer, pour chaque variable intersectionnelle, un modèle comprenant cette variable seule en effet fixe et les strates en effet aléatoire1. À chaque fois, on calculera le PCV par rapport au modèle nul. La fonction guideR::tbl_partially_adjusted_maihda() permet de réaliser ces opérations en un seul appel et de présenter l’ensemble des résultats dans un tableau.

1 Un exemple de mise en œuvre présentée dans une vignette du package modelbased sur l’analyse MAIHDA.

m |> guideR::tbl_partially_adjusted_maihda(exponentiate = TRUE)
Caractéristique
Null model
Niveau d’éducation
Niveau de vie (quintiles)
Milieu de résidence
Fully adjusted model
OR 95% IC p-valeur OR 95% IC p-valeur OR 95% IC p-valeur OR 95% IC p-valeur OR 95% IC p-valeur
(Intercept) 0,73 0,54 – 0,98 0,038 0,47 0,34 – 0,67 <0,001 0,63 0,36 – 1,10 0,10 1,03 0,74 – 1,43 0,9 0,67 0,46 – 0,98 0,038
Niveau d'éducation














    aucun










    primaire


1,68 1,00 – 2,82 0,049





1,65 1,27 – 2,14 <0,001
    secondaire/supérieur


2,48 1,43 – 4,31 0,001





2,24 1,67 – 3,02 <0,001
Niveau de vie (quintiles)














    pauvre/très pauvre










    moyen





1,18 0,57 – 2,46 0,7


0,93 0,67 – 1,30 0,7
    riche/très riche





1,28 0,62 – 2,66 0,5


1,10 0,77 – 1,58 0,6
Milieu de résidence














    urbain










    rural








0,50 0,32 – 0,79 0,003 0,50 0,37 – 0,68 <0,001
Summary statistics














Between-stratum variance 0,283

0,132

0,262

0,142

0,008

Variance Partition Coefficient (VPC) 7,93%

3,84%

7,38%

4,13%

0,24%

Proportional Change in Variance (PCV)


53,6%

7,56%

50,1%

97,3%

Area Under Receiver Operating Characteristic Curve (AUC) 0,673

0,670

0,671

0,670

0,668

Median Odds Ratio (MOR) 1,66

1,41

1,63

1,43

1,09

Abréviations: IC = intervalle de confiance, OR = rapport de cotes
Strata: 18, Observations: 1971, Engine: lme4, Family: binomial

Nous retrouvons un effet limité du niveau de richesse, afin un PCV entre 7 et 8%, alors que les deux autres dimensions (niveau d’éducation et milieu de résidence) ont des contributions plus importantes avec des PCV de l’ordre de plus de 50%.

52.5 Variables d’ajustement et variables de contexte

Il est possible d’ajouter des variables d’ajustement et des variables de contexte dans le modèle, sachant que les deux ne sont pas traitées de la même manière.

Dans nos données descriptives, nous avons vu que l’âge était également associé significativement au fait d’avoir déjà réaliser un test de dépistage du VIH. Selon notre cadre théorique, nous pourrions éventuellement considérer cette variable comme une variable intersectionnelle et en faire une dimension additionnelle pour la construction des strates. Alternativement, nous pouvons envisager de ne pas l’inclure comme dimension intersectionnelle mais vouloir ajuster notre modèle sur l’âge pour tenir compte du fait que la structure par âges diffère d’une strate à l’autre. Dans ce cas, nous allons simplement ajouter la variable groupe_ages comme effet fixe dans le modèle mais sans le faire apparaître dans les effets aléatoires.

Par ailleurs, nous avons vu également que le taux de dépistage variait fortement d’une région à l’autre. Il pourrait alors être pertinent d’ajouter cette information contextuelle au modèle. Pour cela on utilisera l’argument context de la fonction MAIHDA::maihda(). Cette dernière ajoutera un effet aléatoire séparé sur cette variable de contexte, comme c’est l’usage dans les modèles multi-niveaux.

Calculons notre modèle et regardons les résultats.

mac <- MAIHDA::maihda(
  test ~ groupe_ages + educ + richesse + milieu + 
    (1 | educ:richesse:milieu),
  data = femmes,
  family = "binomial",
  context = "region"
)
Binary outcome 'test' recoded to 0/1: 'non' = 0 (reference), 'oui' = 1 (modeled event). Set the factor levels (or supply a 0/1 outcome) to control which level is the event.
mac
MAIHDA Analysis
===============

Null formula:    test ~ groupe_ages + (1 | stratum) + (1 | region)
Adjusted formula:test ~ groupe_ages + educ + richesse + milieu + (1 | stratum) +      (1 | region)
Engine: lme4 | Family: binomial
Context: region (crossed contextual random intercept in the null and adjusted models)
VPC/ICC (null): 0.0747
Context share (null): 0.0471 (between-region share of unexplained variance)
PCV (null -> adjusted): 0.9585
Between-stratum variance: 0.2798 (null) -> 0.0116 (adjusted)
  ~95.9% of the between-stratum variance is additive (the dimensions' main
  effects); the remainder is the between-stratum variance remaining after the
  additive main effects -- a model-dependent quantity
Strata: 18
Intersectional interactions: 0 of 18 strata flagged (95% interval, BH-adjusted)

Use summary() for variance components and plot(type = ...) for figures.
mac |> 
  guideR::tbl_maihda(
    exponentiate = TRUE, 
    global_p = TRUE
  )
Caractéristique
Null model
Adjusted model
OR 95% IC p-valeur OR 95% IC p-valeur
(Intercept) 0,46 0,28 – 0,78 0,004 0,37 0,21 – 0,66 <0,001
Groupe d'âges

<0,001

<0,001
    15-24 ans

    25-34 ans 2,19 1,73 – 2,76
2,25 1,78 – 2,84
    35 et plus 1,33 1,03 – 1,71
1,38 1,07 – 1,77
Niveau d'éducation




<0,001
    aucun



    primaire


1,63 1,23 – 2,17
    secondaire/supérieur


2,42 1,75 – 3,33
Niveau de vie (quintiles)




0,5
    pauvre/très pauvre



    moyen


1,01 0,70 – 1,44
    riche/très riche


1,20 0,81 – 1,76
Milieu de résidence




<0,001
    urbain



    rural


0,55 0,40 – 0,76
Summary statistics





Between-stratum variance 0,280

0,012

Variance Partition Coefficient (VPC) 7,47%

0,34%

Proportional Change in Variance (PCV)


95,9%

Context share (VPC) 4,71%

4,38%

Abréviations: IC = intervalle de confiance, OR = rapport de cotes
Strata: 18, Observations: 1971, Engine: lme4, Family: binomial, Variable(s) in context: region

Par rapport à notre analyse précédente, le PVC a légèrement diminué indiquant des effets d’interaction un plus élevé. Nous voyons que notre variable d’ajustement (le groupe d’âges) contribue significativement au modèle. Enfin, notre variable de contexte (la région) a un VPC en propre, indiquée sur la ligne context share, de 4,7% dans le modèle nul et de 4,4% dans le modèle ajusté.

52.6 Usages avancés

52.6.1 Intervalle de confiance de la PCV

Si vous utilisez engine = "lme4" (l’approche par défaut de MAIHDA), il est possible d’estimer un intervalle de confiance pour la PCV via une approche de type bootstrap. Pour cela, on ajoutera l’option bootstrap = TRUE. Il faut noter que cela nécessite de calculer plusieurs centaines de modèles et donc que le temps de calcul est particulièrement long, souvent plusieurs dizaines de minutes.

52.6.2 Modèles bayésiens

La méthode MAIHDA intersectionnelle décompose la variation inter-strates en une partie additive (les effets principaux des dimensions intersectionnelles) et une partie d’interaction (l’écart par rapport à l’additivité impliqué par le modèle). Cette conclusion n’est défendable que lorsque chaque strate intersectionnelle est suffisamment peuplée pour permettre l’estimation de son effet. En pratique, ce n’est souvent pas le cas. Le croisement de plusieurs dimensions multiplie le nombre de strates alors que la taille de l’échantillon reste fixe, ce qui entraîne une baisse rapide du nombre de cellules. Il est difficile d’estimer une variance d’interaction à partir de cellules de ce type.

Dans ce type de situation, il peut être pertinent d’utiliser une approche bayésienne via le package brms plutôt qu’un modèle mixte fréquentiste avec lme4. Pour cela, il suffit de lancer MAIHDA::maihda() ou MAIHDA::fit_maihda() avec l’option engine = "brms". Avec ce type de modèle, la distribution a priori régularise les écarts-types inter-strates loin de la limite (afin que l’ajustement ne soit pas singulier) et la distribution a posteriori fournit un intervalle de crédibilité à la place d’un simple nombre. De plus, ce type d’approches permet de générer un intervalle de crédibilité autour du VPC.

Nous ne présenterons pas ici d’exemple car le temps de calcul de ce type de modèles est particulièrement long (plusieurs minutes à plusieurs dizaines de minutes). Pour plus de détails sur ce point, voir la vignette dédiée (en anglais) sur le site de documentation de MAIHDA.

52.6.3 Poids d’enquête

Dans le cadre de données d’enquêtes pondérées avec plan d’échantillonnage complexe (cf. Chapitre 30), il n’existe pas encore d’implémentation des modèles mixtes à effets aléatoires compatibles avec le package survey. Ceci dit, le package WeMix permet le calcul de modèles mixtes avec prise en compte de poids d’enquêtes et le package MAIHDA peut être utilisé avec le package WeMix. Pour cela, on précisera engine = "wemix" et le nom de la variable contenant les poids d’enquête sera précisée avec l’argument sampling_weights.

mp <- MAIHDA::maihda(
  test ~ educ + richesse + milieu + (1 | educ:richesse:milieu),
  data = femmes,
  family = "binomial",
  engine = "wemix",
  sampling_weights = "poids"
)
Binary outcome 'test' recoded to 0/1: 'non' = 0 (reference), 'oui' = 1 (modeled event). Set the factor levels (or supply a 0/1 outcome) to control which level is the event.

La fonction guideR::tbl_maihda() propose un support minimal de ce type de modèle. Cependant, elle peut pour le moment récupérer les intervalles de confiance ni les p-valeurs des effets fixes.

mp |> guideR::tbl_maihda(exponentiate = TRUE)
Caractéristique
Null model
Adjusted model
OR 95% IC OR 95% IC
(Intercept) 0,74
0,80
Niveau d'éducation



    aucun

    primaire

1,32
    secondaire/supérieur

2,23
Niveau de vie (quintiles)



    pauvre/très pauvre

    moyen

0,73
    riche/très riche

0,95
Milieu de résidence



    urbain

    rural

0,51
Summary statistics



Between-stratum variance 0,342
0,043
Variance Partition Coefficient (VPC) 9,43%
1,30%
Proportional Change in Variance (PCV)

87,3%
Area Under Receiver Operating Characteristic Curve (AUC) 0,674
0,669
Median Odds Ratio (MOR) 1,75
1,22
Abréviations: IC = intervalle de confiance, OR = rapport de cotes
Strata: 18, Observations: 1971, Engine: wemix, Family: binomial

52.7 Lectures complémentaires