使用 R 包 multilevelcoda 进行贝叶斯多层组合数据分析

《Multivariate Behavioral Research》:Bayesian Multilevel Compositional Data Analysis with the R Package multilevelcoda

【字体: 时间:2025年11月19日 来源:Multivariate Behavioral Research 3.5

编辑推荐:

  提出并实现了一个名为multilevelcoda的R包,用于分析多水平compositional数据,结合贝叶斯方法和log-ratio变换,支持纵向数据中的between-person和within-person成分分解,以及多水平模型的拟合和替换分析,显著提升了复杂compositional数据的处理效率。

  多层级的组合数据,例如在时间上采样的、非负且总和为常数的数据,在许多领域中都非常常见。然而,目前还没有专门用于在多层级框架中建模组合数据的软件。本文介绍的R包multilevelcoda实现了用于在贝叶斯多变量、多层级流程中建模组合数据的一系列工具。用户友好的设置仅需要数据、模型公式和对分析的最小规格说明。本文概述了贝叶斯组合多层级建模方法的统计理论,并详细介绍了multilevelcoda包中可用函数的实现,使用了一个关于每日24小时睡眠-觉醒行为的示例数据集。这种方法可以用于从密集的纵向研究中日益增多的多层级组合数据中稳健地回答科学问题。

关键词:组合数据分析;多层级模型;贝叶斯推断;R

引言
贝叶斯方法在多层级模型中被越来越多地应用。使用贝叶斯方法的动机已在其他工作中被广泛讨论,包括能够指定复杂模型的灵活性(如非正态随机效应模型)、对小样本量的鲁棒性(如Le等,2025;Stegmueller,2013)、通过结合现有实证信息(即先验;van de Schoot等,2018)带来的好处,以及使用后验样本量化任意计算量的不确定性(如Gelman等,2013;Wagenmakers等,2016;Wickham,2016)。常见的贝叶斯抽样算法包括马尔可夫链蒙特卡洛(MCMC)抽样,或者哈密尔顿蒙特卡洛(HMC)(Betancourt,2017;Betancourt等,2014)及其扩展,无转向抽样器(NUTS)(Hoffman & Gelman,2014)。MCMC允许对模型参数进行估计,并从后验预测分布中抽样,这可以用于评估模型拟合。重要的是,个体后验分布样本可用于对参数进行推断,例如计算均值、标准误差和可信区间,使贝叶斯多层级模型后的任何计算量的分析能够直接且直观地进行。这些功能可以极大地促进对具有复杂结构的数据,如多层级组合数据的分析。

多层级组合数据存在于各个领域,例如时间使用流行病学(例如,在24小时中花费在不同睡眠-觉醒行为的时间)、睡眠(例如,在夜间花费在不同睡眠阶段的时间比例)和营养流行病学(例如,蛋白质、脂肪和碳水化合物作为总热量摄入的比例)。这些数据可以归类为组合数据,由包含相对信息的组合部分组成;以非负值表示,总和为一个常数值。组合部分可以用百分比(或比例)表示组合的整体,但也可能以其他单位表示,这些单位被限制为总和为一个固定值(例如,24小时中的1440分钟)。它们通常是在多个时间点(例如,连续的几天)或嵌套在集群(例如,学校)中测量的。这意味着数据是多层级的,最常见的多层级数据结构有两个层级(例如,连续的天数嵌套在人中)。因此,这些数据通常由两个来源的变异组成:层级之间的(集群之间,如人)和层级内的(集群内,通常是该集群平均值的特定值的偏差)。

