41  Régression logistique multinomiale

La régression logistique multinomiale est une extension de la régression logistique binaire (cf. Chapitre 22) aux variables qualitatives à trois modalités ou plus. Dans ce cas de figure, chaque modalité de la variable d’intérêt sera comparée à une modalité de référence. Les odds ratio seront donc exprimés par rapport à cette dernière.

41.1 Données d’illustration

Pour illustrer la régression logistique multinomiale, nous allons reprendre le jeu de données hdv2003 du package questionr et portant sur l’enquête histoires de vie 2003 de l’Insee.

library(tidyverse)
library(labelled)
data("hdv2003", package = "questionr")
d <- hdv2003

Nous allons considérer comme variable d’intérêt la variable trav.satisf, à savoir la satisfaction ou l’insatisfaction au travail.

questionr::freq(d$trav.satisf)
                 n    % val%
Satisfaction   480 24.0 45.8
Insatisfaction 117  5.9 11.2
Equilibre      451 22.6 43.0
NA             952 47.6   NA

Nous allons choisir comme modalité de référence la position intermédiaire, à savoir l’« équilibre », que nous allons donc définir comme la première modalité du facteur.

d$trav.satisf <- d$trav.satisf |> fct_relevel("Equilibre")

Nous allons aussi en profiter pour raccourcir les étiquettes de la variable trav.imp :

levels(d$trav.imp) <- c("Le plus", "Aussi", "Moins", "Peu")

Enfin, procédons à quelques recodages additionnels :

d <- d |> 
  mutate(
    sexe = sexe |> fct_relevel("Femme"),
    groupe_ages = age |>
      cut(
        c(18, 25, 45, 99),
        right = FALSE,
        include.lowest = TRUE,
        labels = c("18-24 ans", "25-44 ans",
                   "45 et plus")
      ),
    etudes = nivetud |> 
      fct_recode(
        "Primaire" = "N'a jamais fait d'etudes",
        "Primaire" = "A arrete ses etudes, avant la derniere annee d'etudes primaires",
        "Primaire" = "Derniere annee d'etudes primaires",
        "Secondaire" = "1er cycle",
        "Secondaire" = "2eme cycle",
        "Technique / Professionnel" = "Enseignement technique ou professionnel court",
        "Technique / Professionnel" = "Enseignement technique ou professionnel long",
        "Supérieur" = "Enseignement superieur y compris technique superieur"
    ) |> 
    fct_na_value_to_level("Non documenté")  
  ) |> 
  set_variable_labels(
    trav.satisf = "Satisfaction dans le travail",
    sexe = "Sexe",
    groupe_ages = "Groupe d'âges",
    etudes = "Niveau d'études",
    trav.imp = "Importance accordée au travail"
  )

41.2 Calcul du modèle multinomial

Pour calculer un modèle logistique multinomial, nous allons utiliser la fonction nnet::multinom() de l’extension nnet1. La syntaxe de nnet::multinom() est similaire à celle de glm(), le paramètre family en moins.

1 Il existe plusieurs alternatives possibles : la fonction VGAM::vglm() avec family = VGAM::multinomial ou encore mlogit::mlogit(). Ces deux fonctions sont un peu plus complexes à mettre en œuvre. On se référera à la documentation de chaque package. Le support des modèles mlogit() et vglm() est aussi plus limité dans d’autres packages tels que broom.helpers, gtsummary, ggstats ou encore marginaleffects.

reg <- nnet::multinom(
  trav.satisf ~ sexe + etudes + groupe_ages + trav.imp,
  data = d
)
# weights:  36 (22 variable)
initial  value 1151.345679 
iter  10 value 977.985279
iter  20 value 971.187398
final  value 971.113280 
converged

Comme pour la régression logistique binaire, il est possible de réaliser une sélection pas à pas descendante (cf. Chapitre 23) :

