analyse-R/regression-logistique #146
Replies: 47 comments 37 replies
-
bonjour, |
Beta Was this translation helpful? Give feedback.
-
Bonjour, |
Beta Was this translation helpful? Give feedback.
-
Bonjour
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. |
Beta Was this translation helpful? Give feedback.
-
Il faut la convertir en un facteur avec Cdlt |
Beta Was this translation helpful? Give feedback.
-
Je vous remercie très chaleureusement pour votre réponse.
Bonne journée.
Le mar. 8 déc. 2020 à 14:07, Joseph <[email protected]> a écrit :
… 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()).
Cdlt
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#110 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ASBKN6H5C374WNI3CD5A3GLSTYQJ5ANCNFSM4JNMPP2Q>
.
|
Beta Was this translation helpful? Give feedback.
-
Pouvez-vous parler sur les hypothèses d'utilisation des regressions logiques? |
Beta Was this translation helpful? Give feedback.
-
En effet, dans le cadre d'une régression logistique classique (avec 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. |
Beta Was this translation helpful? Give feedback.
-
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". 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 ! |
Beta Was this translation helpful? Give feedback.
-
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 Pour
Je ne suis pas sur d'avoir compris la question. |
Beta Was this translation helpful? Give feedback.
-
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 :
… 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èles nnet::multinom(). Voir
https://stackoverflow.com/questions/61083073/vif-function-from-car-package-returns-nas-when-assessing-multinomial-logistic
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 ?
Je ne suis pas sur d'avoir compris la question.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#110 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AUSQI2P4TEL2U7O5QH55Z6LTUGDRXANCNFSM4JNMPP2Q>
.
--
|
Beta Was this translation helpful? Give feedback.
-
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. Les 2 principales fonctions sont nomLORgee et ordLORgee. 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. |
Beta Was this translation helpful? Give feedback.
-
Le package Concernant la question sur les sorties R, aurions-vous un exemple concret (voir http://adv-r.had.co.nz/Reproducibility.html ) ? |
Beta Was this translation helpful? Give feedback.
-
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 : #Console R (output):
Link : Baseline Category Logit Local Odds Ratios: call: Summary of residuals: Number of Iterations: 2 Coefficients:
|
Beta Was this translation helpful? Give feedback.
-
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 library(multgee)
#> Le chargement a nécessité le package : gnm
data(housing)
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
#>
#> 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
coef(fitmod)
#> beta10 factor(time)6:1 factor(time)12:1 factor(time)24:1
#> 1.386294 -2.510680 -2.946568 -2.815951
#> beta20 factor(time)6:2 factor(time)12:2 factor(time)24:2
#> 1.105992 -1.109487 -1.473498 -1.539845
exp(coef(fitmod))
#> beta10 factor(time)6:1 factor(time)12:1 factor(time)24:1
#> 4.00000000 0.08121300 0.05251965 0.05984775
#> beta20 factor(time)6:2 factor(time)12:2 factor(time)24:2
#> 3.02222222 0.32972801 0.22912260 0.21441433
confint(fitmod)
#> 2.5 % 97.5 %
#> beta10 1.0596337 1.7129550
#> factor(time)6:1 -2.9355743 -2.0857855
#> factor(time)12:1 -3.4107321 -2.4824036
#> factor(time)24:1 -3.2655290 -2.3663738
#> beta20 0.7689289 1.4430559
#> factor(time)6:2 -1.5005438 -0.7184306
#> factor(time)12:2 -1.8815702 -1.0654259
#> factor(time)24:2 -1.9403234 -1.1393666
exp(confint(fitmod))
#> 2.5 % 97.5 %
#> beta10 2.88531390 5.54532386
#> factor(time)6:1 0.05310021 0.12420951
#> factor(time)12:1 0.03301702 0.08354218
#> factor(time)24:1 0.03817673 0.09382032
#> beta20 2.15745426 4.23361336
#> factor(time)6:2 0.22300886 0.48751675
#> factor(time)12:2 0.15235070 0.34458108
#> factor(time)24:2 0.14365749 0.32002165
source(url("https://raw.githubusercontent.com/larmarange/JLutils/master/R/tidy_model.R"))
tidy_model(fitmod, conf.int = TRUE, exponentiate = TRUE)
#> term estimate std.error statistic p.value conf.low conf.high
#> 1 beta10 3.99998256 0.16667 8.31777 0 2.88531390 5.54532386
#> 2 beta20 3.02221498 0.17197 6.43115 0 2.15745426 4.23361336
#> 3 factor(time)12:1 0.05251954 0.23682 -12.44208 0 0.03301702 0.08354218
#> 4 factor(time)12:2 0.22912215 0.20820 -7.07719 0 0.15235070 0.34458108
#> 5 factor(time)24:1 0.05984784 0.22938 -12.27633 0 0.03817673 0.09382032
#> 6 factor(time)24:2 0.21441541 0.20433 -7.53609 0 0.14365749 0.32002165
#> 7 factor(time)6:1 0.08121300 0.21679 -11.58133 0 0.05310021 0.12420951
#> 8 factor(time)6:2 0.32972708 0.19952 -5.56072 0 0.22300886 0.48751675 Created on 2021-06-23 by the reprex package (v2.0.0) |
Beta Was this translation helpful? Give feedback.
-
Pour rappel, c'est un modèle multinomial et la variable
|
Beta Was this translation helpful? Give feedback.
-
Merci beaucoup de votre réponse rapide Monsieur Larmarange. J'aimerai toutefois demander une précision, la base "newdata" utilisée dans la fonction de prédiction, est elle la même base pondérée utilisée dans la régression logistique s'il vous plait ? ou c'est une nouvelle base où il y a que les individus que je veux prédire leur réponse ? Ensuite, dans le cas de régression logistique ordinale, la variable dépendante est discrimination (positive/egale/negative), comment procéder cette fois ci la prédiction ou comment prédire la réponses des individus qui ne souhaitent pas à répondre à cette question ? mop1 <- svyolr ( discri ~ SEXE_rec+org_geo_r+AGE_rec, design = base_regp) En vous remerciant |
Beta Was this translation helpful? Give feedback.
-
Bonjour Joseph, je suis attentivement vos ressources pour R (j'avais l'habitude d'utiliser Stata sauf pour les ACM avec Factominer mais R semble plus puissant), et je cherche à obtenir des prédictions sur une variable ordinale (classe 1, classe 2, classe 3) et non pas une variable binaire soit les "chances" d'appartenir à chacune des classes (classes de prestige pour des écrivains) selon le sexe. Mais les fonctions que vous donnez dans le chapitre sur les prédictions marginales ne semblent pas fonctionner avec des classes (Error in UseMethod("predict") : |
Beta Was this translation helpful? Give feedback.
-
Bonjour, |
Beta Was this translation helpful? Give feedback.
-
Bonjour, |
Beta Was this translation helpful? Give feedback.
-
Bonjour |
Beta Was this translation helpful? Give feedback.
-
Merci pour cet éclaircissement |
Beta Was this translation helpful? Give feedback.
-
Merci pour ta réponse |
Beta Was this translation helpful? Give feedback.
-
Salut Joseph,J'espère que vous allez bien!A quand la reprise du Webin-R?Agréable journée!
Arsène
Le mercredi 30 août 2023 à 13:01:09 UTC+1, Joseph Larmarange ***@***.***> a écrit :
Je ne comprends pas très bien.
Soit vous avez des données sans pondération ni plan d'échantillonnage. Dans ce cas cas vous utilisez nnet::multinom().
Soit vous avez des données d'enquêtes avec une variable de pondération et un plan d'échantillonnage, et dans ce cas il faut passer par le package survey. Vous ne pouvez plus utiliser nnet::multinom(). Il faut alors avoir recours à des poids de réplication et à svymultinom().
A vous de clarifier cela par rapport à la documentation de votre source de données.
Concernant la sélection pas à pas descendante d'un modèle, il existe plusieurs approches. L'une d'elle est la minimisation de l'AIC et s'obtient avec step(). D'autres auteurs se basent sur les p-valeurs avec un seuil (par exemple 20%). Là encore, plusieurs manières de faire : (1) une analyse bivariée avec chaque variable et vous mettez dans le modèle les variables qui en bivariés ont une p-valeur < 20% ; (2) vous réalisez un modèle avec toutes les variables, supprimez celle avec la plus grande p-valeur (>20%), faite retourner le modèle pour calculer les nouvelles p-valeurs et ainsi de suite. C'est un processus manuel. Tout dépend des usages de votre discipline / domaine. Demandez conseil à votre encadrant ou bien regardez ce qui est fait dans les articles de votre domaine.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Bonjour, juste un petit message pour vous dire merci ! Super guide ! :) |
Beta Was this translation helpful? Give feedback.
-
Bonjour, J'ai une question concernant la représentation des modèles avec ggcoef_model et ggcoef_table Timothée |
Beta Was this translation helpful? Give feedback.
-
J'aurais également une deuxième question |
Beta Was this translation helpful? Give feedback.
-
Bonjour Joseph, |
Beta Was this translation helpful? Give feedback.
-
Bonjour Joseph, tout d'abord merci de faire vivre cette communauté avec vos contenus d'une grande qualité ! Je devrais vous remercie dans chacun de mes travaux tant vos supports sont essentiels ! Il reste une question sur les derniers modèles que j'ai effectué, qu'ils soient binomiaux ou multinomiaux, pour lesquels je n'ai pas la réponse : mes variables continues semblent être indépendantes (OR très proches de 1), mais ce n'est pas le cas lorsque je visualise les prédictions sous le prisme de probabilités (avec plot_marginal_predictions() par exemple), ou encore lorsque je recode mes variables. Malgré tout, toutes mes p-valeurs sont significatives (<0.001), avec des IC très faibles, voire nulles. Merci par avance pour l'aide que vous pourrez m'apporter ! |
Beta Was this translation helpful? Give feedback.
-
Merci beaucoup pour cette très prompte réponse !
Très proche de 1 veut dire... 1, ou éventuellement 0.998. Pensez-vous que
normaliser ces variables pour augmenter les unités pourrait être un bon
moyen de tester leur effet sur les ORs ?
Merci par avance et belle journée à vous,
Julia
Le mar. 26 nov. 2024 à 14:29, Joseph Larmarange ***@***.***>
a écrit :
… La vraie question est "Que veux dire proche de 1 ?"
Pour une variable continue, l'OR correspond à l'effet quand on augmente
d'une unité. Dans certains cas, cela peut paraître faible, mais si on
augmente de beaucoup d'unité, alors l'effet apparait comme important.
Par exemple, si vous étudiez une probabilité en fonction de la durée
depuis un certain événement, avez-vous exprimé cette durée en jours ou en
année ? Si c'est en jour, l'OR peut sembler très proche de 1, mais une fois
réexprimé en année il apparait comme élevé. C'est tout l'intérêt de
regarder les prédictions marginales, qui elles sont indépendantes du choix
de l'unité pour votre variable continue.
Cdlt
—
Reply to this email directly, view it on GitHub
<#146 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BNHT7ZSEFGCLTZ7TX4J37432CRZTZAVCNFSM6AAAAABQDGYLZKVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTCMZYGM4DKNQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
--
*Julia Agziou*
*+33 6 10 49 47 93*
|
Beta Was this translation helpful? Give feedback.
-
0.998 n'est pas forcément proche de 1. Pour reprendre mon exemple
précédent, un OR journalier de 0.998 réexprimé en année donnerait 0.998^365
= 0.4815 !!!!
Vous pouvez normaliser votre variable quantitative si vous le voulez, ou
bien changer d'unité (en années, en dizaines, en centaines...) avant le
calcul du modèle. Pour ma part, je prégère la seconde option qui est plus
facile à interpréter.
Cordialement
Cordialement
…--
*Joseph LARMARANGE*
https://joseph.larmarange.net
Demographer PhD HDR, Research Director at IRD <http://www.ird.fr/>
*Directeur adjoint du Ceped <http://www.ceped.org/> UMR 196*
(Univ. Paris Cité <https://u-paris.fr/> · IRD <https://www.ird.fr/> · Univ.
Sorbonne Paris Nord <https://www.univ-spn.fr/> · Inserm
<https://www.inserm.fr/> 1348)
Associate researcher at Ined <https://www.ined.fr/>
Ceped (George Sand), 20 Av. George Sand, 93210 Saint-Denis, France
Ceped (Sts Pères), 45 rue des Saints-Pères, 75006 Paris, France
Prendre RDV : https://www.vyte.in/larmarange
Le mar. 26 nov. 2024 à 14:59, pandacryu ***@***.***> a écrit :
Merci beaucoup pour cette très prompte réponse !
Très proche de 1 veut dire... 1, ou éventuellement 0.998. Pensez-vous que
normaliser ces variables pour augmenter les unités pourrait être un bon
moyen de tester leur effet sur les ORs ?
Merci par avance et belle journée à vous,
Julia
Le mar. 26 nov. 2024 à 14:29, Joseph Larmarange ***@***.***>
a écrit :
> La vraie question est "Que veux dire proche de 1 ?"
>
> Pour une variable continue, l'OR correspond à l'effet quand on augmente
> d'une unité. Dans certains cas, cela peut paraître faible, mais si on
> augmente de beaucoup d'unité, alors l'effet apparait comme important.
>
> Par exemple, si vous étudiez une probabilité en fonction de la durée
> depuis un certain événement, avez-vous exprimé cette durée en jours ou
en
> année ? Si c'est en jour, l'OR peut sembler très proche de 1, mais une
fois
> réexprimé en année il apparait comme élevé. C'est tout l'intérêt de
> regarder les prédictions marginales, qui elles sont indépendantes du
choix
> de l'unité pour votre variable continue.
>
> Cdlt
>
> —
> Reply to this email directly, view it on GitHub
> <
#146 (reply in thread)>,
> or unsubscribe
> <
https://github.com/notifications/unsubscribe-auth/BNHT7ZSEFGCLTZ7TX4J37432CRZTZAVCNFSM6AAAAABQDGYLZKVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTCMZYGM4DKNQ>
> .
> You are receiving this because you commented.Message ID:
> ***@***.***>
>
--
*Julia Agziou*
*+33 6 10 49 47 93*
—
Reply to this email directly, view it on GitHub
<#146 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAHL5I4LB5JWTB355CDZFYL2CR5DTAVCNFSM6AAAAABQDGYLZKVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTCMZYGQYTSMY>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Régression logistique binaire, multinomiale et ordinale
undefined
http://larmarange.github.io/analyse-R/regression-logistique.html
Beta Was this translation helpful? Give feedback.
All reactions