nested ANOVA

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

Juliette Pont
Messages : 7
Enregistré le : 14 Fév 2007, 09:37

nested ANOVA

Messagepar Juliette Pont » 14 Fév 2007, 17:24

Bonjour,
J aimerais faire une nested ANOVA (factor2 nested dans factor1) et inclure un block ‘jour’ (mon expérience a été faite sur plusieurs jours, avec plusieurs réplicats pour chaque traitement chaque jour, et il y a un effet fort du jour). Je ne suis pas sure comment inclure le block dans mon modèle qui est aov(response.variable~factor1+Error(factor1/factor2).
Est-ce que qqn peut m’éclairer?
Merci d avance
juliette

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 14 Fév 2007, 19:23

Est-ce que le jour est factor1 ou factor1 est-il une variable différente ? Je me place dans le cas où le jour = factor1. Si on suppose qu'il n'y a pas d'interaction entre le jour et l'autre facteur et que les différents niveaux de factor2 apparaissent à des jours différents (i.e., répétition du même niveau à des jours différents), il est possible d'utiliser un modèle mixte avec le jour en effet aléatoire:

Code : Tout sélectionner

library(lme4)
fm <- lmer(response.variable ~ factor2 + (1 | jour))


(avec jour codé en facteur au sens de R)
mais les effets ne sont alors pas nichés...

Renaud

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 15 Fév 2007, 07:52

Bonjour,


J'ai trouvé un début de réponse à l'adresse suivante :
https://www.biostat.envt.fr/wiki/index.php?title=Analyse_de_variance&printable=yes#Conditions_d.27utilisation_d.27une_ANOVA
j'espère que ça pourra te servir.

Maxime

Juliette Pont
Messages : 7
Enregistré le : 14 Fév 2007, 09:37

Messagepar Juliette Pont » 15 Fév 2007, 09:22

Merci pour vos réponses.
Le jour n’est pas le facteur1. c’est une expérience de selection, le facteur 1 sont des régimes de sélection, le facteur 2 sont des lignées répliquées de ma sélection (nestées dans le régime de séection). J’ai mesuré toutes mes lignées plusieurs fois par jour, sur plusieurs jour, et j aimerais inclure jour comme block dans mon modèle. Si je j écris le modèle suivant dans R aov(response.variable~regime+day+Error(regime/lignée), j’obtiens cet output qui me semble faux. Pourquoi il y a 2 Mean Sq différents pour jour, et pas de Mean Sq pour lignées nesté dans régime?
Error: regime
Df Sum Sq Mean Sq
regime 1 0.020176 0.020176

Error: regime:ligne
Df Sum Sq Mean Sq F value Pr(>F)
day 1 0.029499 0.029499 1.3968 0.2584
Residuals 13 0.274553 0.021119

Error: Within
Df Sum Sq Mean Sq F value Pr(>F)
day 1 0.12476 0.12476 8.812 0.003973 **
Residuals 78 1.10434 0.01416

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 15 Fév 2007, 12:25

Re,


Essaie : anova(aov(response~day+regim/lignée))

Maxime

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 15 Fév 2007, 12:55

Le jour n’est pas le facteur1. c’est une expérience de selection, le facteur 1 sont des régimes de sélection, le facteur 2 sont des lignées répliquées de ma sélection (nestées dans le régime de séection). J’ai mesuré toutes mes lignées plusieurs fois par jour, sur plusieurs jour, et j aimerais inclure jour comme block dans mon modèle. Si je j écris le modèle suivant dans R aov(response.variable~regime+day+Error(regime/lignée), j’obtiens cet output qui me semble faux. Pourquoi il y a 2 Mean Sq différents pour jour, et pas de Mean Sq pour lignées nesté dans régime?
Error: regime
Df Sum Sq Mean Sq
regime 1 0.020176 0.020176

Error: regime:ligne
Df Sum Sq Mean Sq F value Pr(>F)
day 1 0.029499 0.029499 1.3968 0.2584
Residuals 13 0.274553 0.021119

Error: Within
Df Sum Sq Mean Sq F value Pr(>F)
day 1 0.12476 0.12476 8.812 0.003973 **
Residuals 78 1.10434 0.01416


Cf la proposition de Maxime pour reformuler les effets fixes. En complément, je ne sais pas comment est codée la variable "jour" mais elle a l'air d'être sous forme numérique ce qui veut dire que tu modélises une tendance linéaire. Pas sûr que ce soit ce que tu veux. D'autre part, les coefs s'interprètent alors conditionnellement à une valeur numérique de jour = 0: pas forcément pertinent.

Personnellement, j'utiliserais le modèle suivant:

Code : Tout sélectionner

fm <- lmer(response.variable ~ regime/lignée + (1 | day))
anova(fm)


ce qui signifie:
* effet de lignée niché dans régime, tous deux étant des effets fixes
* effet aléatoire du jour, i.e., variations aléatoires autour de la moyenne générale suivant une loi de Gauss de moyenne nulle et de variance estimée par le modèle.

Il faut que day soit déclaré comme un facteur.

Renaud

Juliette Pont
Messages : 7
Enregistré le : 14 Fév 2007, 09:37

Messagepar Juliette Pont » 16 Fév 2007, 10:36

fm<-aov(response~day+regim/lignée)
ça correspond bien à ce que je voulais faire. Par contre je voulais spécifier regime et lignée comme effets aléatoires. Je sais comment le faire pour lignée en utilisant aov(response~regime+Error(regime/lignée), mais je ne sais pas comment ajouter un effet aléatoire day à ce modèle. Est-ce que c’est possible ?

fm <- lmer(response ~ regime/lignée + (1 | day))
1) je n’arrive pas à obtenir la fonction lmer, ni le package lme4 ( ?). Est-ce que lmer est équivalent à lme du package nlme ?
2) Est-ce que c’est possible de faire le même modèle mais avec lignée en effet aléatoire au lieu de fixe?

merci pour votre aide!

Olivier Delaigue
Messages : 220
Enregistré le : 05 Déc 2006, 07:38

Messagepar Olivier Delaigue » 16 Fév 2007, 10:41

Juliette Pont a écrit :1) je n’arrive pas à obtenir la fonction lmer, ni le package lme4 ( ?).

Quel est le message d'erreur renvoyé ? C'est plus facile pour cerner le problème.

Juliette Pont
Messages : 7
Enregistré le : 14 Fév 2007, 09:37

Messagepar Juliette Pont » 16 Fév 2007, 10:58

Olivier Delaigue a écrit :
Juliette Pont a écrit :1) je n’arrive pas à obtenir la fonction lmer, ni le package lme4 ( ?).

Quel est le message d'erreur renvoyé ? C'est plus facile pour cerner le problème.


> fm <- lmer(response ~ regime/lignée + (1 | day))
Erreur : impossible de trouver la fonction "lmer"

> library(lme4)
Erreur dans library(lme4) : aucun package nommé 'lme4' n'est trouvé

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 16 Fév 2007, 12:07

Bonjour,

Normal tu n'as surement pas installé le package. Il te suffit d'aller dans le menu packages installer le(s) packages de choisir un mirror et de choisir en suite lme4. Une fois fini tu lances le packages avec librray(lme4).

Maxime

Juliette Pont
Messages : 7
Enregistré le : 14 Fév 2007, 09:37

Messagepar Juliette Pont » 16 Fév 2007, 13:01

merci, ça marche maintenant!


Retourner vers « Questions en cours »

Qui est en ligne

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