reg2 <- reg |> step()
trying - sexe 
trying - etudes 
trying - groupe_ages 
trying - trav.imp 
trying - sexe 
trying - etudes 
trying - trav.imp 
trying - etudes 
trying - trav.imp 

41.3 Affichage des résultats du modèle

Une des particularités de la régression logistique multinomiale est qu’elle produit une série de coefficients pour chaque modalité de la variable d’intérêt (sauf la modalité de référence). Ici, nous aurons donc une série de coefficients pour celles et ceux qui sont satisfaits au travail (comparés à la modalité Équilibre) et une série de coefficients pour celles et ceux qui sont insatisfaits (comparés aux aussi à la modalité Équilibre).

La fonction gtsummary::tbl_regression() peut gérer ce type de modèles, et va afficher les deux séries de coefficients l’une au-dessus de l’autre. Nous allons indiquer exponentiate = TRUE car, comme pour la régression logistique binaire, l’exponentielle des coefficients peut s’interpréter comme des odds ratios.

library(gtsummary)
theme_gtsummary_language("fr", decimal.mark = ",")
tbl <- reg2 |> 
  tbl_regression(exponentiate = TRUE)
ℹ Multinomial models have a different underlying structure than the models
gtsummary was designed for. Other gtsummary functions designed to work with
tbl_regression objects may yield unexpected results.
tbl
Caractéristique OR1 95% IC1 p-valeur
Satisfaction
Niveau d'études


    Primaire
    Secondaire 1,05 0,63 – 1,76 0,9
    Technique / Professionnel 1,08 0,67 – 1,73 0,7
    Supérieur 2,01 1,24 – 3,27 0,005
    Non documenté 0,58 0,18 – 1,86 0,4
Importance accordée au travail


    Le plus
    Aussi 1,29 0,56 – 2,98 0,5
    Moins 0,84 0,37 – 1,88 0,7
    Peu 0,55 0,18 – 1,64 0,3
Insatisfaction
Niveau d'études


    Primaire
    Secondaire 0,91 0,41 – 1,99 0,8
    Technique / Professionnel 1,09 0,54 – 2,19 0,8
    Supérieur 1,08 0,51 – 2,29 0,8
    Non documenté 0,96 0,18 – 4,97 >0,9
Importance accordée au travail


    Le plus
    Aussi 0,80 0,24 – 2,69 0,7
    Moins 0,59 0,18 – 1,88 0,4
    Peu 3,82 1,05 – 13,9 0,042
1 OR = rapport de cotes, IC = intervalle de confiance
Table 41.1: Tableau des odds ratio de la régression logistique multinomiale

L’odds ratio du niveau d’étude supérieur pour la modalité satisfaction est de 2,01, indiquant que les personnes ayant un niveau d’étude supérieur ont plus de chances d’être satisfait au travail que d’être à l’équilibre que les personnes de niveau primaire. Par contre, l’OR est de seulement 1,08 (et non significatif) pour la modalité Insatisfait indiquant que ces personnes n’ont ni plus ni moins de chance d’être insatisfaite que d’être à l’équilibre.

On notera au passage un message d’avertissement de gtsummary sur le fait que les modèles multinomiaux n’ont pas la même structure que d’autres modèles et donc que certaines fonctionnalités ne sont pas disponibles. C’est le cas par exemple de gtsummary::add_global_p() pour le calcul des p-valeurs globales des variables. Pour tester l’effet globale d’une variable dans le modèle, on aura directement recours à car::Anova().

reg2 |> car::Anova()
Analysis of Deviance Table (Type II tests)

Response: trav.satisf
         LR Chisq Df Pr(>Chisq)    
etudes     24.211  8   0.002112 ** 
trav.imp   48.934  6  7.687e-09 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Astuce

La fonction gtsummary::tbl_regression() affiche le tableau des coefficients dans un format long. Or, il est souvent plus lisible de présenter les coefficients dans un format large, avec les coefficients pour chaque modalité côte à côte.

Cela n’est pas possible nativement avec gtsummary mais on pourra éventuellement utiliser la fonction multinom_pivot_wider() proposée sur GitHub Gist. Voici son code à recopier dans son script.

multinom_pivot_wider <- function(x) {
  # check inputs match expectatations
  if (!inherits(x, "tbl_regression") || !inherits(x$model_obj, "multinom")) {
    stop("`x=` must be class 'tbl_regression' summary of a `nnet::multinom()` model.")
  }
  
  # create tibble of results
  df <- tibble::tibble(outcome_level = unique(x$table_body$groupname_col))
  df$tbl <- 
    purrr::map(
      df$outcome_level,
      function(lvl) {
        gtsummary::modify_table_body(
          x, 
          ~dplyr::filter(.x, .data$groupname_col %in% lvl) %>%
            dplyr::ungroup() %>%
            dplyr::select(-.data$groupname_col)
        )
      }
    )
  
  tbl_merge(df$tbl, tab_spanner = paste0("**", df$outcome_level, "**"))
}

Il ne reste plus qu’à l’appliquer au tableau généré avec gtsummary::tbl_regression(). Attention : cette fonction n’est compatible qu’avec les modèles nnet::multinom().

tbl |> multinom_pivot_wider()
Warning: Use of .data in tidyselect expressions was deprecated in tidyselect 1.2.0.
ℹ Please use `"groupname_col"` instead of `.data$groupname_col`
Caractéristique Satisfaction Insatisfaction
OR1 95% IC1 p-valeur OR1 95% IC1 p-valeur
Niveau d'études





    Primaire

    Secondaire 1,05 0,63 – 1,76 0,9 0,91 0,41 – 1,99 0,8
    Technique / Professionnel 1,08 0,67 – 1,73 0,7 1,09 0,54 – 2,19 0,8
    Supérieur 2,01 1,24 – 3,27 0,005 1,08 0,51 – 2,29 0,8
    Non documenté 0,58 0,18 – 1,86 0,4 0,96 0,18 – 4,97 >0,9
Importance accordée au travail





    Le plus

    Aussi 1,29 0,56 – 2,98 0,5 0,80 0,24 – 2,69 0,7
    Moins 0,84 0,37 – 1,88 0,7 0,59 0,18 – 1,88 0,4
    Peu 0,55 0,18 – 1,64 0,3 3,82 1,05 – 13,9 0,042
1 OR = rapport de cotes, IC = intervalle de confiance

Pour un graphique des coefficients, on ne peut appeler directement ggstats::gcoef_model() en raison de la structure différente du modèle. Heureusement, ggstats propose une fonction spécifique ggstats::ggcoef_multinom() avec trois types de visualisation.

reg2 |> 
  ggstats::ggcoef_multinom(
    exponentiate = TRUE
  )
Figure 41.1: Graphique des coefficients du modèle multinomial (type “dodged”)
reg2 |> 
  ggstats::ggcoef_multinom(
    type = "faceted",
    exponentiate = TRUE
  )
Figure 41.2: Graphique des coefficients du modèle multinomial (type “faceted”)
reg2 |> 
  ggstats::ggcoef_multinom(
    type = "table",
    exponentiate = TRUE
  )
Figure 41.3: Graphique des coefficients du modèle multinomial (type “table”)

Pour faciliter l’interprétation, on pourra représenter les prédictions marginales du modèle (cf. Chapitre 24) avec broom.helpers::plot_marginal_predictions().

reg2 |> 
  broom.helpers::plot_marginal_predictions() |> 
  patchwork::wrap_plots(ncol = 1) &
  scale_y_continuous(labels = scales::percent, limits = c(0, .8)) &
  coord_flip()
Figure 41.4: Prédictions marginales du modèle multinomial
Astuce