尽管多层级组合数据非常丰富,但标准的统计方法,包括多层级模型,不能对原始组合数据产生有效的结果。这是由于其常数总和的性质(即组合部分是线性相关的)导致的。相反,组合数据分析(CoDA;Aitchison,1986;Pawlowsky-Glahn & Buccianti,2011)使用对数比来利用组合数据中的相对信息。某些对数比变换可以消除组合部分的线性依赖性,同时保留组合成分的相对性质(即组合成分的变化但不改变其总和)。其中一种变换是等距对数比变换(ilr),它是最常用的物理活动和久坐行为研究中的对数比变换。ilr变换通过产生比组合部分数量少一个的ilr坐标(例如,从3部分组合中计算出两个ilr坐标),消除了多重共线性,从而允许在变换后的数据上应用标准统计方法。一些组合数据分析软件存在,主要在R中,包括compositions(Van den Boogaart & Tolosana-Delgado,2008,2013)、zCompositions(Palarea-Albaladejo & Martín-Fernández,2015)、robCompositions(Templ等,2011)、Compositional(Tsagris等,2023)、codaredistlm(Dumuid等,2018;Stanford等,2022)。这些包提供了用于操纵或建模组合数据的一般工具,以便在标准统计模型中使用。然而,它们并不容易处理具有多层级结构的组合数据,也不提供用于拟合具有组合数据(或其对应的对数比)作为响应或预测变量的多层级模型的函数。

进一步地,为了促进CoDA的可解释性,等时对数比替代分析(Dumuid等,2019)是一种后处理方法,用于检查模型预测的因变量变化与组合部分变化之间的关系。替代分析提供了一个机会,通过模型来探究预测因变量变化的问题,当组合部分被重新分配时,保持总和不变。这种分析可以回答诸如人们在增加体力活动时间而减少久坐时间时是否健康变化的问题。越来越多的等时对数比替代分析证据表明,行为之间的时间重新分配与身体和心理健康结果相关(Grgic等,2018;Janssen等,2020;Miatke等,2023)。然而,大多数现有研究是横断面的,纵向数据的证据较少。这可能是因为缺乏在替代分析中高效处理纵向组合数据的工具。据我们所知,目前没有软件可以自动化等时对数比替代分析,特别是在多层级框架中。

multilevelcoda包(Le & Wiley,2025)在本文中被介绍,旨在通过自动化估计组合数据(及其相关对数比)和等时对数比替代分析的多层级模型,解决这些差距。multilevelcoda包通过提供三个重要的贡献,推动了多层级组合数据的分析:计算多层级组合和执行对数比变换;将数据分解为层级之间和层级内的部分,如果需要的话。自动拟合贝叶斯多层级模型,其中组合预测变量和/或结果变量。贝叶斯模型使用brms包实现,该包支持各种广义(非)线性多变量多层级模型。估计贝叶斯多层级模型在层级之间和层级内的等时对数比替代分析,利用贝叶斯模型的后验抽样来推导预测结果差异的可信区间。我们从多层级组合数据的分析开始,介绍multilevelcoda包。我们描述了多层级组合数据的理论建模框架,以及相应的软件实现。本文包括一个教程,使用multilevelcoda包的用户友好语法对数据进行分析,使用一个每日24小时睡眠-觉醒行为的示例。最后,我们提供了一个跨包的比较,讨论multilevelcoda的扩展计划。

包概述
multilevelcoda包提供了用于使用完整贝叶斯推断拟合多变量多层级模型的函数。该包是R编程平台的开源软件。从R的综合档案网络(CRAN)安装的最新版本multilevelcoda可以通过install.packages(“multilevelcoda”)安装。或者,可以通过GitHub下载当前的开发版本,使用devtools :: install _ github(“florale/multilevelcoda”)。

multilevelcoda包使用R包brms来构建模型,而brms又使用概率编程语言Stan作为后端,动态生成和编译特定的贝叶斯模型的C++代码。因此,除了安装功能性的R之外,还需要C++编译器。在Windows上,Rtools(R核心团队,2022)包含C++编译器。在Mac上,需要安装Xcode(Apple Inc,2022)才能进行编译。Linux需要g++或Clang。详细的编译器安装和运行说明可以在RStan包的网站上找到的前置条件部分找到。请注意,rstan包(R对Stan的接口;Stan开发团队,2020)也依赖于其他几个R包;如果通过常规机制安装了rstan包,这些依赖项会自动安装。用户可以通过R文档和小册子来获得关于该包功能的进一步帮助,以及其使用的示例。欢迎贡献,包括错误报告和功能增强,通过GitHub的问题和拉取请求的标准机制。

