Pb de pvalue dans un summary de lm (souci de contrast?)

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

Simon NAVEL
Messages : 12
Enregistré le : 21 Fév 2008, 13:18

Pb de pvalue dans un summary de lm (souci de contrast?)

Messagepar Simon NAVEL » 14 Nov 2008, 10:43

Bonjour,

Tout d'abord je m'excuse pour cette question qui relève plus de la Statistique que du codage à proprement parler.
Dans le cadre d'une analyse"simple", j'aimerais utiliser la méthode des contrasts pour déterminer quelles modalités de variables différents.

J'ai le modèle suivant:

Code : Tout sélectionner

porosite=as.factor(MASSE$POROSITE)
gammare=as.factor(MASSE$GAMMARE)
lm1=lm(MASSE$ASIN~porosite+gammare+porosite:gammare)


Jusque là tout est simple.

Sauf que:

Code : Tout sélectionner

> summary(lm1)

Call:
lm(formula = MASSE$ASIN ~ porosite + gammare + porosite:gammare)

Residuals:
       Min         1Q     Median         3Q        Max
-0.1124667 -0.0151417 -0.0005667  0.0126417  0.0770333

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)   
(Intercept)         0.140633   0.028683   4.903 0.000364 ***
porosite2           0.025367   0.040564   0.625 0.543453   
porosite3          -0.008300   0.040564  -0.205 0.841303   
gammare1           -0.007133   0.040564  -0.176 0.863342   
porosite2:gammare1  0.205500   0.057366   3.582 0.003767 **
porosite3:gammare1  0.188267   0.057366   3.282 0.006558 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.04968 on 12 degrees of freedom
Multiple R-Squared: 0.8433,     Adjusted R-squared: 0.7781
F-statistic: 12.92 on 5 and 12 DF,  p-value: 0.0001746


Le problème que j'ai est la pvalue donnée par le summary (alors que l'estimate est bon) pour les interactions.

J'interprète mon summary comme "l'intercept (Porosite1 - Gammare0) est significativement différent du traitements P3-G1" (par exemple), ce qui est complètement faux au vu des graphiques et des données.

Toutes les pvalue données quand un seul paramètre change (par rapport à l'intercept) sont tout a fait cohérentes...le problème se déclare uniquement au niveau des interactions. Le problème a lieu quelque soit la base dans mes contrast, à chaque fois la comparaison à l'intercept pour les interactions ne sont pas cohérentes.

Est-ce que je me trompe dans mon interprétation des interactions?
Est-ce que j'ai réellement des pvalue pas "nettes" (alors que les estimates sont bons)?

En m'excusant de poster ce qui doit être quelque chose on ne peut plus basique...

Simon

Simon NAVEL
Messages : 12
Enregistré le : 21 Fév 2008, 13:18

Messagepar Simon NAVEL » 14 Nov 2008, 15:08

Après mûre réflexion je pense que mon souci est dans les contrasts.

avec mon lm1

Code : Tout sélectionner

lm1=lm(MASSE$ASIN~porosite+gammare+porosite:gammare)


et contrasts comme tels:

Code : Tout sélectionner

contrasts(porosite)=contr.treatment(3,base=1)
dimnames(contrasts(porosite))[[2]]=c("P2","P3")

contrasts(gammare)=contr.treatment(2,base=1)
dimnames(contrasts(gammare))[[2]]="G1"


j'obtiens pour vérifications les choses suivantes:

Code : Tout sélectionner

> contrasts(porosite)
  P2 P3
1  0  0
2  1  0
3  0  1
> contrasts(gammare)
  G1
0  0
1  1
> contrasts(porosite:gammare)
    1:1 2:0 2:1 3:0 3:1
1:0   0   0   0   0   0
1:1   1   0   0   0   0
2:0   0   1   0   0   0
2:1   0   0   1   0   0
3:0   0   0   0   1   0
3:1   0   0   0   0   1


Je pense que mon problème viend des contrastes de l'interaction car si je change les bases (par exemple en mettant comme base porosite 3 - gammare 0), j'obtiens:

Code : Tout sélectionner

> contrasts(porosite)
  P1 P2
1  1  0
2  0  1
3  0  0
> contrasts(gammare)
  G1
0  0
1  1
> contrasts(porosite:gammare)
    1:1 2:0 2:1 3:0 3:1
1:0   0   0   0   0   0
1:1   1   0   0   0   0
2:0   0   1   0   0   0
2:1   0   0   1   0   0
3:0   0   0   0   1   0
3:1   0   0   0   0   1


La matrice des contrasts de l'interaction ne changent pas.
J'ai essayé de les rentrer moi-même, en écrivant une matrice..mais impossible de lui spécifier que celle-ci correspond aux contrastes de l'interaction.

Si toutefois ce genre de problème vous dit quelque chose....
Et en esperant que je ne me trompe pas complètement de voie,



(Pour détail voici les contrasts utilisés par lm1)

Code : Tout sélectionner

> model.matrix(lm1)
   (Intercept) porositeP2 porositeP3 gammareG1 porositeP2:gammareG1 porositeP3:gammareG1
1            1          0          0         1                    0                    0
2            1          0          0         0                    0                    0
3            1          0          0         1                    0                    0
4            1          0          0         0                    0                    0
5            1          0          0         1                    0                    0
6            1          0          0         0                    0                    0
7            1          1          0         1                    1                    0
8            1          1          0         0                    0                    0
9            1          1          0         1                    1                    0
10           1          1          0         0                    0                    0
11           1          1          0         1                    1                    0
12           1          1          0         0                    0                    0
13           1          0          1         1                    0                    1
14           1          0          1         0                    0                    0
15           1          0          1         1                    0                    1
16           1          0          1         0                    0                    0
17           1          0          1         1                    0                    1
18           1          0          1         0                    0                    0
attr(,"assign")
[1] 0 1 1 2 3 3
attr(,"contrasts")
attr(,"contrasts")$porosite
  P2 P3
1  0  0
2  1  0
3  0  1

attr(,"contrasts")$gammare
  G1
0  0
1  1



Simon

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Messagepar Nicolas Péru » 16 Nov 2008, 22:32

Salut Simon,

je n'ai pas étudié tout ton post en détail mais jette un oeil à ce sujet : viewtopic.php?t=608&highlight=indicatrice

Peut être y trouveras tu une explication aux résultats qui te semblent incorrects et je crois qu'il y a une méthode pour modifier les contrasts de l'interaction.

Nicolas

Simon NAVEL
Messages : 12
Enregistré le : 21 Fév 2008, 13:18

Messagepar Simon NAVEL » 17 Nov 2008, 08:33

Salut Nicolas,

Merci beaucoup pour le lien.
Je n'avais pas vu ce post, je vais donc fouiller par là.... je pense pouvoir trouver mon bonheur la dedans.

Merci beaucoup,
Et encore pardon pour les sollicitations.

Simon


Retourner vers « Questions en cours »

Qui est en ligne

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