Dans certaines situations, il peut être plus simple de réaliser plusieurs modèles logistiques binaires séparés plutôt qu’une régression multinomiale. Si la variable à expliquer a trois niveaux (A, B et C), on pourra réaliser un modèle binaire B vs A, et un modèle binaire C vs A. Cette approche est appelée approximation de Begg et Gray. On trouvera, en anglais, plus d’explications et des références bibliographiques sur StackOverflow.

41.4 Données pondérées

L’extension survey (cf. Chapitre 28) ne fournit pas de fonction adaptée aux régressions multinomiales. Cependant, il est possible d’en réaliser une en ayant recours à des poids de réplication, comme suggéré par Thomas Lumley dans son ouvrage Complex Surveys: A Guide to Analysis Using R. Thomas Lumley est par ailleurs l’auteur de l’extension survey.

41.4.1 avec svrepmisc::svymultinom()

L’extension svrepmisc disponible sur GitHub fournit quelques fonctions facilitant l’utilisation des poids de réplication avec survey. Pour l’installer, on utilisera le code ci-dessous :

remotes::install_github("carlganz/svrepmisc")

En premier lieu, il faut définir le design de notre tableau de données puis calculer des poids de réplication.

library(survey)
library(srvyr)
dw_rep <- d |>
  as_survey(weights = poids) |> 
  as_survey_rep(type = "bootstrap", replicates = 25)

Il faut prévoir un nombre de replicates suffisant pour calculer ultérieurement les intervalles de confiance des coefficients. Plus ce nombre est élevé, plus précise sera l’estimation de la variance et donc des valeurs p et des intervalles de confiance. Cependant, plus ce nombre est élevé, plus le temps de calcul sera important. Pour gagner en temps de calcul, nous avons ici pris une valeur de 25, mais l’usage est de considérer au moins 1000 réplications.

svrepmisc fournit une fonction svrepmisc::svymultinom() pour le calcul d’une régression multinomiale avec des poids de réplication.

library(svrepmisc)
regm <- svymultinom(
  trav.satisf ~ sexe + etudes + trav.imp,
  design = dw_rep
)

svrepmisc fournit également des méthodes svrepmisc::confint() et svrepmisc::tidy(). Nous pouvons donc calculer et afficher les odds ratio et leur intervalle de confiance.

regm
                                               Coefficient        SE t value
Satisfaction.(Intercept)                         -0.116149  0.618225 -0.1879
Insatisfaction.(Intercept)                       -1.547056  0.855048 -1.8093
Satisfaction.sexeHomme                           -0.041405  0.216241 -0.1915
Insatisfaction.sexeHomme                          0.221849  0.266264  0.8332
Satisfaction.etudesSecondaire                     0.115722  0.409487  0.2826
Insatisfaction.etudesSecondaire                   0.418476  0.588089  0.7116
Satisfaction.etudesTechnique / Professionnel      0.220702  0.331924  0.6649
Insatisfaction.etudesTechnique / Professionnel    0.529317  0.515873  1.0261
Satisfaction.etudesSupérieur                      0.905852  0.307796  2.9430
Insatisfaction.etudesSupérieur                    0.584499  0.502393  1.1634
Satisfaction.etudesNon documenté                 -0.323293  0.668356 -0.4837
Insatisfaction.etudesNon documenté                0.646168  4.045869  0.1597
Satisfaction.trav.impAussi                       -0.027506  0.516710 -0.0532
Insatisfaction.trav.impAussi                     -0.375642  0.920842 -0.4079
Satisfaction.trav.impMoins                       -0.220703  0.440438 -0.5011
Insatisfaction.trav.impMoins                     -0.694337  0.819118 -0.8477
Satisfaction.trav.impPeu                         -0.069034  0.701991 -0.0983
Insatisfaction.trav.impPeu                        1.584747  0.747956  2.1188
                                               Pr(>|t|)  