multilevelcoda中的分析遵循图1所示的程序。首先,用户计算组合数据及其相应的对数比变换(例如,ilr坐标),使用complr函数。接下来,利用这些信息拟合贝叶斯(多变量)多层级模型,使用brmcoda函数。brmcoda支持组合作为预测变量、结果变量或两者。在这个步骤中,模型被传递给brm函数以生成Stan模型代码,然后传递给rstan包(Stan开发团队,2020)或cmdstanr包(R对CmdStan的接口;Stan开发团队,2022)。模型被编译为C++,通过Stan拟合,然后在brms中后处理,最后保存在R中的brmcoda函数中。对于具有组合预测变量的模型,brmcoda的结果可以用于估计组合的中心坐标,使用pivot_coord函数,以及进行替代分析,使用substitution函数。最后,所有函数的结果都可以在R中使用各种方法(如summary()、plot()或predict())进行研究,例如,输入brmcoda对象的完整方法列表,可以输入methods(class = “brmcoda”)。

组合数据具有多层级结构
组合数据(如活动、饮食)可能在多个个体上测量,例如在多个时间点(如连续的几天)或嵌套在集群(如学校)中。这意味着数据是多层级的,最常见的多层级数据结构有两个层级(如连续的天数嵌套在个体中)。因此,这些数据通常由每个层级的两个变异来源组成:层级之间(集群之间的差异,如个体)和层级内(集群内的差异,通常是指某个特定值与该集群平均值的偏差)。这些数据的结构允许分析者探讨不同行为之间的时间重新分配对健康结果的影响,而无需改变总和。

尽管多层级组合数据非常丰富,但标准的统计方法,包括多层级模型,不能对原始组合数据产生有效的结果。这是由于其常数总和的性质(即组合部分是线性相关的)导致的。相反,组合数据分析(CoDA;Aitchison,1986;Pawlowsky-Glahn & Buccianti,2011)利用组合数据中的相对信息,使用对数比。某些对数比变换可以消除组合部分的线性依赖性,同时保留组合成分的相对性质(即组合成分的变化但不改变其总和)。其中一种变换是等距对数比变换(ilr),它在物理活动和久坐行为研究中被最广泛使用。ilr变换通过产生比组合部分数量少一个的ilr坐标(例如,从3部分组合中计算出两个ilr坐标),消除了多重共线性,从而允许在变换后的数据上应用标准统计方法。一些组合数据分析软件存在,主要在R中,包括compositions(Van den Boogaart & Tolosana-Delgado,2008,2013)、zCompositions(Palarea-Albaladejo & Martín-Fernández,2015)、robCompositions(Templ等,2011)、Compositional(Tsagris等,2023)、codaredistlm(Dumuid等,2018;Stanford等,2022)。这些包提供了用于操纵或建模组合数据的一般工具,以便在标准统计模型中使用。然而,它们并不容易处理具有多层级结构的组合数据,也不提供用于拟合具有组合变量和进行后处理分析的多层级模型的函数。

此外,为了促进CoDA的可解释性,等时组合替代分析(Dumuid等,2019)是一种后处理方法,用于检查模型预测的因变量变化与组合部分变化之间的关系。替代分析提供了对模型进行探索的机会,以回答当组合部分重新分配时,因变量变化的预测问题。这种分析可以回答诸如人们在增加体力活动时间而减少久坐时间时是否健康变化的问题。越来越多的等时组合替代分析证据表明,行为之间的时间重新分配与身体和心理健康结果相关(Grgic等,2018;Janssen等,2020;Miatke等,2023)。然而,大多数现有研究是横断面的,纵向数据的证据较少。这可能是因为缺乏在替代分析中高效处理纵向组合数据的工具。据我们所知,目前没有软件可以自动化等时组合替代分析,特别是在多层级框架中。

