问题标签 [lmer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2955 浏览

r - 使用先前估计的值重新启动混合效应模型估计

我正在使用lmer()in packagelme4来估计混合效应模型。这很好用,但现在我想对固定次数的迭代运行估计过程,然后通过指定起始值来恢复该过程,如上一个估计过程计算的那样。

根据帮助,?lmer这是可能的,通过设置参数:

  • start- 这些是新的起始值,根据帮助可以ST从拟合模型中提取槽中的值并使用这些值,即使用x@ST
  • maxiter- 作为命名参数提供给control

因此,例如,假设我想lme使用iris数据拟合一个,可以试试这个:

这行得通。看看输出,其中第一列是 REML,即随机效应最大似然。请特别注意模型 2 中的 REML 从模型 1 终止的地方开始:

但是,当我对此有不同的价值时,maxIters它不再起作用:

请注意,REML 值在 264 处重新开始,即开始:


问题:如何lmer()使用从先前拟合的模型获得的起始值可靠地重新启动?


会话信息:

0 投票
1 回答
8134 浏览

r - 如何在具有多个预测变量的混合模型中绘制随机截距和斜率?

当具有多个预测变量时,是否可以绘制混合模型的随机截距或斜率?

使用一个预测器,我会这样做:

但是如果我有这样的模型呢?

或与 lmer

我应该考虑所有系数还是只考虑我正在绘制的变量?

谢谢

0 投票
3 回答
4656 浏览

r - 从 lmer 对象中提取处理均值并计算误差线

[我正在详细说明我的背景实验——我很清楚lmers 的方法,只是不清楚如何提取我需要的一些值/手动计算它们,因此我将其发布在 SO 而不是 CV 上。我希望这是发布的正确位置!]

数据在这里。

我的实验采用裂区设计,级别为:块/图/子图。

有6个街区。每个区块有 2 个地块,每个地块有两个子地块。处理 1 有两个级别(A 和 B)并应用于地块级别:在每个区块中,有一个地块接受处理 1 级别 A,一个地块接受处理 1 级别 B。

处理 2 应用于子小区级别,也有两个级别(C 和 D):每个小区有一个子小区接受处理 2 级别 A,一个子小区接受处理 2 级别 B。

实验进行了 3 年。我很感兴趣这两种治疗方法的每种组合如何影响我的因变量 (DV)。

因此,我有 4 种治疗组合:

我在我的模型中使用 lmer 来解释裂区设计。我正在运行一个跨年模型,但也依次为每一年运行一个模型(因为实验中的复制不允许在跨年模型中测试年份效应 - 模型最终被过度参数化)。

lmer每年的s 如下所示:

对于这些处理均值随时间变化的图形表示,我想为每个处理的每个级别(请参阅上面的四个级别)提取每年的处理均值,并为实验的每一年绘制这些图,类似于这篇文章中的例子

我想知道,是否可以从一个对象中提取四种不同治疗组合(例如上面列出的那些)的治疗手段lmer?还是必须手工计算?

我认为这样做的一种方法是实际创建另一个代表 4 种治疗组合的因子(参见粘贴数据中的“TMT1x2”列)。然后我可以每年运行以下模型:

并以这种方式为 4 个级别中的每一个提取处理手段。但是我不确定这种方法是否适合控制裂区设计,因为这个新的 4 水平因子忽略了构成它的水平的嵌套性质(尽管随机效应不会忽略它)......

此外,如果我确实需要手动计算处理方法,有没有人知道如何计算我的实验中的嵌套水平?

我还想计算这些治疗手段中的每一个周围的误差线......

如果有人对此有任何见解,将不胜感激!

0 投票
3 回答
21128 浏览

r - lmer模型中的无效分组因子规范

我正在尝试使用 lmer 函数运行混合效果模型。我的实验包括使用一些相同个体在不同温度下的代谢率(一些缺失数据)。文本文件的结构如下所示:

当我运行脚本时,[model_1 <- lmer(X2 + X0 + X.2 + X.4 + X.6 + X.8 + X.10 + X.12 + X.14 + X.16 + X.18 + X.20 + X.22 + X.24 + X.26 ~ temp + (1 | animal), data.by.animal)]我得到以下信息:[Error in FUN(X[[1L]], ...) : Invalid grouping factor specification, animal]尽管在这里咨询了“The R Book”和其他答案,但我仍然不知道哪里出错了。

0 投票
1 回答
989 浏览

r - 如何修改插槽 lme4 >1.0

我一直在使用下面的代码成功地修改了模型的“Zt”、“L”和“A”插槽,使用 lme4 版本 <1.0。今天刚更新到lme4 1.0-4,发现model对象不一样。任何人都可以提供有关如何修改新 lmer 模型对象中的这些插槽的见解/指导吗?

任何有关如何修改这些插槽的帮助或见解将不胜感激。与此同时,我想我会坚持为这些模型使用旧版本的 lme4。

0 投票
1 回答
14159 浏览

r - 如何在 R 中为 lmer 运行诊断图?

我正在尝试在lmer模型上运行诊断图,但一直碰壁。我不确定我需要在这里提供多少信息,但这里有:

模型很简单:

MSV_mm是数字(鼻孔长度),Size_treat是一个具有 4 个级别的因子:连续、大、中和小。RepPatch并且Trap是随机效应。

当我运行时plot(best),我收到以下错误消息:

我认为这与lmer功能有关。我已经在网络上进行了巨魔,但尚未找到此问题的答案。这是一lmer件事吗?

0 投票
1 回答
21035 浏览

r - 增加新版本 lmer 的迭代次数?

我刚刚将 lme4 更新到 1.0-4 版本,当我运行 lmer() 之前正在收敛的混合效果模型时,现在会打印以下警告:

所以,我想尝试增加迭代次数,看看我是否可以解决这个问题。(我必须说我不知道​​是什么导致了警告,因为消息的第一部分听起来有点不透明)。无论如何,我在文档中读到现在我应该使用lmerControl(),但我无法实现它。有人可以给我一个具体的例子来说明你如何做到具体吗?(帮助文件没有帮助)。这是我的模型:

非常感谢!

0 投票
1 回答
11562 浏览

r - na.action = na.exclude 在 lme4 1.0-5 中使用 lmer 的行为与 lm 和旧版本的 lme4 不一致

考虑一个简单的例子:

这表现得如我所料。虽然第 8 次观察没有拟合值,因为 x 是该行的 NA,所以拟合值用 NA“填充”,使它们的长度与输入数据帧 df 中的行数相同,这非常便利。但是调用 na.action = na.exclude 在 lme4 中不再具有相同的效果。

我相当肯定,在旧版本的 lme4 中,长度为 8,最后一个值为 NA,就像 lm() 一样。

如何让 lmer 以与 lm 相同的方式运行 --- 用 NA(在适当的位置)填充拟合向量,使其长度与输入数据帧中的行数相同?

更一般地说,关于 na.action 和 na.exclude 正在做什么和/或打算在这里做什么,我是否遗漏了什么?

我的目标是在应用于 lmer 模型对象时获得 fit() 以返回一个向量,该向量的长度与输入数据帧的行数相同(并且顺序相同!),并且 NA 在“适当的“地点。有没有一种简单的方法可以做到这一点?

谢谢,

戴夫凯恩

更新:感谢 Ben Bolker 的工作!虽然 predict() 与fitted() 不同,但使用它确实解决了我的主要问题。

0 投票
2 回答
1376 浏览

r - 从混合模型中移除所有固定效应

我正在尝试自动化一种方法来识别和删除混合模型语句中的固定效果,使用lmer. 简而言之,我的方法是使用fixef获取固定效果名称,然后使用update从模型语句中删除这些名称。我遇到了一些障碍...

首先,如果固定因子不连续,则fixef返回附加处理水平的变量名称(例如,levels(variable1)=c("A","B","C")将返回variable1Band variable1C)。我试图通过部分匹配来解决这个问题,但我相信它不会在所有情况下都成功(见下文)。

其次,如果存在交互,则部分匹配会分崩离析并仅识别第一个术语(例如,variable1仅从variable1:variable)。我不知道如何解决这个问题。

这是一些示例代码:

任何帮助表示赞赏!

0 投票
1 回答
4814 浏览

r - 与 lmerTest 一起使用时,anova() 不显示 p 值

我正在尝试使用 lmerTest 为我的固定效果设置 p 值。我有 4 个不同的随机截距,3 个交叉,一个嵌套:

对象被观察两次,两个度量之间的相关性通过对 Unique_key 的随机效应引入,Unique_key 是区域 j 中对象 i 的唯一标识符。每个物体都可以在任何区域被观察到。S1 是一个二元变量,如果在第一个时间段观察到,则取值 1 和 0。对于每个对象,第一个周期有一个随机截距,第二个周期有一个随机截距。ns1 实际上是一个二进制变量,它是 s1 和 s1 + ns1 = 1 对于每个观察值的补码。

我可以拟合模型并使用 summary() 获得估计值和 p 值:

但是使用 anova() 我得到:

当我尝试删除三重交互时,anova() 函数返回 p 值...我还尝试拆分我的数据框并将模型拟合到一半的数据上,并且 anova() 可以很好地工作。

使用这些功能时没有警告,我也尝试更改 ddf 选项和方法,但似乎没有任何效果。

这是我的会话信息:

我无法共享数据,但如果需要,我可以添加更多信息!我想对自由度使用 Satterthwaite 近似值,但如果您有任何其他获得 p 值的建议,请分享!非常感谢你!