Satisfaction.(Intercept)                        0.85630  
Insatisfaction.(Intercept)                      0.11333  
Satisfaction.sexeHomme                          0.85359  
Insatisfaction.sexeHomme                        0.43224  
Satisfaction.etudesSecondaire                   0.78565  
Insatisfaction.etudesSecondaire                 0.49974  
Satisfaction.etudesTechnique / Professionnel    0.52739  
Insatisfaction.etudesTechnique / Professionnel  0.33901  
Satisfaction.etudesSupérieur                    0.02162 *
Insatisfaction.etudesSupérieur                  0.28277  
Satisfaction.etudesNon documenté                0.64335  
Insatisfaction.etudesNon documenté              0.87762  
Satisfaction.trav.impAussi                      0.95903  
Insatisfaction.trav.impAussi                    0.69551  
Satisfaction.trav.impMoins                      0.63167  
Insatisfaction.trav.impMoins                    0.42466  
Satisfaction.trav.impPeu                        0.92442  
Insatisfaction.trav.impPeu                      0.07185 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
regm |> confint()
                                                    2.5 %     97.5 %
Satisfaction.(Intercept)                       -1.5780191  1.3457207
Insatisfaction.(Intercept)                     -3.5689245  0.4748117
Satisfaction.sexeHomme                         -0.5527335  0.4699227
Insatisfaction.sexeHomme                       -0.4077661  0.8514639
Satisfaction.etudesSecondaire                  -0.8525593  1.0840041
Insatisfaction.etudesSecondaire                -0.9721340  1.8090867
Satisfaction.etudesTechnique / Professionnel   -0.5641743  1.0055791
Insatisfaction.etudesTechnique / Professionnel -0.6905283  1.7491632
Satisfaction.etudesSupérieur                    0.1780309  1.6336732
Insatisfaction.etudesSupérieur                 -0.6034705  1.7724692
Satisfaction.etudesNon documenté               -1.9037051  1.2571183
Insatisfaction.etudesNon documenté             -8.9207924 10.2131279
Satisfaction.trav.impAussi                     -1.2493304  1.1943182
Insatisfaction.trav.impAussi                   -2.5530875  1.8018039
Satisfaction.trav.impMoins                     -1.2621733  0.8207664
Insatisfaction.trav.impMoins                   -2.6312440  1.2425701
Satisfaction.trav.impPeu                       -1.7289790  1.5909103
Insatisfaction.trav.impPeu                     -0.1838887  3.3533831
regm |>
  broom::tidy(exponentiate = TRUE, conf.int = TRUE)
                                             term  estimate std.error
1                      Insatisfaction.(Intercept) 0.2128737 0.8550484
2              Insatisfaction.etudesNon documenté 1.9082140 4.0458691
3                 Insatisfaction.etudesSecondaire 1.5196444 0.5880893
4                  Insatisfaction.etudesSupérieur 1.7940926 0.5023926
5  Insatisfaction.etudesTechnique / Professionnel 1.6977731 0.5158730
6                        Insatisfaction.sexeHomme 1.2483828 0.2662643
7                    Insatisfaction.trav.impAussi 0.6868483 0.9208422
8                    Insatisfaction.trav.impMoins 0.4994055 0.8191183
9                      Insatisfaction.trav.impPeu 4.8780580 0.7479564
10                       Satisfaction.(Intercept) 0.8903423 0.6182250
11               Satisfaction.etudesNon documenté 0.7237615 0.6683564
12                  Satisfaction.etudesSecondaire 1.1226842 0.4094865
13                   Satisfaction.etudesSupérieur 2.4740390 0.3077957
14   Satisfaction.etudesTechnique / Professionnel 1.2469523 0.3319245
15                         Satisfaction.sexeHomme 0.9594401 0.2162407
16                     Satisfaction.trav.impAussi 0.9728687 0.5167097
17                     Satisfaction.trav.impMoins 0.8019545 0.4404378
18                       Satisfaction.trav.impPeu 0.9332946 0.7019909
     statistic    p.value     conf.low    conf.high