multilevelcoda包(Le & Wiley,2025)在本文中被介绍,旨在通过自动化估计组合数据(及其相关对数比)和等时组合替代分析的多层级模型,解决这些差距。multilevelcoda包通过提供三个重要的贡献,推动了多层级组合数据的分析:计算多层级组合和执行对数比变换;将数据分解为层级之间和层级内的部分,如果需要的话。自动拟合贝叶斯多层级模型,其中组合预测变量和/或结果变量。贝叶斯模型使用brms包实现,该包支持各种广义(非)线性多变量多层级模型。估计贝叶斯多层级模型在层级之间和层级内的等时组合替代分析,利用贝叶斯模型的后验抽样来推导预测结果差异的可信区间。我们从多层级组合数据的分析开始,介绍multilevelcoda包。我们描述了多层级组合数据的理论建模框架,以及相应的软件实现。本文包括一个教程,使用multilevelcoda包的用户友好语法对数据进行分析,使用一个每日24小时睡眠-觉醒行为的示例。最后,我们提供了一个跨包的比较,讨论multilevelcoda的扩展计划。

软件实现
multilevelcoda包提供了处理组合数据并执行对数比变换的函数。首先,为了构建一组ilr坐标,需要一个SBP。multilevelcoda使用中心坐标作为默认的SBP,其中第一个中心坐标表示第一个组合部分相对于其余部分的比值。或者,我们可以根据特定的假设和应用构建自己的SBP(参见前一节的示例)。我们可以使用以下代码来处理和变换组合数据:

R > cilr < - complr (data = mcompd, parts = c ("TST", "WAKE", "MVPA", "LPA", "SB"), idvar = "ID", total = 1440)

我们指定识别单位如何聚类的变量idvar为ID,并指定total的值为1440,这是24小时中必须相加的5个行为的总分钟数。在这个例子中,默认的SBP(表1中的SBP 2)是:

R > get _ sbp (cilr)

表中的列是组合的五个部分,行是变换后的四个ilr坐标。通过运行以下代码可以得到变换数据的摘要:

R > summary (cilr)

输出提供了关于数据和变换的信息。数据的一般信息包括组合部分的名称、对数比变量的ID变量(多层级数据集)、观察数和集群数。类acomp表示与Aitchison简单形哲学框架一致的组合类,而ilr是实数多变量向量。在complr对象中,存储了组合数据和ilr坐标的数据集,以及原始数据集,这些数据集用于后续分析。

R > head (cilr [[ “dataout” ]][, c (“bTST”, “bWAKE”, “bMVPA”, “bLPA”, “bSB”)])

R > head (cilr [[ “dataout” ]][, c (“wTST”, “wWAKE”, “wMVPA”, “wLPA”, “wSB”)])

同样,ilrs也被分解为它们的层级之间和层级内的组件,这些组件可以作为后续分析的变量。

R > head (cilr [[ “dataout” ]][, c (“bz1_1”, “bz2_1”, “bz3_1”, “bz4_1”)])

R > head (cilr [[ “dataout” ]][, c (“wz1_1”, “wz2_1”, “wz3_1”, “wz4_1”)])

我们的模拟研究(Le等,2025)验证了该包在不同模拟条件下的稳健性能,包括参与者数量、观察数、组合部分数量和样本变异量(组间截距和残差方差)。使用multilevelcoda包估计的大多数模型成功收敛(收敛率> 99%),并展示了稳健的参数恢复,平均偏差为0.00(范围?0.09,0.05),覆盖率为0.95(范围0.93,0.97)。模型可以在30个集群,每个集群有3个观察值(N=90)的小样本量下表现良好。模拟研究的程序和结果在其他地方报告得更为详细(Le等,2025),完整的模拟摘要统计数据也包含在一个专用的shiny应用中,可以通过multilevelcoda_sim()访问。

动机示例
在本文中,我们演示了该包在建模组合预测变量中的应用,使用图1中概述的工作流程。分析的目标是(1)检查每日的24小时行为与压力之间的关联,以及(2)估计在个体之间和个体内部行为重新分配与压力变化之间的差异。可重复的代码可以在https://github.com/florale/multilevelcoda-overview找到。

我们用于本教程的数据集是一个模拟的、内置的长格式数据集,包含压力和24小时时间使用(分成五个行为:总睡眠时间(TST)、总卧床清醒时间(WAKE)、中等至剧烈体力活动(MVPA)、轻度体力活动(LPA)和久坐行为(SB))的重复测量。这五个行为构成一个5部分的组合。每日压力是在0-10的量表上测量的。

R > library (multilevelcoda)

R > data (mcompd)

示例数据集mcompd是长格式,包含3540个条目,10个变量。

R > head (mcompd)

变量ID是参与者ID。Stress是自述压力,0-10量表测量。总睡眠时间(TST)、总卧床清醒时间(WAKE)、中等至剧烈体力活动(MVPA)、轻度体力活动(LPA)和久坐行为(SB)构成了一个5部分的组合。Time是时间点ID,用于重复测量压力和5部分组合。最后,变量Age和Female是个人的基线因素。

本质的组合数据属性
组合数据的理论框架
一个组合被定义为D个正部分的向量,称为组合部分,它们的总和是一个闭合常数C,其中每个部分都可以通过其他部分的知识推断出来。组合部分可以表示为百分比(或比例)的组合,但也可以用其他单位表示,这些单位被限制为总和为一个固定值(例如,24小时中的1440分钟)。它们通常在多个时间点(例如,连续的几天)或嵌套在集群(例如,学校)中测量。这表示数据是多层级的,最常见的多层级数据结构有两个层级(例如,连续的天数嵌套在人中)。因此,这些数据通常由两个变异来源组成:层级之间(集群之间,如人)和层级内(集群内,通常是特定值与该集群平均值的偏差)。

尽管多层级组合数据非常丰富,但标准的统计方法,包括多层级模型,不能对原始组合数据产生有效的结果。这是由于其常数总和的性质(即组合部分是线性相关的)导致的。相反,组合数据分析(CoDA;Aitchison,1986;Pawlowsky-Glahn & Buccianti,2011)利用组合数据中的相对信息,使用对数比。某些对数比变换可以消除组合部分的线性依赖性,同时保留组合成分的相对性质(即组合成分的变化但不改变其总和)。其中一种变换是等距对数比变换(ilr),它是最常用的物理活动和久坐行为研究中的对数比变换。ilr变换通过产生比组合部分数量少一个的ilr坐标(例如,从3部分组合中计算出两个ilr坐标),消除了多重共线性,从而允许在变换后的数据上应用标准统计方法。一些组合数据分析软件存在,主要在R中,包括compositions(Van den Boogaart & Tolosana-Delgado,2008,2013)、zCompositions(Palarea-Albaladejo & Martín-Fernández,2015)、robCompositions(Templ等,2011)、Compositional(Tsagris等,2023)、codaredistlm(Dumuid等,2018;Stanford等,2022)。这些包提供了用于操纵或建模组合数据的一般工具,以便在标准统计模型中使用。然而,它们并不容易处理具有多层级结构的组合数据,也不提供用于拟合具有组合变量和进行后处理分析的多层级模型的函数。

此外,为了促进CoDA的可解释性,等时组合替代分析(Dumuid等,2019)是一种后处理方法,用于检查模型预测的因变量变化与组合部分变化之间的关系。替代分析提供了一个机会,通过模型来探究预测因变量变化的问题,当组合部分被重新分配时,保持总和不变。这种分析可以回答诸如人们在增加体力活动时间而减少久坐时间时是否健康变化的问题。越来越多的等时组合替代分析证据表明,行为之间的时间重新分配与身体和心理健康结果相关(Grgic等,2018;Janssen等,2020;Miatke等,2023)。然而,大多数现有研究是横断面的,纵向数据的证据较少。这可能是因为缺乏在替代分析中高效处理纵向组合数据的工具。据我们所知,目前没有软件可以自动化等时组合替代分析,特别是在多层级框架中。

multilevelcoda包(Le & Wiley,2025)在本文中被介绍,旨在通过自动化估计组合数据(及其相关对数比)和等时组合替代分析的多层级模型,解决这些差距。multilevelcoda包通过提供三个重要的贡献,推动了多层级组合数据的分析:计算多层级组合和执行对数比变换;将数据分解为层级之间和层级内的部分,如果需要的话。自动拟合贝叶斯多层级模型,其中组合预测变量和/或结果变量。贝叶斯模型使用brms包实现,该包支持各种广义(非)线性多变量多层级模型。估计贝叶斯多层级模型在层级之间和层级内的等时组合替代分析,利用贝叶斯模型的后验抽样来推导预测结果差异的可信区间。我们从多层级组合数据的分析开始,介绍multilevelcoda包。我们描述了多层级组合数据的理论建模框架,以及相应的软件实现。本文包括一个教程,使用multilevelcoda包的用户友好语法对数据进行分析,使用一个每日24小时睡眠-觉醒行为的示例。最后,我们提供了一个跨包的比较,讨论multilevelcoda的扩展计划。

软件实现
multilevelcoda包提供了用于使用完整贝叶斯推断拟合多变量多层级模型的函数。该包是R编程平台的开源软件。从R的综合档案网络(CRAN)安装的最新版本multilevelcoda可以通过install.packages(“multilevelcoda”)安装。或者,可以通过GitHub下载当前的开发版本,使用devtools :: install _ github(“florale/multilevelcoda”)。

multilevelcoda包使用R包brms来构建模型,而brms又使用概率编程语言Stan作为后端,动态生成和编译特定的贝叶斯模型的C++代码。因此,除了安装功能性的R之外,还需要C++编译器。在Windows上,Rtools(R核心团队,2022)包含C++编译器。在Mac上,需要安装Xcode(Apple Inc,2022)才能进行编译。Linux需要g++或Clang。详细的编译器安装和运行说明可以在RStan包的网站上找到的前置条件部分找到。请注意,rstan包(R对Stan的接口;Stan开发团队,2020)也依赖于其他几个R包;如果通过常规机制安装了rstan包,这些依赖项会自动安装。用户可以通过R文档和小册子来获得关于该包功能的进一步帮助,以及其使用的示例。欢迎贡献,包括错误报告和功能增强,通过GitHub的问题和拉取请求的标准机制。

multilevelcoda中的分析遵循图1所示的程序。首先,用户计算组合和相应的对数比变换(例如,ilr坐标),使用complr函数。然后,利用这些信息拟合贝叶斯(多变量)多层级模型,使用brmcoda函数。brmcoda支持组合作为预测变量、结果变量或两者。在这个步骤中,模型被传递给brm函数以生成Stan模型代码,然后传递给rstan包(Stan开发团队,2020)或cmdstanr包(R对CmdStan的接口;Stan开发团队,2022)。模型被编译为C++,通过Stan拟合,然后在brms中后处理,最后保存在R中的brmcoda函数中。对于具有组合预测变量的模型,brmcoda的结果可以用于估计组合的中心坐标,使用pivot_coord函数,以及进行替代分析,使用substitution函数。最后,所有函数的结果都可以在R中使用各种方法(如summary()、plot()或predict())进行研究,例如,输入brmcoda对象的完整方法列表,可以输入methods(class = “brmcoda”)。

多层级组合数据的贝叶斯多层级模型
我们采用贝叶斯分析的动机主要是出于实用性的考虑,如前所述(Le等,2025)。对贝叶斯方法方法学指导感兴趣的读者可参考Kruschke(2014);McElreath(2018)的介绍,以及Gelman等(2013);Bürkner(2018)的更高级用法。在接下来的章节中,我们将描述多层级模型的组合预测变量。

理论框架
为了表达时间变化的D部分多层级组合预测变量的线性模型,我们首先将个体j在时间点i观察到的因变量表示为x_ij,其中x_ij是D个正组件的向量,称为组合部分,它们的总和为一个闭合常数C。x_ij的总和为C,且每个组件x_d(d=1,2,…,D)都大于0。因此,组合是D维简单形的元素,记作S^D ? R^D,其中每个部分都可以通过其他部分的知识推断出来。一个重要的操作是扰动(Aitchison,1986),即在简单形上应用元素乘积的闭合操作。扰动是欧几里得空间中加法的类比操作(Aitchison,1986;Van den Boogaart & Tolosana-Delgado,2013),定义为x⊕x* = C(x1·x1*, x2·x2*, …, xD·xD*),其中C(x)是闭合操作,它将向量x的组合部分归一化到一个常数κ。x和x*是简单形中的元素,x和x*的总和为κ,x和x*的每个部分都大于0。因此,组合数据的分析需要考虑其在不同层级的变异,包括层级之间和层级内的变异。

