跳到内容

jvparidon/lmer多成员

建造 编解码器

lmer多成员

包裹lme4::lmerlme4::glmer添加对多成员随机效果的支持。

安装

该软件包在CRAN上尚不可用,但您可以使用devtools软件包进行安装:

如果(!要求(开发工具)){安装.包("开发工具")图书馆("开发工具")}安装github("jvparidon/lmer多成员")

如何使用lmer多成员

如果你想学习如何使用lmer多成员,读完本自述文件将是一个良好的开端。之后,您可以查看程序包小插曲以了解有关特定主题的更多信息:

  1. 多成员模型概述
  2. Bradley-Terry车型lmer多成员
  3. 最初的多成员小品(Ben Bolker的工作示例激发了这个包)
  4. 常见问题

什么是多成员随机效应?

让我们以作者身份为例:如果我们想对已发表期刊文章的某些方面进行建模,例如。引文~word_count,我们可能想通过使用随机截取来解释论文作者引起的变异性。然而,许多论文并不是只有一个作者。那么我们如何解释作者的可变性呢?

一种方法是将每个独特的作者分组建模为随机效应的一个单独级别(即“约翰a”、“玛丽B”、“约翰a和玛丽B”以及“玛丽B和约翰a”是随机效应的四个不同级别),但这有一个缺点,即不能正确地将方差归因于组中的单个作者。

另一种选择是对作者列表中的每个位置(即。(1|author1)+(1|author2)+(1 | author3)等),但虽然这确实将每个作者视为一个单独的实体,但它将同一作者视为不同的人,这取决于他们在作者列表中的位置,这也有点奇怪。

最自然的选择是将每个观察结果(期刊文章)与单个随机效应的多个层次(作者)联系起来。这是一个多成员随机效应。

如何指定多成员随机效果

在中指定多成员模型lmer多成员就像在中指定任何其他混合效果模型一样lme4公司添加成员矩阵(或权重矩阵)。此稀疏矩阵包含数据集中所有观测值的行,以及每个唯一组成员的列。对于每个观察值,矩阵包含与之关联的所有组成员的1,其他所有组成员均为0。(如果组成员的关联强度不相等,原则上可以用分数替换成员矩阵中的1来表示相对贡献等)然后,模型语法可以是例如。lmerMultiMember::lmer(引用~word_count+(1|author),成员身份=列表(author=membership_matrix)).

创建成员矩阵看起来有点令人畏缩,但我们提供了一个帮助函数lmerMultiMember::weights_from_vector它从以逗号分隔的字符串(例如。c(“A、B”、“A、B、c”、“B”和“c、A”))因此,如果您在数据集中记录了组成员身份,那么为您的模型创建成员身份矩阵应该足够容易。

嵌套随机效果分组的工作方式略有不同

lmer多成员在内部使用伪变量和伪因子来“欺骗”lme4公司接受多重成员随机效果。不幸的是,这种虚拟和伪系统意味着您无法使用常规公式语法指定嵌套的多成员随机效果分组。例如,lmer(引文~word_count+(1|journal/author),成员身份=列表(author=membership_matrix))将引发错误,因为多成员身份作者变量不能嵌套在日志分组内。

此问题的解决方案是使用提供的lmerMultiMember::interaction_weights()功能。例如,给定一个数据帧数据流具有多成员身份作者和单一会员杂志对变量进行分组,为了获得嵌套分组,我们可以执行以下操作:

佤邦 <-权重_来自_向量(数据流$作者)Wj公司 <- 矩阵::fac2解析(数据流$杂志)#使用fac2sparse()将单个成员变量转换为指示符矩阵
瓦杰 <-交互权重(佤邦,Wj公司)lmer公司(引用 ~ 单词_计数 +(1 | 杂志)+(1 | 作者Xjournal),成员资格 = 列表(作者Xjournal = Waj公司))

联系人

如果您对模型的拟合有任何问题lmer多成员,请随时联系JP van Paridonvanparidon@wisc.edu。如果发现错误或bug,请提交问题在Github存储库上。

关于

多重成员随机效果。围绕lme4::lmer和lme4::glmer包装。

资源

许可证

星星

观察者

叉子

包装

未发布包

语言文字