1  -1.80932035 0.11332755 0.0281861515     1.607711
2   0.15971049 0.87761988 0.0001335823 27258.697233
3   0.71158638 0.49974106 0.3782749551     6.104869
4   1.16343140 0.28277428 0.5469103132     5.885368
5   1.02606159 0.33900670 0.5013111611     5.749789
6   0.83319064 0.43224350 0.6651344381     2.343074
7  -0.40793290 0.69551136 0.0778409591     6.060570
8  -0.84766380 0.42465688 0.0719888511     3.464506
9   2.11876941 0.07185195 0.8320283946    28.599324
10 -0.18787535 0.85630448 0.2063835085     3.840954
11 -0.48371410 0.64335340 0.1490154813     3.515277
12  0.28260372 0.78565443 0.4263224454     2.956494
13  2.94303019 0.02161993 1.1948622000     5.122657
14  0.66491757 0.52739417 0.5688296426     2.733490
15 -0.19147836 0.85358654 0.5753748697     1.599870
16 -0.05323323 0.95903343 0.2866966995     3.301306
17 -0.50110017 0.63167118 0.2830382415     2.272241
18 -0.09834082 0.92441845 0.1774655126     4.908215

Par contre, le support de gtsummary::tbl_regression() et ggstats::ggcoef_model() est plus limité. Vous pourrez afficher un tableau basique des résultats et un graphiques des coefficients, mais sans les enrichissements usuels (identification des variables, étiquettes propres, identification des niveaux, etc.).

41.4.2 avec svyVGAM::svy_glm()

Une alternative possible pour le calcul de la régression logistique multinomiale avec des données pondérées est svyVGAM::svy_vglm() avec family = VGAM::multinomial.

Nous allons commencer par définir le plan d’échantillonnage.

library(survey)
library(srvyr)
dw <- d |>
  as_survey(weights = poids)

Puis, on appelle svyVGAM::svy_vglm() en précisant family = VGAM::multinomial. Par défaut, VGAM::multinomial() utilise la dernière modalité de la variable d’intérêt comme modalité de référence. Cela est modifiable avec refLevel.

regm2 <- svyVGAM::svy_vglm(
  trav.satisf ~ sexe + etudes + trav.imp,
  family = VGAM::multinomial(refLevel = "Equilibre"),
  design = dw
)
regm2 |> summary()
svy_vglm.survey.design(trav.satisf ~ sexe + etudes + trav.imp, 
    family = VGAM::multinomial(refLevel = "Equilibre"), design = dw)
Independent Sampling design (with replacement)
Called via srvyr
Sampling variables:
 - ids: `1`
 - weights: poids
Data variables: id (int), age (int), sexe (fct), nivetud (fct), poids (dbl),
  occup (fct), qualif (fct), freres.soeurs (int), clso (fct), relig (fct),
  trav.imp (fct), trav.satisf (fct), hard.rock (fct), lecture.bd (fct),
  peche.chasse (fct), cuisine (fct), bricol (fct), cinema (fct), sport (fct),
  heures.tv (dbl), groupe_ages (fct), etudes (fct)
                                       Coef        SE       z        p
(Intercept):1                     -0.116117  0.553242 -0.2099 0.833757
(Intercept):2                     -1.547693  0.876195 -1.7664 0.077332
sexeHomme:1                       -0.041412  0.171351 -0.2417 0.809029
sexeHomme:2                        0.221930  0.272669  0.8139 0.415693
etudesSecondaire:1                 0.115688  0.341830  0.3384 0.735034
etudesSecondaire:2                 0.418102  0.563205  0.7424 0.457868
etudesTechnique / Professionnel:1  0.220662  0.310123  0.7115 0.476754
etudesTechnique / Professionnel:2  0.529020  0.501080  1.0558 0.291079
etudesSupérieur:1                  0.905798  0.314513  2.8800 0.003977
etudesSupérieur:2                  0.584320  0.525633  1.1116 0.266289
etudesNon documenté:1             -0.323271  0.662511 -0.4879 0.625587
etudesNon documenté:2              0.646195  0.939745  0.6876 0.491687
trav.impAussi:1                   -0.027517  0.511636 -0.0538 0.957109
trav.impAussi:2                   -0.374881  0.825214 -0.4543 0.649625
trav.impMoins:1                   -0.220706  0.494951 -0.4459 0.655659
trav.impMoins:2                   -0.693571  0.792031 -0.8757 0.381200
trav.impPeu:1                     -0.069004  0.706959 -0.0976 0.922244
trav.impPeu:2                      1.585521  0.866529  1.8297 0.067289