尽管多层级组合数据非常丰富,但标准的统计方法,包括多层级模型,不能对原始组合数据产生有效的结果。这是由于其常数总和的性质(即组合部分是线性相关的)导致的。相反,组合数据分析(CoDA;Aitchison,1986;Pawlowsky-Glahn & Buccianti,2011)利用组合数据中的相对信息,使用对数比。某些对数比变换可以消除组合部分的线性依赖性,同时保留组合成分的相对性质(即组合成分的变化但不改变其总和)。其中一种变换是等距对数比变换(ilr),它在物理活动和久坐行为研究中被最广泛使用。ilr变换通过产生比组合部分数量少一个的ilr坐标(例如,从3部分组合中计算出两个ilr坐标),消除了多重共线性,从而允许在变换后的数据上应用标准统计方法。一些组合数据分析软件存在,主要在R中,包括compositions(Van den Boogaart & Tolosana-Delgado,2008,2013)、zCompositions(Palarea-Albaladejo & Martín-Fernández,2015)、robCompositions(Templ等,2011)、Compositional(Tsagris等,2023)、codaredistlm(Dumuid等,2018;Stanford等,2022)。这些包提供了用于操纵或建模组合数据的一般工具,以便在标准统计模型中使用。然而,它们并不容易处理具有多层级结构的组合数据,也不提供用于拟合具有组合变量和进行后处理分析的多层级模型的函数。

此外,为了促进CoDA的可解释性,等时组合替代分析(Dumuid等,2019)是一种后处理方法,用于检查模型预测的因变量变化与组合部分变化之间的关系。替代分析提供了一个机会,通过模型来探究预测因变量变化的问题,当组合部分被重新分配时,保持总和不变。这种分析可以回答诸如人们在增加体力活动时间而减少久坐时间时是否健康变化的问题。越来越多的等时组合替代分析证据表明,行为之间的时间重新分配与身体和心理健康结果相关(Grgic等,2018;Janssen等,2020;Miatke等,2023)。然而,大多数现有研究是横断面的,纵向数据的证据较少。这可能是因为缺乏在替代分析中高效处理纵向组合数据的工具。据我们所知,目前没有软件可以自动化等时组合替代分析,特别是在多层级框架中。

multilevelcoda包(Le & Wiley,2025)在本文中被介绍,旨在通过自动化估计组合数据(及其相关对数比)和等时组合替代分析的多层级模型,解决这些差距。multilevelcoda包通过提供三个重要的贡献,推动了多层级组合数据的分析:计算多层级组合和执行对数比变换;将数据分解为层级之间和层级内的部分,如果需要的话。自动拟合贝叶斯多层级模型,其中组合预测变量和/或结果变量。贝叶斯模型使用brms包实现,该包支持各种广义(非)线性多变量多层级模型。估计贝叶斯多层级模型在层级之间和层级内的等时组合替代分析,利用贝叶斯模型的后验抽样来推导预测结果差异的可信区间。我们从多层级组合数据的分析开始,介绍multilevelcoda包。我们描述了多层级组合数据的理论建模框架,以及相应的软件实现。本文包括一个教程,使用multilevelcoda包的用户友好语法对数据进行分析,使用一个每日24小时睡眠-觉醒行为的示例。最后,我们提供了一个跨包的比较,讨论multilevelcoda的扩展计划。

