régression logistique et variables ordinales

Voir le sujet précédent Voir le sujet suivant Aller en bas

régression logistique et variables ordinales

Message par loloyup le Ven 22 Avr 2016 - 8:42

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.. scratch

je vous remercie beaucoup

loloyup

Nombre de messages : 11
Date d'inscription : 20/04/2016

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: régression logistique et variables ordinales

Message par Florent Aubry le Ven 22 Avr 2016 - 10:23

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 : 123
Date d'inscription : 02/11/2015

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: régression logistique et variables ordinales

Message par loloyup le Ven 22 Avr 2016 - 10:33

en effet!
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 : 11
Date d'inscription : 20/04/2016

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: régression logistique et variables ordinales

Message par Nik le Ven 22 Avr 2016 - 11:36

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 Smile

Nik

Nombre de messages : 1501
Date d'inscription : 23/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: régression logistique et variables ordinales

Message par Florent Aubry le Ven 22 Avr 2016 - 12:16

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 :
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 : 123
Date d'inscription : 02/11/2015

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: régression logistique et variables ordinales

Message par Nik le Ven 22 Avr 2016 - 12:38

Pour compléter également, la fonction C() est pratique pour modifier explicitement les contrastes :

Code:
glm(.~.+C(LacuneNumgrade, contr.sdif))

Le résultat est le même qu'avec l'argument contrast de glm.

Nik

Nombre de messages : 1501
Date d'inscription : 23/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: régression logistique et variables ordinales

Message par loloyup le Ven 22 Avr 2016 - 12:42

ok!
je vais continuer à potasser sur le sujet mais je vous remercie beaucoup, c'est déjà bien plus clair!

loloyup

Nombre de messages : 11
Date d'inscription : 20/04/2016

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: régression logistique et variables ordinales

Message par Florent Aubry le Ven 22 Avr 2016 - 13:16

@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.

Florent Aubry

Nombre de messages : 123
Date d'inscription : 02/11/2015

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: régression logistique et variables ordinales

Message par Contenu sponsorisé Aujourd'hui à 10:45


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum