我是否在 lmer 中正确指定了我的模型?

机器算法验证 r 混合模式 lme4-nlme
2022-01-21 07:13:14

我搜索了很多帮助站点,但仍然对如何在混合模型中指定更复杂的嵌套术语感到困惑。我也对使用:指定交互和嵌套在包中使用的随机/因素感到困惑|lmer()lme4R

对于这个问题,假设我已经用这个标准统计模型准确地描述了我的数据: 是固定的,并且是随机的。 是(隐式)嵌套在.

Yijk=u+stationi+towj(i)+dayk+(station×day)ik+(tow×day)j(i)k
stationtowdayTowstation

换句话说,我希望我的模型包括Station(i,fixed)、Tow(j,random,隐式嵌套在Station内)、Day(k,random),以及Tow和Day之间的交互,以及Day之间的交互和车站。我已经咨询了一位统计学家来创建我的模型,此时我相信它可以代表我的数据,但也会在我的帖子底部为感兴趣的人添加我的数据描述,以免造成混乱。

到目前为止,我能够拼凑的内容如下lmer

lmer(y ~ station + (1|station:tow) + (1|Day) + (1|station:day) + (1|tow:day), 
     data=my.data)

这是否准确地描述了我的统计模型?如果我的代码读取不正确,有什么建议可以改进我的代码吗?

我在 lmer 公式中用粗体表示了我难以指定的具体术语

#1。当拖曳是随机的并且站是固定的时,拖曳嵌套在站内我很困惑,但是关于使用和
来区分随机的嵌套和交互术语在我上面的例子中,我希望读取嵌套在车站内的拖车。我已经阅读了各种网站上相互矛盾的评论,无论我是否应该使用在此处. :/(1|station:tow):/(1|...)lmer

#2。当站是固定的并且天是随机的时,站和天之间的交互
然后我有(1|station:day),但是这次我希望它读取站和天之间的交互。似乎我可以使用 station*day 来说明 station 和 day 的个别影响以及它们的相互作用(而不是像上面那样分别包括三个术语中的每一个),但我不知道如何指定这一点当一个是固定的,另一个是随机的。会这样做吗station*(1|day)

#3。当拖车嵌套在车站(固定)时拖车和天(都是随机的)之间的交互 最后,我有(1|tow:day)我希望读取和的交互towday但我想知道是否需要再次指定拖车是嵌套的(含蓄地)在车站?

我对Rlmer统计建模都很陌生,如果可能的话,我非常感谢在对我的问题的任何回答中进行彻底解释所带来的麻烦。

关于我的数据的更多细节:我在问浮游生物的浓度是否在近岸海洋的物理前沿有所不同。我在这条前线的近岸、内部和近海有三个站点。因此站是固定的。在每个站点,我取三个重复的浮游生物丝束(我从中分类、计数并以每米立方水的虫数 # 表示浓度)。拖曳是随机的:我希望在三个拖曳中解释该特定站点浮游生物的一般变异性。拖车本质上嵌套在车站中,因为每个拖车没有唯一的 ID(123,123,123 是每个车站的拖车 ID)。然后我在多个独立的日子里做了这件事,一个新的战线已经形成。我想我可以将 Day 视为一个阻碍因素?日是随机的,因为在多个独立的前沿日重复这一点是试图捕捉每天的变化并代表该前沿存在的所有日子。我想了解交互项,以查看 Tows 的变异性是否每天都在变化,以及站点是否总是产生相似的数据,还是取决于一天?

再次感谢您的时间和帮助,我很感激!

2个回答

当牵引是随机的且站点固定时,牵引嵌套在站点内

station+(1|station:tow)是正确的。正如@John 在他的回答中所说,(1|station/tow)将扩展到(1|station)+(1|station:tow)(站的主要效果加上拖车和站之间的交互),这是您不想要的,因为您已经将站指定为固定效果。

站点固定,日期随机时,站点与日期之间的交互。

固定效应和随机效应之间的相互作用总是随机的。正如@John 所说,station*day扩展为station+day+station:day,您(再次)不想要它,因为您已经 day在模型中指定了。我不认为有一种方法可以做你想做的事情并折叠day(随机)和station(固定)的交叉效果,但如果你想要 write station+(1|day/station),你可以这样做,如上一个答案中指定的那样,它会扩展为station + (1|day) + (1|day:station).

当tow嵌套在​​station中时tow与day之间的交互

因为您没有tow变量的唯一值(即,因为正如您在下面所说的那样在每个站点将拖车指定为1, ,您确实需要将嵌套指定为。如果您确实指定了唯一的拖车,您可以使用(他们应该给出相同的答案)。如果您在这种情况下指定嵌套,将尝试估计在所有站点由 tow #1 共享的随机效应...23(1|station:tow:day)(1|tow:day)(1|station:tow:day)lme4

诊断您是否正确指定了随机效应的一种方法是查看为每个分组变量报告的观察次数,并查看它是否与您的预期一致(例如,该station:tow:day组应该有许多观察值对应于 tow day 组合的总数:如果你忘记了与车站的嵌套,你应该看到你得到的观察比你应该得到的要少。××

http://bbolker.github.io/mixedmodels-misc/glmmFAQ.html#model-specificationhttp://bbolker.github.io/mixedmodels-misc/glmmFAQ.html#nested-or-crossed对你有用吗?

公式中的一些东西有点令人困惑。:用于两个术语之间的交互,而用于*主效应和交互。/是另一个交互作用,但它的作用是在分子和分母中的所有项之间产生交互作用(例如A/(B+C) = A:B + A:C)。|是用于“分组依据”之类的东西。因此,1|station将被拦截按站分组并在括号中是随机的(1|station)这就是你将如何进行嵌套。

希望这会有所帮助。将随机效果嵌套在固定效果中有点奇怪,我不确定您会如何表示。我什至无法想象这种情况。如果你解释你的变量是什么以及你想要完成什么,你可能会得到更好的回应。很多时候人们提出问题并且使用错误的术语并且很难沟通。解释变量代表什么以及你想知道什么。

专注于您在最后一段中的描述,听起来您的拖车只是您收集的样本的一个指标,而不是您需要估计的东西,因为您希望拖车 1 在某种程度上与拖车 2 始终不同。Tow 只是表示一个样本。除非您真的相信拖车的顺序很重要,否则您甚至不必担心该变量。如果它们很重要,那么它就是一个固定的效果(也许是随机的,但不是完全随机的效果)。您说您想知道丝束的可变性是否每天都在变化。答案是肯定的怎么办?它们每天都没有变化,这不在现实概率的范围内。这只是您的措施的差异。你' 不允许尝试考虑每个规格的方差,因为那样你最终没有任何方差留下错误。你会有一个过度指定的模型。您将只需报告每项措施。

你做了一个类似的声明,想知道车站是否每天都在变化;当然可以。但也许你的意思是特定的日子?这些日子是否按季节、月球周期等以某种方式分组?除非你有其他的东西,除了这是第 1 天,这是第 2 天,等等,知道车站每天都在变化,如何告诉你除了车站变化之外的任何东西?所以这个问题的答案是,当然车站每天都在变化。当然,拖车每天和车站都不同。你最终得到了一个简单的模型:

aov(y ~ station, data = dat)

您在这里拥有的一个固定效果,车站,只是在多条拖车和多天的时间里进行采样。我不确定您是否真的需要在这里进行多层次建模。听起来您过度指定了模型。

如果您确实想要随机的日和拖曳效果,并且您没有在此处指定信息,那么您可以将其扩展为多级模型。那将是:

lmer(y ~ station + (two*day|station), data = dat)

但是,您需要在每个站点和每天进行多条牵引才能使用该模型。