组合数据的多层级结构
组合数据(如活动、饮食)可能在多个个体上测量,例如在多个时间点(如连续的几天)或嵌套在集群(如学校)中。这意味着数据是多层级的,最常见的多层级数据结构有两个层级(如连续的天数嵌套在人中)。因此,这些数据通常由每个层级的两个变异来源组成:层级之间(集群之间,如个体)和层级内(集群内,通常是特定值与该集群平均值的偏差)。这些数据的结构允许分析者探讨不同行为之间的时间重新分配对健康结果的影响,而无需改变总和。

尽管多层级组合数据非常丰富,但标准的统计方法,包括多层级模型,不能对原始组合数据产生有效的结果。这是由于其常数总和的性质(即组合部分是线性相关的)导致的。相反,组合数据分析(CoDA;Aitchison,1986;Pawlowsky-Glahn & Buccianti,2011)利用组合数据中的相对信息,使用对数比。某些对数比变换可以消除组合部分的线性依赖性,同时保留组合成分的相对性质(即组合成分的变化但不改变其总和)。其中一种变换是等距对数比变换(ilr),它在物理活动和久坐行为研究中被最广泛使用。ilr变换通过产生比组合部分数量少一个的ilr坐标(例如,从3部分组合中计算出两个ilr坐标),消除了多重共线性,从而允许在变换后的数据上应用标准统计方法。一些组合数据分析软件存在,主要在R中,包括compositions(Van den Boogaart & Tolosana-Delgado,2008,2013)、zCompositions(Palarea-Albaladejo & Martín-Fernández,2015)、robCompositions(Templ等,2011)、Compositional(Tsagris等,2023)、codaredistlm(Dumuid等,2018;Stanford等,2022)。这些包提供了用于操纵或建模组合数据的一般工具,以便在标准统计模型中使用。然而,它们并不容易处理具有多层级结构的组合数据,也不提供用于拟合具有组合变量和进行后处理分析的多层级模型的函数。

此外,为了促进CoDA的可解释性,等时组合替代分析(Dumuid等,2019)是一种后处理方法,用于检查模型预测的因变量变化与组合部分变化之间的关系。替代分析提供了一个机会,通过模型来探究预测因变量变化的问题,当组合部分被重新分配时,保持总和不变。这种分析可以回答诸如人们在增加体力活动时间而减少久坐时间时是否健康变化的问题。越来越多的等时组合替代分析证据表明,行为之间的时间重新分配与身体和心理健康结果相关(Grgic等,2018;Janssen等,2020;Miatke等,2023)。然而,大多数现有研究是横断面的,纵向数据的证据较少。这可能是因为缺乏在替代分析中高效处理纵向组合数据的工具。据我们所知,目前没有软件可以自动化等时组合替代分析,特别是在多层级框架中。

multilevelcoda包(Le & Wiley,2025)在本文中被介绍,旨在通过自动化估计组合数据(及其相关对数比)和等时组合替代分析的多层级模型,解决这些差距。multilevelcoda包通过提供三个重要的贡献,推动了多层级组合数据的分析:计算多层级组合和执行对数比变换;将数据分解为层级之间和层级内的部分,如果需要的话。自动拟合贝叶斯多层级模型,其中组合预测变量和/或结果变量。贝叶斯模型使用brms包实现,该包支持各种广义(非)线性多变量多层级模型。估计贝叶斯多层级模型在层级之间和层级内的等时组合替代分析,利用贝叶斯模型的后验抽样来推导预测结果差异的可信区间。我们从多层级组合数据的分析开始,介绍multilevelcoda包。我们描述了多层级组合数据的理论建模框架,以及相应的软件实现。本文包括一个教程,使用multilevelcoda包的用户友好语法对数据进行分析,使用一个每日24小时睡眠-觉醒行为的示例。最后,我们提供了一个跨包的比较,讨论multilevelcoda的扩展计划。

贝叶斯多层级组合替代分析
当研究组合预测变量和结果变量之间的关系时,我们通常对结果变量的变化感兴趣,当组合部分被重新分配时,而其他部分保持不变。这些估计可以大大促进主要多层级模型的解释和结果的沟通,而不仅仅是使用对数比坐标来表示有意义
相关新闻
生物通微信公众号
微信
新浪微博
  • 急聘职位
  • 高薪职位

知名企业招聘

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号