J'ai parcouru de nombreux sites d'aide et je ne sais toujours pas comment spécifier des termes imbriqués plus compliqués dans un modèle mixte. Je suis également confus en ce qui concerne l'utilisation de :
et /
et |
en spécifiant les interactions et l'imbrication avec des facteurs aléatoires à l'aide lmer()
du lme4
package dans R
.
Aux fins de cette question, supposons que j'ai représenté avec précision mes données avec ce modèle statistique standard: est fixe, et sont aléatoires. est (implicitement) imbriqué dans .
station
tow
day
Tow
station
En d'autres termes, j'espère que mon modèle comprend Station (i, fixe), Tow (j, aléatoire, implicitement imbriqué dans Station), Day (k, random), et l'interaction entre Tow et Day, et l'interaction entre Day et Station. J'ai consulté un statisticien pour créer mon modèle et je le crois pour le moment représentatif de mes données, mais j'ajouterai également une description de mes données pour ceux qui sont intéressés au bas de mon message afin de ne pas encombrer.
Jusqu'à présent, ce que j'ai pu reconstituer est le suivant lmer
:
lmer(y ~ station + (1|station:tow) + (1|Day) + (1|station:day) + (1|tow:day),
data=my.data)
Est-ce que cela représente avec précision mon modèle statistique? Des suggestions pour améliorer mon code s'il ne se lit pas correctement?
J'ai mis en gras les termes spécifiques que j'ai du mal à spécifier dans ma formule lmer
#1. remorquage imbriqué dans la station lorsque le remorquage est aléatoire et que la station est fixe
Je suis confus, cependant à propos de la distinction entre les termes imbriqués et d'interaction qui sont aléatoires en utilisant :
et /
. Dans mon exemple ci-dessus, j'ai (1|station:tow)
dans lequel j'espère que les lectures sont imbriquées dans la station. J'ai lu des commentaires contradictoires sur divers sites, que j'utilise ou non ici :
ou /
dans le (1|...)
format aléatoire de lmer
.
# 2. L'interaction entre la station et le jour lorsque la station est fixe et le jour est aléatoire,
je l'ai alors, (1|station:day)
mais cette fois j'espère qu'elle lit l'interaction entre la station et le jour. Il semble que je pourrais utiliser station * day pour tenir compte des effets individuels de la station et du jour ainsi que de leur interaction (plutôt que d'inclure chacun des trois termes séparément comme je le fais ci-dessus), mais je ne vois pas comment le spécifier quand l'un est fixe et l'autre est aléatoire. Feriez- station*(1|day)
vous cela?
# 3. L'interaction entre le remorquage et le jour (tous deux aléatoires) lorsque le remorquage est imbriqué dans la station (fixe)
Enfin, j'ai (1|tow:day)
ce que j'espère lire l'interaction de tow
et day
, mais je me demande si je dois spécifier à nouveau que le remorquage est imbriqué (implicitement) en station?
Je suis nouveau dans la modélisation statistique R
et lmer
et et j'apprécie grandement la difficulté d'explications approfondies dans toutes les réponses à mes questions si possible.
Plus de détails sur mes données: je demande si les concentrations de plancton varient sur un front physique dans l'océan littoral. J'ai trois stations, à terre, à l'intérieur et au large de ce front. La station est donc fixe. À chaque station, je prends trois traits de plancton répliqués (à partir desquels je trie, compte et obtient une concentration en termes de nombre de punaises par mètre cube d'eau). Le remorquage est aléatoire: en trois traits, j'espère tenir compte de la variabilité générale du plancton à cette station particulière. Le remorquage est intrinsèquement imbriqué dans la station, car chaque remorquage n'a pas d'ID unique (123, 123, 123 est l'ID des remorques à chaque station). Je l'ai ensuite fait plusieurs jours indépendants avec un nouveau front qui s'était formé. Je pense que je peux considérer Day comme un facteur de blocage? Le jour est aléatoire car répéter ceci sur plusieurs fronts indépendants indépendants tente de saisir la variabilité d'un jour à l'autre et d'être représentatif de tous les jours où ce front est présent. Je veux connaître les termes d'interaction pour voir si la variabilité des remorques varie d'un jour à l'autre et si les stations fournissent toujours des données similaires ou cela dépend-il du jour?
Encore une fois, merci pour votre temps et votre aide, je l'apprécie!
la source
R
syntaxe, l'OMI, il est suffisamment statistique (pour comprendre comment le modèle spécifié se rapporte à l'imbrication et aux interactions, etc.) pour être sur le sujet pour CV.lmer()
syntaxe, vous avez spécifié un modèle où il y a un effet fixe destation
et quatre interceptions aléatoires, partagées par des individus avec la même (1) combinaison destation
ettow
, (2) valeur deDay
, (3) combinaison destation
etday
et ( 4) combinaison detow
etday
, respectivement. C'est bien ce que vous vouliez? Je ne suis pas sûr car, comme indiqué par @BabekP, la façon dont vous avez écrit la formulation de votre modèle n'est pas claire. Vous avez écrit des noms de variables, pas des paramètres. Normalement, dans un modèle comme celui-ci, les combinaisons de variables sont capturées par les indices.Réponses:
Remorquage imbriqué dans la station lorsque le remorquage est aléatoire et que la station est fixe
station+(1|station:tow)
est correct. Comme @John l'a dit dans sa réponse,(1|station/tow)
s'étendrait à(1|station)+(1|station:tow)
(effet principal de la station plus interaction entre le remorquage et la station), ce que vous ne voulez pas car vous avez déjà spécifié la station comme effet fixe.Interaction entre la station et le jour lorsque la station est fixe et le jour est aléatoire.
L'interaction entre un effet fixe et un effet aléatoire est toujours aléatoire. Encore une fois, comme @John l'a dit, se
station*day
développestation+day+station:day
, ce que vous (encore) ne voulez pas car vous l'avez déjà spécifiéday
dans votre modèle. Je ne pense pas qu'il existe un moyen de faire ce que vous voulez et de réduire les effets croisés deday
(aléatoire) etstation
(fixe), mais vous pourriez le faire si vous vouliez écrirestation+(1|day/station)
, ce qui, comme spécifié dans la réponse précédente, se développeraitstation + (1|day) + (1|day:station)
.interaction entre le remorquage et le jour où le remorquage est imbriqué dans la station
Parce que vous n'avez pas des valeurs uniques de la
tow
variable (c. -à- parce que vous dites ci - dessous remorqués sont spécifiées comme1
,2
,3
à chaque station, vous avez besoin de spécifier l'imbrication, comme(1|station:tow:day)
. Si vous n'avez les remorquages spécifiés de manière unique, vous pouvez utiliser soit(1|tow:day)
ou(1|station:tow:day)
(ils doivent donner des réponses équivalentes.) Si vous ne spécifiez pas l'imbrication dans ce cas,lme4
essaiera d'estimer un effet aléatoire qui est partagé par le remorquage # 1 à toutes les stations ...Une façon de diagnostiquer si vous avez correctement spécifié les effets aléatoires est de regarder le nombre d'observations rapportées pour chaque variable de regroupement et de voir si cela correspond à ce que vous attendez (par exemple, le× ×
station:tow:day
groupe doit avoir un nombre d'observations correspondant à la nombre total de combinaisons station remorquage jour: si vous avez oublié l'imbrication avec la station, vous devriez voir que vous obtenez moins d'observations que vous ne le devriez.×Est-ce que http://bbolker.github.io/mixedmodels-misc/glmmFAQ.html#model-specification et http://bbolker.github.io/mixedmodels-misc/glmmFAQ.html#nested-or-crossed vous sont utiles?
la source
B
fait qu'il soit imbriquéA
ou simplement interagit avec lui dépend de si l'effet principal deA
est inclus ou non dans le modèle. Si l'effet principalB
est également dans le modèle, alors il est croisé ...Certaines choses dans la formule sont un peu déroutantes. Le
:
est pour les interactions entre deux termes tandis que le*
est pour les principaux effets et interactions. Il en/
est un autre pour les interactions, mais il génère une interaction entre le numérateur et tous les termes du dénominateur (par exempleA/(B+C) = A:B + A:C
). C'est|
pour quelque chose comme "groupé par". Donc,1|station
serait intercepté groupé par station et entre parenthèses, c'est aléatoire(1|station)
. C'est comme ça que vous feriez la nidification.J'espère que c'est de l'aide. C'est un peu étrange d'avoir un effet aléatoire imbriqué dans un effet fixe et je ne sais pas comment vous représenteriez cela. Je ne peux même pas imaginer la situation. Vous pourriez obtenir une meilleure réponse si vous expliquez exactement quelles sont vos variables et ce que vous voulez accomplir. Souvent, les gens posent des questions et utilisent mal la terminologie et il est difficile de communiquer. Expliquez ce que les variables représentent et ce que vous voulez savoir à leur sujet.
En se concentrant sur votre description dans votre dernier paragraphe, il semble que votre remorquage soit simplement un indicateur des échantillons que vous avez recueillis et non quelque chose dont vous avez besoin d'estimations dans le sens où vous vous attendez à ce que le remorquage 1 soit systématiquement différent du remorquage 2 d'une manière ou d'une autre. Tow indique simplement un échantillon. À moins que vous ne croyiez vraiment que l'ordre des remorques est important, vous ne vous souciez même pas de cette variable. Et s'ils importaient, c'est un effet fixe (et peut-être aléatoire, mais pas uniquement un effet aléatoire). Vous dites que vous voulez savoir si les remorquages changent de variabilité d'un jour à l'autre. Et la réponse est oui? Ce n'est pas dans le domaine de la probabilité réaliste qu'ils ne varient pas d'un jour à l'autre. C'est juste la variance de vos mesures. Toi' il n'est pas permis d'essayer de tenir compte de chaque spécification de variance car vous finissez par ne plus avoir de variance pour l'erreur. Vous auriez un modèle sur-spécifié. Vous seriez sur le point de simplement signaler chaque mesure.
Vous faites une déclaration similaire sur le fait de vous demander si la station varie selon le jour; bien sûr. Mais peut-être voulez-vous dire des jours spécifiques? Les jours étaient-ils regroupés d'une manière ou d'une autre par saison, cycle lunaire, etc.? À moins que vous n'ayez autre chose que le premier jour, le deuxième jour, etc. comment savoir que les stations varient d'un jour à l'autre vous dit autre chose que les stations? La réponse à cette question est donc, bien sûr, les stations varient d'un jour à l'autre. Et bien sûr, les remorques varient d'un jour à l'autre et d'une station à l'autre. Vous vous retrouvez à gauche avec un modèle simple:
Le seul effet fixe que vous avez ici, station, est simplement échantillonné sur plusieurs traits et plusieurs jours. Je ne suis pas sûr que vous ayez vraiment besoin d'une modélisation à plusieurs niveaux ici. Il semble que vous spécifiez trop votre modèle.
Si vous voulez vraiment des effets de jour et de remorquage aléatoires et qu'il y a des informations que vous n'avez pas spécifiées ici, vous pouvez les étendre à un modèle à plusieurs niveaux. Ce serait:
Vous avez cependant besoin de plusieurs remorques à chaque station et jour pour utiliser ce modèle.
la source