coefficients d'un modèle mixte linéaire

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Sophie Dubois
Messages : 14
Enregistré le : 12 Mai 2014, 13:07

coefficients d'un modèle mixte linéaire

Messagepar Sophie Dubois » 20 Jan 2015, 20:22

Bonjour,

Après avoir construit un modèle linéaire à effets mixtes avec 2 facteurs fixes et 1 facteur aléatoire grâce à la fonction lmer {lmerTest}, je voudrais récupérer les valeurs des coefficients du modèle.

Le hic, c'est que quoi que j'essaie (fixef(modèle), summary(modèle)), j'obtiens l'intercept et les pentes pour tous les croisements de modalités de mes facteurs sauf pour la première modalité de chaque facteur.

Comment faire pour récupérer ces informations et ainsi pouvoir écrire la formule du modèle qui a été construit?

Je vous remercie par avance pour votre aide!

Bonne soirée.

Eric Casellas
Messages : 767
Enregistré le : 06 Jan 2009, 14:59

Messagepar Eric Casellas » 21 Jan 2015, 09:50

Bonjour,

Je ne connais pas du tout ces fonctions, mais sinon d'une façon générale avec R la fonction str permet de facilement explorer tout ce qu'il y a dans un objet un peut complexe.

Code : Tout sélectionner

require("lmerTest")
str(lmer(Reaction ~ Days + (Days|Subject), sleepstudy))
Eric

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Messagepar Mickael Canouil » 21 Jan 2015, 10:01

C'est tout à fait normal que le coefficient de la première modalité de vos facteurs n'apparaisse pas. En effet, cette modalité est prise en référence.
Mickaël
mickael.canouil.fr | rlille.fr

Florent Aubry
Messages : 324
Enregistré le : 25 Juin 2010, 10:21

Messagepar Florent Aubry » 21 Jan 2015, 11:23

Le problème vient du fait que beaucoup d'utilisateurs de R oublient que les fonctions d'analyses linéaires de R comme lm, glm, gls, lme, lmer... donnent comme coefficients les paramètres estimés en fonction des comparaisons planifiées utilisées, c'est-à-dire des contrastes. De ce fait, on n'obtient pas du tout les mêmes paramètres, intercept compris, si on conserve les contrastes par défaut pour les facteurs non ordonnés (contr.treatment) ou si on utilise d'autres contrastes comme contr.sum, MASS::contr.sdif ou contr.poly. Dans le premier cas, l'intercept est la moyenne empirique du groupe de référence et les coefficients, les différences des autres groupes à cette référence, dans les autres cas cités, l'intercept est la grande moyenne et les paramètres dépendent comme suit du contraste :
    contr.sum : différence du groupe à la moyenne des autres, dernier excepté,
    contr.sdif : différence des moyennes de deux groupes consécutifs,
    contr.poly : coefficients 'polynomiaux' (analyse de tendance).

En fait, pour avoir une idée des liens entre les coefficients calculés et les moyennes des groupes, on peut faire le calcul suivant :

Code : Tout sélectionner

ginv( cbind( 1, contr.utilise( nlevels( facteur))))

avec contr.utilise, le contraste utilise.
La première ligne donne l'équation de calcul de l'intercept et les lignes suivantes, des paramètres suivants (cas à un seul facteur).

N.B.
    - C'est légèrement plus compliqué quand il y a plus d'un facteur et des interactions, mais le calcul est quand même assez simple.
    - Pour avoir le contraste par défaut de la session,

    Code : Tout sélectionner

    getOption( "contrasts")
    La première valeur est pour les facteurs non ordonns, la seconde pour les facteurs ordonnés. On peut aussi modifier les contrastes de divers manières notamment en donnant une valeur sous la forme

    Code : Tout sélectionner

    list( nom.facteur=contraste.facteur, ...)
    à l'argument contrasts de la fonction.

Sophie Dubois
Messages : 14
Enregistré le : 12 Mai 2014, 13:07

Messagepar Sophie Dubois » 21 Jan 2015, 11:36

Bonjour,

Merci à tous pour vos réponses. Je vais essayer d'utiliser toutes les infos que vous m'avez données pour récupérer les coefficients qui m'intéresse!

Bonne journée,

Sophie

Stéphane Laurent
Messages : 1557
Enregistré le : 05 Déc 2006, 19:07

Messagepar Stéphane Laurent » 21 Jan 2015, 15:33

Peut-être qu'on peut les extraire facilement avec le package effects ou lsmeans ?

Florent Aubry
Messages : 324
Enregistré le : 25 Juin 2010, 10:21

Messagepar Florent Aubry » 21 Jan 2015, 16:20

lsmeans permet en effet de calculer des moyennes, des pentes, des différences entre moyennes ou entre pentes et de tester la significativité des résultats. Attention quand même, les résultats sont au sens des moindres carrés.


Florent Aubry
Messages : 324
Enregistré le : 25 Juin 2010, 10:21

Messagepar Florent Aubry » 21 Jan 2015, 16:36

glht est plus difficile d'utilisation que lsmeans quand il y a des régresseurs ou des interactions entre facteurs ou entre facteurs et régresseurs. Dans ces cas, on ne peut pas coder l'argument mcp comme dans l'exemple. Je ne peux pas dire grand chose de effects ne l'utilisant plus depuis longtemps car lsmeans et, dans une certaine mesure, glht permettent de mieux spécifier à mon sens ce qu'on désire faire.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité