Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
régression logistique et variables ordinales
3 participants
Page 1 sur 1
régression logistique et variables ordinales
Bonjour tout le monde,
je cherche à réaliser une régression logistique (présence ou absence d'une maladie) avec diverses covariables dont certaines sont rangées par grade de sévérité.
exemple: un marqueur radiologique que j'ai appelé "LacuneNumgrade" (grade 0=0 ; grade 1 = 1 à 5 ; grade 2 = > 5).
Je n'arrive pas à bien interpréter le résultat de l'odd ratio.. "data$LacuneNumgrade 1.45" (p<0,05)
Cela veut il dire qu'à chaque fois que l'on augmente d'un grade, on augmente l'OR de 1.45? => en passant d'un grade 0 à 1: OR = 1.45 ; si passage de grade 1 à 2 : OR=2,90 ?
Pourtant comment s'assurer que le "gap" entre le passage d'un grade 1 à 2 n'est pas plus important qu'un passage entre grade 0 à 1?
de même comment obtenir l'interval de confiance pour chaque grade?? car en tapant la fonction "confint()" dans R je n'obtient qu'un seul interval de confiance (celui qui compare le grade 0 à 1 je suppose? mais comment faire pour avoir celui entre un grade 1 et 2)
Je ne sais pas si j'ai été très clair..
je vous remercie beaucoup
je cherche à réaliser une régression logistique (présence ou absence d'une maladie) avec diverses covariables dont certaines sont rangées par grade de sévérité.
exemple: un marqueur radiologique que j'ai appelé "LacuneNumgrade" (grade 0=0 ; grade 1 = 1 à 5 ; grade 2 = > 5).
Je n'arrive pas à bien interpréter le résultat de l'odd ratio.. "data$LacuneNumgrade 1.45" (p<0,05)
Cela veut il dire qu'à chaque fois que l'on augmente d'un grade, on augmente l'OR de 1.45? => en passant d'un grade 0 à 1: OR = 1.45 ; si passage de grade 1 à 2 : OR=2,90 ?
Pourtant comment s'assurer que le "gap" entre le passage d'un grade 1 à 2 n'est pas plus important qu'un passage entre grade 0 à 1?
de même comment obtenir l'interval de confiance pour chaque grade?? car en tapant la fonction "confint()" dans R je n'obtient qu'un seul interval de confiance (celui qui compare le grade 0 à 1 je suppose? mais comment faire pour avoir celui entre un grade 1 et 2)
Je ne sais pas si j'ai été très clair..
je vous remercie beaucoup
loloyup- Nombre de messages : 16
Date d'inscription : 20/04/2016
Re: régression logistique et variables ordinales
Tu as défini ta variable LacuneNumgrade par des valeurs numériques donc en l'absence d'autres informations, le logiciel (R en l'occurrence) considère cette variable comme numérique. Le résultat n'a donc aucun sens. Il faut déclarer cette variable comme étant un facteur.
Florent Aubry- Nombre de messages : 251
Date d'inscription : 02/11/2015
Re: régression logistique et variables ordinales
en effet!
en précisant "as.factor(data$lacunegrade)" cela fonctionne bien
juste pour bien comprendre : que comprenais R au par avant?
Merci beaucoup
en précisant "as.factor(data$lacunegrade)" cela fonctionne bien
juste pour bien comprendre : que comprenais R au par avant?
Merci beaucoup
loloyup- Nombre de messages : 16
Date d'inscription : 20/04/2016
Re: régression logistique et variables ordinales
Bonjour,
avec as.factor tu n'as pas une variable ordinale mais nominale. A toi de voir si ça te convient. Voir la notion de contrasts ordinaux si tu veux vraiment travailler en intégrant le côté ordinal de ta variable.
Avec ta spécification précédente, tu avais "simplement" une variable continue classique sans idée de catégorie ordonnées.
La lecture du livre Categorical data analysis d'Agresti est pleine d'enseignement avec à côté le compagnon réalisé pour R (gratuit sur le net). Les variables ordinales sont quand même un peu des oubliées des analyses sans doute cela tient au fait que la théorie maths a été partiellement laissée de côté.
On pourrait ajouter qu'une variable continue n'est rien d'autre qu'une variable ordinales avec un pas infinitésimal
avec as.factor tu n'as pas une variable ordinale mais nominale. A toi de voir si ça te convient. Voir la notion de contrasts ordinaux si tu veux vraiment travailler en intégrant le côté ordinal de ta variable.
Avec ta spécification précédente, tu avais "simplement" une variable continue classique sans idée de catégorie ordonnées.
La lecture du livre Categorical data analysis d'Agresti est pleine d'enseignement avec à côté le compagnon réalisé pour R (gratuit sur le net). Les variables ordinales sont quand même un peu des oubliées des analyses sans doute cela tient au fait que la théorie maths a été partiellement laissée de côté.
On pourrait ajouter qu'une variable continue n'est rien d'autre qu'une variable ordinales avec un pas infinitésimal
Nik- Nombre de messages : 1606
Date d'inscription : 23/05/2008
Re: régression logistique et variables ordinales
Pour avoir une variable ordinal, il suffit d'utiliser la fonction factor avec ordered=TRUE. Par exemple, si tu as trois groupes, "Normal", "grade1", "grade2" et que l'ordre est dans ce sens, tu déclares le facteur ainsi :
Par contre, il faut se méfier le la notion de contrastes ordinaux parce que R les traite par défaut comme des classes issues du découpage en intervalles égaux d'une variable quantitative. Il donne donc des résultats concernant la tendance, linéaire, quadratique... sous ces hypothèses (contraste par défaut contr.poly). Pour avoir un début de réponse à la question de loloyup de l'influence du passage d'un grade à un autre, une solution est de déclarer la variable comme un facteur ordonné et d'utiliser pour ce facteur le contraste contr.sdif du package MASS. Pour cela, il suffit de passer la déclaration à la procédure de calcul (par exemple, glm) par son argument contrats :
Comme je l'ai dit plus haut, auparavant R considérait la variable comme une variable quantitative et faisait donc un régression logistique avec comme prédicteur un régresseur.
- Code:
factor( ma.variable, levels=c( "Normal", "grade1", "grade2"), labels=c( "Normal", "grade1", "grade2"), ordered=TRUE)
Par contre, il faut se méfier le la notion de contrastes ordinaux parce que R les traite par défaut comme des classes issues du découpage en intervalles égaux d'une variable quantitative. Il donne donc des résultats concernant la tendance, linéaire, quadratique... sous ces hypothèses (contraste par défaut contr.poly). Pour avoir un début de réponse à la question de loloyup de l'influence du passage d'un grade à un autre, une solution est de déclarer la variable comme un facteur ordonné et d'utiliser pour ce facteur le contraste contr.sdif du package MASS. Pour cela, il suffit de passer la déclaration à la procédure de calcul (par exemple, glm) par son argument contrats :
- Code:
glm( ..., contrasts=list( LacuneNumgrade=contr.sdif))
Comme je l'ai dit plus haut, auparavant R considérait la variable comme une variable quantitative et faisait donc un régression logistique avec comme prédicteur un régresseur.
Florent Aubry- Nombre de messages : 251
Date d'inscription : 02/11/2015
Re: régression logistique et variables ordinales
Pour compléter également, la fonction C() est pratique pour modifier explicitement les contrastes :
Le résultat est le même qu'avec l'argument contrast de glm.
- Code:
glm(.~.+C(LacuneNumgrade, contr.sdif))
Le résultat est le même qu'avec l'argument contrast de glm.
Nik- Nombre de messages : 1606
Date d'inscription : 23/05/2008
Re: régression logistique et variables ordinales
ok!
je vais continuer à potasser sur le sujet mais je vous remercie beaucoup, c'est déjà bien plus clair!
je vais continuer à potasser sur le sujet mais je vous remercie beaucoup, c'est déjà bien plus clair!
loloyup- Nombre de messages : 16
Date d'inscription : 20/04/2016
Re: régression logistique et variables ordinales
@Nik
En effet. Le seule problème est ensuite de référencer la variable dans les tests post-hoc (glht ou lsmeans par exemple), c'est pourquoi personnellement je déconseille l'écriture avec la fonction C.
En effet. Le seule problème est ensuite de référencer la variable dans les tests post-hoc (glht ou lsmeans par exemple), c'est pourquoi personnellement je déconseille l'écriture avec la fonction C.
Florent Aubry- Nombre de messages : 251
Date d'inscription : 02/11/2015
Sujets similaires
» Régression logistique : indépendance des variables
» Régression logistique, variables, statistiques descriptives
» Regression logistique (codages variables quantitatives)
» Régression logistique basé sur des variables binaires
» Crossover variables quanti et ordinales
» Régression logistique, variables, statistiques descriptives
» Regression logistique (codages variables quantitatives)
» Régression logistique basé sur des variables binaires
» Crossover variables quanti et ordinales
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum