You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
bonjour,
merci pour ce tutoriel qui est vraiment très bien et qui m'aide énormément. Si je peux toutefois suggérer une amélioration qui serait utile pour les novices comme moi, ce serait de rajouter ponctuellement une petite phrase d'interprétation/explication des sorties, car cela aiderait bien à la compréhension.
Encore merci
Bonjour,
Merci encore pour vos tutoriels très édifiants. Ils sont complets et personnellement m'apporte beaucoup, cependant j'ai une petite question s'il vous plaît: Actuellement je travaille sur des données d'enquête pondérées (package "survey" et "weights" déjà installés) et j'aimerais avoir un p-for-trend (autrement dit une p-value de test de tendance) pour des variables de ma base (binaire et continue) en fonction d'une variable catégorielle à 3 classes. D'après vos tutos je pense que la fonction "svyolr" est celle qui me permettra d'avoir ce p-for-trend: me recommandez vous cette approche par une regression logistique ordinale? Si oui dans le script présenté j'aimerais savoir à quoi correspond le "t-value" lorsqu'on execute la fonction "svyolr"... Merci pour vos éclaircissements
Bonjour
Merci beaucoup pour ce tutoriel très clair, mais je suis confronté à un problème sur le format de ma variable dépendante , j'ai le message suivant :
cplt1<-glm(NB~sex,data=A,family = binomial(link = logit))
Error in weights * y : non-numeric argument to binary operator
Alors que ma variable NB est une variable texte "oui/non", si je passe en 0/1, l'analyse des tableaux all-in-one la considère comme quantitative ....
Il faut la convertir en un facteur avec factor(). De plus, il est important que vous modifier l'ordre du facteur pour que la première modalité soit celle de référence (voir la fonction relevel()).
Pouvez-vous parler sur les hypothèses d'utilisation des regressions logiques?
Car je veux bien l'appliquer à mes données, mais elles sont à mesures répétées. J'ai lu sur plusieurs sites (et un livre de stats) qu'il n'est pas possible d'utiliser cette méthode avec des mésures répétées...
En effet, dans le cadre d'une régression logistique classique (avec glm) les différentes observations sont supposées indépendantes. Or ce n'est pas le cas avec des observations répétées. Dans une telle situation, vous devez tenir compte de la répétition en réalisant un modèle mixte avec une variable aléatoire (fonction glmer du package lme4) ou bien réalisé un modèle dit GEE (voir la fonction geeglm du package geepack).
Bonjour, déjà merci pour vos webinaires, ils sont fabuleux !
J'ai plusieurs erreurs qui sortent lorsque je lance les opérations sur mon modèle de régression logistique multinomiale. Après avoir lancé la commande pour set ma valeur de référence, je lance un check de VIF, et reçoit "in multinom (...) group '0' 'na' are empty".
Si je continue sur le code en ignorant ce message, divers autres erreurs apparaissent au fur et à mesure que j'éxecute les autres : "NaNs produced" (avec odds.ratio et step), "broom::tidy failed to tidy the model" (avec tbl_regression et ggcoef_multinom). J'imagine qu'il s'est passé quelque chose lors de la création du modèle, mais comment l'analyser et trouver l'origine de l'erreur (puis bien sur, le corriger) ?
J'ai également une autre question : peut-on définir comme une référence pour chacune des variables explicatives ? Par exemple, déterminer une observation globale de référence comprenant une modalité de chaque variable explicative que je définirai moi-même. Si oui, comment ?
Pour questionr::odds.ratio() et broom::tidy(), il faudrait un exemple reproductible pour comprendre d'où vient l'erreur.
peut-on définir comme une référence pour chacune des variables explicatives ? Par exemple, déterminer une observation globale de référence comprenant une modalité de chaque variable explicative que je définirai moi-même. Si oui, comment ?
Bonjour Joseph,
Merci pour ce retour rapide !
Je n'ai pas réussi à attacher proprement mes données avec la fonction dput,
mais je vous ajoute le fichier .csv en pièce jointe, ainsi que le code
(c'est ce que je fais de mon côté).
J'ai rajouté des commentaires là où les erreurs viennent, ainsi que la base
de la création de mon dataframe au cas où je l'aurais mal pensé et que cela
induirait ces erreurs.
Je vous remercie d'avance pour votre temps et votre aide !
Julia
Le mer. 23 juin 2021 à 09:22, Joseph ***@***.***> a écrit :
Une fois de plus merci pour ce tutoriel que vous nous partagez et qui nous aide beaucoup en soutien statistique dans notre quotidien.
Je vous contacte car j'aimerais avoir votre avis sur un package développé par Touloumis en 2013, le package "multgee" qui permet l'analyse de modèles GEE pour les outcomes à plus de 2 modalités (multinomiaux et ordinaux) : https://cran.r-project.org/web/packages/multgee/multgee.pdf https://onlinelibrary.wiley.com/doi/full/10.1111/biom.12054
Les 2 principales fonctions sont nomLORgee et ordLORgee.
Son approche consiste à estimer des Odds ratio locaux à partir du paramètre "alpha" (intercept) qui prend en compte les covariables, les modalités de la variable réponse, et la mesure des corrélations et non indépendance des données.
La sortie R nous présente des coefficients, erreurs standards et p-value classiques, et en plus une matrice d'OR locaux dont je n'arrive pas à comprendre l'interprétation.
J'aimerais savoir si ces OR locaux sont différents des OR classiques, estimés à partir de l'exponentiel du coefficient "beta" des covariables dans un modèle uni ou multivarié, et comment les interpréter ? Et comment obtenir des OR associés aux covariables dans un modèle GEE multinomial car la méthode exp(coef(modèle)) semble ne pas marcher.
En effet voici un exemple issu de la librairie de la fonction "nomLORgee", celle sur laquelle j'ai des difficultés actuellement dans l'analyse de mes données :
#Editeur R :
library(multgee)
data(housing)
fitmod <- nomLORgee(y ~ factor(time), data = housing, id = id,
repeated = time)
summary(fitmod)
#Console R (output):
fitmod <- nomLORgee(y ~ factor(time), data = housing, id = id,
repeated = time)
summary(fitmod)
GEE FOR NOMINAL MULTINOMIAL RESPONSES
version 1.6.0 modified 2017-07-10
Link : Baseline Category Logit
Local Odds Ratios:
Structure: time.exch
Model: 3way
Homogenous scores: TRUE
call:
nomLORgee(formula = y ~ factor(time), data = housing, id = id,
repeated = time)
Summary of residuals:
Min. 1st Qu. Median Mean 3rd Qu. Max.
-0.498615 -0.363966 -0.126836 -0.002905 0.501385 0.889580
#La variable "y" a 3 modalités : 0, 1, 2
la variable "time" a 3 modalités : 6, 12, 24
#Généralement, nous pouvons faire un exp(coef(fitmod)) pour récupérer les OR, et éventuellement un confint(fitmod) pour les Intervalles de confiance à 95 %. Cependant, en utilisant cette syntaxe, je n'obtiens pas des OR, enfin j'obtiens des valeurs mais qui ne correspondent probablement pas à des OR dans cet exemple
#Ainsi je me demande à quoi correspond donc les estiamtions des coefficients dans le "summary", et surtout comment lire et interpréter la matrice de "local Odds Ratios Estimates" à la fin de la sortie.
Ce sont les premiers coefficients qui sont les plus importants et qui correspondent aux différents odds ratios. Les local OR traduisent quant à eux les ajustements pris en compte par le GEE pour tenir de la répétition des observations.
Il n'y a pas de méthode tidy pour ces modèles. Mais il est possible d'avoir recours aux fonctions génériques coef() et confint(). La fonction générique tidy_model() que j'ai développé dans JLutils fonctionne aussi pour ces modèles. Voir exemple ci-dessous.
Bonjour, merci beaucoup pour votre intervention et pour ces illustrations.
En effet j'en étais arrivé aux mêmes conclusions que vous, que les OR qui nous interressent sont ceux obtenus à partir de l'exponentiel des coefficients du modèle. Cependant ces OR obtenus me semblent très faibles.
Vous remarquerez qu'ils sont tous inférieurs à 1 (les OR qui correspondent aux modalités de la covariable "time"), et c'est le cas également lorsque j'applique cette formule aux données sur lesquelles je travaille.
J'obtiens toujours des chiffres très bas, pour mon outcome à 3 catégories.
C'est ce qui m'interroge le plus sur la pertinence des OR obtenus par cette fonction.
Bonjour,
Je voulais savoir s'il y a une fonction plus simple qui permet de générer les résultats(OR, IC95%, p-value) d'analyse multivariée et univariées d'une régression logistique dans un même tableau d'un coup svp? J'essaie d'utiliser tbl_régression mais ça me génère uniquement les résultat de la régression multivariée. J'ai 25 variable indépendante à utiliser pour l'analyse univariée et ceux pour 5 critères de jugements....Merci
Le 27 juin 2021 à 13:28, Joseph ***@***.***> a écrit :
Bonjour
tbl_uvregression() permets de réaliser les multiples régressions univariées en une seule opération et un seul tableau.
tbl_merge() permets de fusionner deux tableaux en un seul.
J'ai ajouté un exemple concret dans le chapitre sur la régression logistique : https://larmarange.github.io/analyse-R/regression-logistique.html#gtsummary
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
Repository owner locked and limited conversation to collaborators on Oct 22, 2021
Activity
petitscarabee010 commentedon Nov 14, 2019
bonjour,
merci pour ce tutoriel qui est vraiment très bien et qui m'aide énormément. Si je peux toutefois suggérer une amélioration qui serait utile pour les novices comme moi, ce serait de rajouter ponctuellement une petite phrase d'interprétation/explication des sorties, car cela aiderait bien à la compréhension.
Encore merci
enzo7-196 commentedon Mar 13, 2020
Bonjour,
Merci encore pour vos tutoriels très édifiants. Ils sont complets et personnellement m'apporte beaucoup, cependant j'ai une petite question s'il vous plaît: Actuellement je travaille sur des données d'enquête pondérées (package "survey" et "weights" déjà installés) et j'aimerais avoir un p-for-trend (autrement dit une p-value de test de tendance) pour des variables de ma base (binaire et continue) en fonction d'une variable catégorielle à 3 classes. D'après vos tutos je pense que la fonction "svyolr" est celle qui me permettra d'avoir ce p-for-trend: me recommandez vous cette approche par une regression logistique ordinale? Si oui dans le script présenté j'aimerais savoir à quoi correspond le "t-value" lorsqu'on execute la fonction "svyolr"... Merci pour vos éclaircissements
loicjochault commentedon Dec 8, 2020
Bonjour
Merci beaucoup pour ce tutoriel très clair, mais je suis confronté à un problème sur le format de ma variable dépendante , j'ai le message suivant :
Alors que ma variable NB est une variable texte "oui/non", si je passe en 0/1, l'analyse des tableaux all-in-one la considère comme quantitative ....
Je vous remercie par avance de votre aide.
larmarange commentedon Dec 8, 2020
Il faut la convertir en un facteur avec
factor(). De plus, il est important que vous modifier l'ordre du facteur pour que la première modalité soit celle de référence (voir la fonctionrelevel()).Cdlt
loicjochault commentedon Dec 9, 2020
Gemma92bcn commentedon Jan 23, 2021
Pouvez-vous parler sur les hypothèses d'utilisation des regressions logiques?
Car je veux bien l'appliquer à mes données, mais elles sont à mesures répétées. J'ai lu sur plusieurs sites (et un livre de stats) qu'il n'est pas possible d'utiliser cette méthode avec des mésures répétées...
larmarange commentedon Jan 26, 2021
En effet, dans le cadre d'une régression logistique classique (avec
glm) les différentes observations sont supposées indépendantes. Or ce n'est pas le cas avec des observations répétées. Dans une telle situation, vous devez tenir compte de la répétition en réalisant un modèle mixte avec une variable aléatoire (fonctionglmerdu packagelme4) ou bien réalisé un modèle dit GEE (voir la fonctiongeeglmdu packagegeepack).Vous pouvez jeter un oeil à http://larmarange.github.io/analyse-R/modeles-a-effets-aleatoires.html mais ce chapitre (non finalisé) est encore trop ardu dans sa rédaction me semble t il.
Juliagz commentedon Jun 22, 2021
Bonjour, déjà merci pour vos webinaires, ils sont fabuleux !
J'ai plusieurs erreurs qui sortent lorsque je lance les opérations sur mon modèle de régression logistique multinomiale. Après avoir lancé la commande pour set ma valeur de référence, je lance un check de VIF, et reçoit "in multinom (...) group '0' 'na' are empty".
Si je continue sur le code en ignorant ce message, divers autres erreurs apparaissent au fur et à mesure que j'éxecute les autres : "NaNs produced" (avec odds.ratio et step), "broom::tidy failed to tidy the model" (avec tbl_regression et ggcoef_multinom). J'imagine qu'il s'est passé quelque chose lors de la création du modèle, mais comment l'analyser et trouver l'origine de l'erreur (puis bien sur, le corriger) ?
J'ai également une autre question : peut-on définir comme une référence pour chacune des variables explicatives ? Par exemple, déterminer une observation globale de référence comprenant une modalité de chaque variable explicative que je définirai moi-même. Si oui, comment ?
Merci d'avance !
larmarange commentedon Jun 23, 2021
Bonjour,
difficile de vous répondre sans exemple reproductible (voir http://adv-r.had.co.nz/Reproducibility.html )
En premier lieu, je ne suis pas certain que la fonction
car::vif()fonctionne avec les modèlesnnet::multinom(). Voir https://stackoverflow.com/questions/61083073/vif-function-from-car-package-returns-nas-when-assessing-multinomial-logisticPour
questionr::odds.ratio()etbroom::tidy(), il faudrait un exemple reproductible pour comprendre d'où vient l'erreur.Je ne suis pas sur d'avoir compris la question.
Juliagz commentedon Jun 23, 2021
enzo7-196 commentedon Jun 23, 2021
Bonjour Joseph,
Une fois de plus merci pour ce tutoriel que vous nous partagez et qui nous aide beaucoup en soutien statistique dans notre quotidien.
Je vous contacte car j'aimerais avoir votre avis sur un package développé par Touloumis en 2013, le package "multgee" qui permet l'analyse de modèles GEE pour les outcomes à plus de 2 modalités (multinomiaux et ordinaux) :
https://cran.r-project.org/web/packages/multgee/multgee.pdf
https://onlinelibrary.wiley.com/doi/full/10.1111/biom.12054
Les 2 principales fonctions sont nomLORgee et ordLORgee.
Son approche consiste à estimer des Odds ratio locaux à partir du paramètre "alpha" (intercept) qui prend en compte les covariables, les modalités de la variable réponse, et la mesure des corrélations et non indépendance des données.
La sortie R nous présente des coefficients, erreurs standards et p-value classiques, et en plus une matrice d'OR locaux dont je n'arrive pas à comprendre l'interprétation.
J'aimerais savoir si ces OR locaux sont différents des OR classiques, estimés à partir de l'exponentiel du coefficient "beta" des covariables dans un modèle uni ou multivarié, et comment les interpréter ? Et comment obtenir des OR associés aux covariables dans un modèle GEE multinomial car la méthode exp(coef(modèle)) semble ne pas marcher.
Merci d'avance.
larmarange commentedon Jun 23, 2021
Le package
multgeeest effectivement le plus adapté pour des modèles GEE logistiques multinomiaux et ordinaux.Concernant la question sur les sorties R, aurions-vous un exemple concret (voir http://adv-r.had.co.nz/Reproducibility.html ) ?
enzo7-196 commentedon Jun 23, 2021
Merci beaucoup pour votre réponse rapide.
En effet voici un exemple issu de la librairie de la fonction "nomLORgee", celle sur laquelle j'ai des difficultés actuellement dans l'analyse de mes données :
#Editeur R :
library(multgee)
data(housing)
fitmod <- nomLORgee(y ~ factor(time), data = housing, id = id,
repeated = time)
summary(fitmod)
#Console R (output):
Link : Baseline Category Logit
Local Odds Ratios:
Structure: time.exch
Model: 3way
Homogenous scores: TRUE
call:
nomLORgee(formula = y ~ factor(time), data = housing, id = id,
repeated = time)
Summary of residuals:
Min. 1st Qu. Median Mean 3rd Qu. Max.
-0.498615 -0.363966 -0.126836 -0.002905 0.501385 0.889580
Number of Iterations: 2
Coefficients:
Estimate san.se san.z Pr(>|san.z|)
beta10 1.38629 0.16667 8.3178 < 2.2e-16 ***
factor(time)6:1 -2.51068 0.21679 -11.5813 < 2.2e-16 ***
factor(time)12:1 -2.94657 0.23682 -12.4421 < 2.2e-16 ***
factor(time)24:1 -2.81595 0.22938 -12.2763 < 2.2e-16 ***
beta20 1.10599 0.17197 6.4312 < 2.2e-16 ***
factor(time)6:2 -1.10949 0.19952 -5.5607 < 2.2e-16 ***
factor(time)12:2 -1.47350 0.20820 -7.0772 < 2.2e-16 ***
factor(time)24:2 -1.53984 0.20433 -7.5361 < 2.2e-16 ***
Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1
Local Odds Ratios Estimates:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 0.000 0.000 1.359 1.882 1.359 1.882 1.359 1.882
[2,] 0.000 0.000 1.882 3.687 1.882 3.687 1.882 3.687
[3,] 1.359 1.882 0.000 0.000 1.359 1.882 1.359 1.882
[4,] 1.882 3.687 0.000 0.000 1.882 3.687 1.882 3.687
[5,] 1.359 1.882 1.359 1.882 0.000 0.000 1.359 1.882
[6,] 1.882 3.687 1.882 3.687 0.000 0.000 1.882 3.687
[7,] 1.359 1.882 1.359 1.882 1.359 1.882 0.000 0.000
[8,] 1.882 3.687 1.882 3.687 1.882 3.687 0.000 0.000
p-value of Null model: < 0.0001
#La variable "y" a 3 modalités : 0, 1, 2
la variable "time" a 3 modalités : 6, 12, 24
#Généralement, nous pouvons faire un exp(coef(fitmod)) pour récupérer les OR, et éventuellement un confint(fitmod) pour les Intervalles de confiance à 95 %. Cependant, en utilisant cette syntaxe, je n'obtiens pas des OR, enfin j'obtiens des valeurs mais qui ne correspondent probablement pas à des OR dans cet exemple
#Console R (output):
#Ainsi je me demande à quoi correspond donc les estiamtions des coefficients dans le "summary", et surtout comment lire et interpréter la matrice de "local Odds Ratios Estimates" à la fin de la sortie.
Merci d'avance et désolé pour cette illustration car je ne suis pas parvenu à reproduire cet exemple via (http://adv-r.had.co.nz/Reproducibility.html )
larmarange commentedon Jun 23, 2021
Ce sont les premiers coefficients qui sont les plus importants et qui correspondent aux différents odds ratios. Les local OR traduisent quant à eux les ajustements pris en compte par le GEE pour tenir de la répétition des observations.
Il n'y a pas de méthode
tidypour ces modèles. Mais il est possible d'avoir recours aux fonctions génériquescoef()etconfint(). La fonction génériquetidy_model()que j'ai développé dansJLutilsfonctionne aussi pour ces modèles. Voir exemple ci-dessous.Created on 2021-06-23 by the reprex package (v2.0.0)
larmarange commentedon Jun 23, 2021
Pour rappel, c'est un modèle multinomial et la variable
yprend trois valeurs : 0, 1, 2enzo7-196 commentedon Jun 24, 2021
Bonjour, merci beaucoup pour votre intervention et pour ces illustrations.
En effet j'en étais arrivé aux mêmes conclusions que vous, que les OR qui nous interressent sont ceux obtenus à partir de l'exponentiel des coefficients du modèle. Cependant ces OR obtenus me semblent très faibles.
Vous remarquerez qu'ils sont tous inférieurs à 1 (les OR qui correspondent aux modalités de la covariable "time"), et c'est le cas également lorsque j'applique cette formule aux données sur lesquelles je travaille.
J'obtiens toujours des chiffres très bas, pour mon outcome à 3 catégories.
C'est ce qui m'interroge le plus sur la pertinence des OR obtenus par cette fonction.
Gildas
larmarange commentedon Jun 24, 2021
Tout dépend de vos données. S'il y a peu d'individus dont la situation change au cours du temps, il est normal que les OR soient faibles
enzo7-196 commentedon Jun 24, 2021
D'accord je comprends.
Merci beaucoup pour vos explications !
Lion766 commentedon Jun 26, 2021
Bonjour,
Je voulais savoir s'il y a une fonction plus simple qui permet de générer les résultats(OR, IC95%, p-value) d'analyse multivariée et univariées d'une régression logistique dans un même tableau d'un coup svp? J'essaie d'utiliser tbl_régression mais ça me génère uniquement les résultat de la régression multivariée. J'ai 25 variable indépendante à utiliser pour l'analyse univariée et ceux pour 5 critères de jugements....Merci
larmarange commentedon Jun 27, 2021
Bonjour
tbl_uvregression()permets de réaliser les multiples régressions univariées en une seule opération et un seul tableau.tbl_merge()permets de fusionner deux tableaux en un seul.J'ai ajouté un exemple concret dans le chapitre sur la régression logistique : https://larmarange.github.io/analyse-R/regression-logistique.html#gtsummary
larmarange commentedon Jun 27, 2021
Pour la régression logistique, vous pouvez également regarder du côté de l'extension
finalfitégalement présentée dans ce chapitre.Lion766 commentedon Jun 27, 2021