Là encore, le support de gtsummary::tbl_regression() et ggstats::ggcoef_model() sera limité (seulement des résultats bruts). Pour calculer les odds ratios avec leurs intervalles de confiance, on pourra avoir recours à broom.helpers::tidy_parameters().

regm2 |> broom.helpers::tidy_parameters(exponentiate = TRUE) 
                                term  estimate std.error conf.level   conf.low
1                      (Intercept):1 0.8903708 0.4925908       0.95 0.30105802
2                      (Intercept):2 0.2127382 0.1864002       0.95 0.03819678
3                        sexeHomme:1 0.9594340 0.1643997       0.95 0.68574259
4                        sexeHomme:2 1.2484837 0.3404228       0.95 0.73162172
5                 etudesSecondaire:1 1.1226456 0.3837540       0.95 0.57448201
6                 etudesSecondaire:2 1.5190753 0.8555505       0.95 0.50370762
7  etudesTechnique / Professionnel:1 1.2469025 0.3866926       0.95 0.67897791
8  etudesTechnique / Professionnel:2 1.6972676 0.8504673       0.95 0.63566751
9                  etudesSupérieur:1 2.4739057 0.7780767       0.95 1.33557655
10                 etudesSupérieur:2 1.7937708 0.9428657       0.95 0.64024629
11             etudesNon documenté:1 0.7237778 0.4795111       0.95 0.19754885
12             etudesNon documenté:2 1.9082659 1.7932841       0.95 0.30250055
13                   trav.impAussi:1 0.9728582 0.4977496       0.95 0.35689786
14                   trav.impAussi:2 0.6873710 0.5672279       0.95 0.13638549
15                   trav.impMoins:1 0.8019528 0.3969271       0.95 0.30398071
16                   trav.impMoins:2 0.4997879 0.3958473       0.95 0.10582985
17                     trav.impPeu:1 0.9333229 0.6598208       0.95 0.23348961
18                     trav.impPeu:2 4.8818349 4.2302506       0.95 0.89328990
   conf.high   statistic df.error     p.value
1   2.633247 -0.20988509      Inf 0.833757356
2   1.184853 -1.76637893      Inf 0.077332298
3   1.342360 -0.24167835      Inf 0.809029407
4   2.130488  0.81391637      Inf 0.415692863
5   2.193860  0.33843739      Inf 0.735033605
6   4.581209  0.74236198      Inf 0.457868051
7   2.289862  0.71153296      Inf 0.476754032
8   4.531799  1.05575832      Inf 0.291078645
9   4.582448  2.87999791      Inf 0.003976778
10  5.025587  1.11164951      Inf 0.266288875
11  2.651771 -0.48794745      Inf 0.625587062
12 12.037925  0.68762767      Inf 0.491687277
13  2.651888 -0.05378223      Inf 0.957108667
14  3.464290 -0.45428375      Inf 0.649624613
15  2.115688 -0.44591425      Inf 0.655659186
16  2.360279 -0.87568771      Inf 0.381199829
17  3.730751 -0.09760692      Inf 0.922244427
18 26.679258  1.82973852      Inf 0.067289048

41.5 webin-R

La régression logistique multinomiale est abordée dans le webin-R #20 (trajectoires de soins : un exemple de données longitudinales (4)) sur YouTube.