贝叶斯因子模型教程
Tutorial for Bayesian Factor Models
https://arxiv.org/pdf/2607.11819v1
![]()
![]()
摘要
贝叶斯因子模型(BFM)是成熟的模型,它将一组均值为零、独立且不相关的因子(随机效应)中的观测变异性进行分解。尽管因子分析(FA)由 Spearman(1904)于 1904 年提出,但近年来,人们对能够适应大型复杂现代数据集的推断和计算方法重新产生了兴趣,这些数据集如今在各种应用中被常规收集。我们为各种近期的 BFM 提供了可复现、协调且快速的软件,允许直接比较方法,并为 BFM 及其实现提供了一站式教程。我们既不支持也不推荐任何方法用于特定应用;我们只是为 BFM 提供了一个以前不可用的协调且可复现的通用平台。随附的 factorverse R 包可在 https://github.com/peterdunson/factorverse获取。
关键词:贝叶斯因子模型;因子分析;收缩先验;Gibbs 采样;协方差估计;R 包
1 引言
贝叶斯因子模型(BFM)涵盖了一大类方法,其扩展包括时间序列(Aguilar & West, 2000; Lopes & Carvalho, 2007)、函数型(Matuk, Herring, & Dunson, 2025)和空间(Schmidt & Gelfand, 2003)数据,以及对假设的放宽,包括潜在因子分布的估计(Chandra, Canale, & Dunson, 2023)、因子分析器的混合(Ghahramani & Hinton, 1996; McLachlan, Peel, & Bean, 2003)、非高斯(Murray, Dunson, Carin, & Lucas, 2013)和/或非线性(Yalcin & Amemiya, 2001)结构。尽管具有这种一般性,基线高斯线性因子模型仍然广泛应用于从基因组学到心理学和金融等一系列应用中。本文专门关注该模型,提供了首个统一、协调且计算高效的软件平台,在 factorverse 包中通过单一一致的接口实现了六种现代贝叶斯收缩先验。虽然像 Stan 这样的通用工具可用于拟合这些模型,但我们在此关注的是为 BFM 开发的更高效的专用 Gibbs 采样器。本文被编写为一个自包含的教程,提供了一站式的实用介绍以及现代 BFM 建模。
1.1 模型
![]()
![]()
![]()
![]()
2 贝叶斯因子分析综述
因子分析起源于心理测量学,由 Spearman(1904)开创。此后发展出了众多估计策略。经典方法包括最大似然估计(Lawley & Maxwell, 1962),通常通过 EM 算法(Rubin & Thayer, 1982)进行,以及广义矩估计(Bollen, Kolenikov, & Bauldry, 2014)。其他频率派程序包括主因子法和最小二乘法(Jöreskog, 1967),以及来自结构方程建模的优化技术(Bollen, 1989)。贝叶斯方法从早期表述(Martin & McDonald, 1975; Press & Shigemasu, 1989)到现代 MCMC 方法(Lopes & West, 2004)、动态和非参数扩展(Aguilar & West, 2000; Chandra et al., 2023; Lopes & Carvalho, 2007),以及结构化收缩先验(Bhattacharya & Dunson, 2011; Bhattacharya, Pati, Pillai, & Dunson, 2015; Carvalho, Polson, & Scott, 2010; George & McCulloch, 1993; Rockova & George, 2018)。可扩展的替代方法包括因子分析器的变分推断(Ghahramani & Hinton, 1996)及相关 VI 方法(Blei, Kucukelbir, & McAuliffe, 2017)。
![]()
随后二十年的一个中心主题是使用因子载荷矩阵 Λ 元素上的先验,在其上诱导收缩。原则上,这有两个目的:增强可解释性,以及直接从数据中估计因子数量 K 。已经提出了若干方法,包括乘法 Gamma 过程收缩(MGPS)先验(Bhattacharya & Dunson, 2011)、Dirichlet-Laplace(DL)先验(Bhattacharya et al., 2015)、尖峰-平板先验(Rockova & George, 2018)、马蹄先验(Carvalho et al., 2010)、结构化稀疏贝叶斯分析(Zhao, Gao, Mukherjee, & Engelhardt, 2016),以及质量-非局部得分(Huang, Zorzetto, & De Vito, 2025)。我们提供了每种方法的主要特征,然后提供了用于其实现的协调软件。
3 方法的实现
3.1 数据结构与先验
![]()
![]()
![]()
![]()
3.3 尖峰-平板 LASSO 先验(SSL)
SSL 先验旨在通过引入一种离散混合结构来改进连续收缩先验,这种结构能更清晰地将零载荷和非零载荷分开。它不是通过连续惩罚将所有载荷收缩至零,而是将每个载荷分配给一个紧致的尖峰或一个宽松的平板 Laplace 分布,允许数据决定哪些载荷实际上是零、哪些是活跃的,同时通过正态分布的尺度混合表示保持共轭 Gibbs 更新。
![]()
3.4 Dirichlet–Laplace 先验(DL)
DL 先验旨在通过将全局-局部尺度结构与跨因子的 Dirichlet 收缩分配相结合,实现比 MGPS 先验更激进且更具理论基础的收缩。Dirichlet 成分确保 Λ Λ的每一行获得相同的总收缩量,并在各因子之间自适应地分配,而 Laplace 尾部比高斯先验更重地收缩小载荷,同时保护大载荷免于过度收缩。
![]()
3.5 马蹄先验(HS)
马蹄先验旨在实现对接近零的载荷的激进收缩,同时对大载荷基本上不施加收缩,这一特性使其既区别于 MGPS 的高斯先验,也区别于 DL 和 SSL 的 Laplace 先验。这种行为源于局部和全局尺度上的重尾半柯西分布,它允许后验对不相关载荷紧密集中在零附近,同时让大信号几乎不被收缩。
![]()
3.6 具有结构化稀疏性的贝叶斯组因子分析(BASS)
BASS 通过引入一种更深的层次结构扩展了全局-局部收缩框架,该结构在变量和因子两个层面上运作,并且还为每个因子纳入了一个二元指示变量,用于在稀疏和稠密收缩机制之间切换。这种设计允许模型不仅适应单个载荷的稀疏性,还能适应每个因子的整体结构,使其比在 Λ Λ的所有元素上统一应用单一收缩机制的先验更加灵活。
![]()
3.7 质量-非局部得分先验(MNL)
![]()
4 在 factorverse 包中的实现
如第 3 节所示,各种方法共享其大部分完全条件分布,主要区别在于放置在 Λ Λ上的先验(或者,对于 MNL,是放置在因子得分 b b上的先验)。这些方法与平台无关,可以在任何软件中实现。这里我们使用自己通过 RcppArmadillo 的 C++ 实现。包装函数在所有方法之间暴露一个单一一致的接口。下面我们提供该函数的计算基础设施,但这里我们展示用户接口:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
5 模拟
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
5.3 结果
5.3.1 单因子(K=1, P=5)
![]()
MNL 在所有参数集上都显著逊于其他方法。与载荷先验方法不同,MNL 对因子得分放置收缩先验,这是为许多受试者在某个因子上得分为零的设定而设计的。由于此处的得分是稠密高斯抽样,MNL 很可能超出了其预期设定。
此场景的结论是,对于单个稠密因子,每个正确设定的方法对协方差的估计都同样好(MNL 除外)。
![]()
覆盖率。表 7 报告了 Ω 中参数子集(所有、对角和非对角)上的平均频率,即 95% 可信区间包含 Ω 中相应真实参数的频率。FA 未出现在此表中:它返回单个点估计,没有不确定性度量。
![]()
纵向阅读各列,各方法倾向于产生合理的平均覆盖率估计,尽管一些方法表现出一定的覆盖不足(例如,集合 4 中 MGPS 为 0.88,集合 4 中 HS 为 0.87)。随着信噪比增加并变得更具变异性(场景 4),所有方法似乎表现都更差。
MNL 继续表现不佳,尤其是对于 Ω 的非对角元素,其性能在较高信号下迅速下降。这似乎与可信区间的长度有关,在高信号下,可信区间往往比其余方法更小。这可能加剧了第 5.3.1 节中讨论的 MNL 较大 MSE 的影响。
结论是,MGPS、SSL、DL、HS 和 BASS 在可信区间覆盖率方面倾向于具有相似的表现,尽管某些方法在特定场景下存在一定的表现不足。
计算效率。表 8 报告了拟合时间和采样效率。五种载荷先验方法的拟合时间均约为 0.16 秒,速度大致相当,其中 DL 和 BASS 由于额外的超参数更新而略慢于 MGPS 和 SSL。MNL 大约慢三倍,因为它对得分进行逐元素的 Metropolis 更新。在载荷先验方法中,每个参数集内各方法的 ESS 相似,从低信号(集合 1)的约 2,000–2,200 下降到高信号(集合 4)的 11–14。随着信号增强,ESS 的这种急剧下降反映了当 Ω 上的后验变得更加集中时混合变慢,这是所有五种方法共有的模式。在低信号下,载荷先验方法大约每秒产生 12,000 个有效抽样;到集合 4 时,这下降到约 70–85。MNL 在强信号下保持较高的 ESS,但鉴于其在此设定下的较差精度,这并不能转化为更好的估计。
![]()
5.3.2 双因子(K=2, P=10)
点估计精度。表 9 报告了与表 6 组织方式相同的结果。与单因子场景不同,各方法显示出更明显的差异,DL 在所有四个参数集上具有最小的 MSE。在低信号下(集合 1 和 2),DL 的 MSE 约为其他方法的一半(例如,集合 1 中 DL 的平均 MSE 为 0.014,而 MGPS 为 0.022)。在高信号下(集合 3 和 4),相对差异较小(例如,集合 3 中 DL 的平均 MSE 为 3.33,而 MGPS 为 4.72,约小 30%)。FA 的表现处于贝叶斯方法的中间水平,而 MNL 再次逊于所有其他方法。
此场景的结论是,DL 具有最小的 MSE,而除 MNL 外,所有方法的表现都相当好。
覆盖率。表 10 报告了 ( K , P ) = ( 2 , 10 ) 场景下 95% 可信区间的经验覆盖率。MGPS、SSL、HS 和 BASS 在集合 1–3 中产生的覆盖率都接近名义水平,与单因子场景一样,在集合 4 中出现了覆盖不足。DL 在两个方面表现突出:其在集合 1 和 2 中的覆盖率高于名义水平(例如,总体分别为 0.966 和 0.974),但其可信区间是所有方法中最短的。这种更高覆盖率与更短区间的组合与 DL 在此场景中较小的 MSE 是一致的。随着集合 3 和 4 中信号的增长,DL 的覆盖率接近名义水平,而其区间仍比其他方法短。MNL 自始至终表现不佳,其覆盖率在高信号下崩溃,在集合 3 中对角元素的覆盖率达到 0.000。
![]()
结论是,MGPS、SSL、HS 和 BASS 的校准相似,DL 倾向于略微过度覆盖且区间更短,而所有方法在最高信噪比下都出现覆盖不足。
计算效率。表 11 报告了拟合时间和采样效率。载荷先验方法大约在半秒内拟合完成;MNL 大约慢三倍。值得注意的特征是,在强信号下,DL 的混合远优于其他先验:其 Ω Ω的 ESS 在所有集合中都保持较高,而其他方法的 ESS 随着信噪比的增长而崩溃,这使得 DL 在集合 3 和 4 中每秒的有效抽样数量高出一个数量级。
![]()
5.3.3 五因子(K=5, P=50)
![]()
![]()
覆盖率。表 13 报告了 ( K , P ) = ( 5 , 50 ) 场景下 95% 可信区间的经验覆盖率。方法之间的异质性比低维场景更大。DL 和 BASS 在所有参数集上产生高于名义水平的非对角覆盖率,且可信区间最短,这与在 K = 2 时看到的模式一致。DL 的对角覆盖率在低信号下接近名义水平,但在高信号下下降,在集合 4 中达到 0.83。SSL 持续对角元素覆盖不足,集合 2 中覆盖率低至 0.40,集合 3 中为 0.51;其总体覆盖率看起来更合理,仅因为其区间远比其他方法宽。HS 也显示出一定的对角覆盖不足,尤其是在高信号下。所有方法在集合 4 中都对角元素覆盖不足,尽管 MGPS、DL 和 BASS 在那里维持了接近名义水平的非对角覆盖率。MNL 自始至终表现不佳,在集合 2–4 中对角覆盖率接近零。
![]()
结论是,在此场景中 DL 和 BASS 是校准最好的方法,SSL 表面上的覆盖率掩盖了其宽区间和较差的对角覆盖率,而所有方法在最高信噪比下都难以处理对角元素。
计算效率。表 14 报告了拟合时间和采样效率。载荷先验方法大约在三秒内拟合完成;MNL 大约慢四倍,因为它对得分进行逐元素的 Metropolis 更新。与 ( K , P ) = ( 2 , 10 ) 场景一样,各方法在混合方面分离明显:DL 和 BASS 在所有四个集合中都保持 Ω Ω的高 ESS,而 MGPS、SSL、HS 和 MNL 的 ESS 随着信噪比的增长而崩溃,在集合 4 中降至个位数或低两位数。结果是,在高信号下,DL 和 BASS 每秒产生的有效抽样比其他方法多一到两个数量级。这两个方法正是实现了最低 MSE 的相同方法,因此优越的混合与优越的点估计在此重合。
![]()
5.3.4 十因子(K=10, P=200)
![]()
![]()
覆盖率。表 16 报告了与低维场景相同的结果,但针对 ( K , P ) = ( 10 , 200 ) 设定。与点估计一样,这里方法之间的异质性更大。DL 和 BASS 继续以最短的可信区间提供接近名义水平的非对角元素覆盖率,这与其较小的 MSE 一致。MGPS 很好地覆盖了非对角元素,而其对角覆盖率随着信号增长而下降,从集合 1 中的 0.91 降至集合 4 中的 0.71。
![]()
SSL 和 HS 的非对角元素覆盖率约为 0.89(集合 4 中 SSL 除外,为 0.75),但它们的对角覆盖率在大多数集合中接近零,而且它们的可信区间远比其他方法宽(SSL 在集合 3 中宽度达到 23)。这种宽区间与差的对角覆盖率相结合的模式与点估计结果一致。MNL 自始至终覆盖不足,在集合 4 中其所有元素的覆盖率降至 0.35。
结论是,在此高维场景中 DL 和 BASS 仍然是校准最好的方法,MGPS 对非对角元素是合理的,其余方法的覆盖则不太可靠。
计算效率。表 17 报告了拟合时间和采样效率。载荷先验方法大约在 17–19 秒内拟合完成;MNL 大约慢八倍,因为其逐元素的 Metropolis 更新随变量数量增加而扩展性很差。与低维场景一样,各方法在混合方面存在差异:MGPS 和 BASS 获得 Ω 的最高 ESS 以及每秒最有效的抽样数,DL 在所有四个集合中也保持高 ESS。SSL 的 ESS 最低,在高信号下降至每秒远低于一个有效抽样,而 HS 在低信号下混合良好,但随着信号增长则不那么好。在这里混合最好的方法再次属于 MSE 最小的方法之列。
![]()
6 讨论
我们介绍了 factorverse,这是一个统一且可复现的贝叶斯因子分析平台,它在单一一致的接口背后实现了六种现代建模方法(MGPS、SSL、DL、HS、BASS 和 MNL)。我们的目标不是倡导任何一种方法,而是提供一个共同、协调的基础,使这些模型能够在平等的基础上进行拟合、检查和比较。
核心贡献是实现本身。每种方法都通过 RcppArmadillo 用 C++ 编写,并通过单一函数调用暴露,因此在不同先验之间切换只需更改一个参数。采样器运行迅速,以通用格式返回输出,并使提取后验摘要和比较结果等下游任务变得直接明了。正是这种统一性使得相同的分析流程无需修改即可应用于非常不同的先验。
第二个贡献在于整合了现有软件参差不齐的方法。其中若干方法已有可用的实现,但它们分散在不同来源中,接口差异很大,并且并不总是易于在因子模型设定中安装或应用;有些方法在计算上也很慢。对于其他方法,我们无法找到现有的因子模型实现,因此我们直接从原始论文构建了新的实现。将所有这些方法汇集在一处,共享记号并共享计算后端,消除了使用和教授它们的一大实际障碍。
最后,我们提供了一项完整且可复现的模拟研究,在一系列维度、信号强度和噪声结构上检验了每种方法。模拟证实这些实现的行为符合预期,在各个场景中准确恢复了潜在的协方差,并且它们说明了贝叶斯表述的额外价值:除了点估计之外,每种方法都为所关注的量提供了经过校准的不确定性度量。所有代码和模拟脚本均公开可用,因此此处报告的每个结果都可以被复现和扩展。
原文链接:https://arxiv.org/pdf/2607.11819v1
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.