专栏名称: 我爱脑科学网
52brain.com我爱脑科学网
目录
相关文章推荐
爱否科技  ·  2025 年 1 ... ·  昨天  
高校人才网V  ·  年薪高达50万 | ... ·  昨天  
51好读  ›  专栏  ›  我爱脑科学网

贝叶斯检验软件包bain介绍与使用教程

我爱脑科学网  · 公众号  ·  · 2020-03-20 08:00

正文


顾昕

华东师范大学教育心理学系副教授

研究方向:

心理统计,应用贝叶斯统计,统计软件开发

bain软件包开发者

JASP软件开发团队成员



bain是BAyesian INformative hypotheses evaluation的简称。软件包bain的主要功能是通过计算贝叶斯因子,评估研究者的理论。贝叶斯因子是贝叶斯假设检验指标,关于贝叶斯因子的介绍请参考OpenScience公众号胡传鹏老师之前的文章,这里不再赘述。

与其他贝叶斯因子计算软件(如R package “BayesFactor”)相比,bain主要有两点不同:

首先,bain可用于检验次序假设如H1: mu1>mu2>mu3。在实际研究中,次序假设往往更能准确的表达研究者的理论,如儿童学习能力大于青少年,青少年又大于成年人;又如大五人格中的责任心相比于其他人格特质更能减少学术欺诈。检验这些理论需构建次序假设,bain是目前唯一能够检验次序假设的贝叶斯R软件。

其次,bain使用部分样本数据构造先验分布,给出完全客观的贝叶斯检验结果,研究者不再需要考虑先验分布的选取问题。

目前bain软件包可处理的统计模型包括t检验(one sample t test; two samples t test;Welch’s t test; paired samples t test),等效性检验(equivalencetest);方差分析(ANOVA),协方差分析(ANCOVA),多重回归(multiple regression),重复测量(repeated measures),逻辑回归(logistic regression),结构方程模型(包括验证性因子分析confirmatory factor analysis,潜变量回归latent regression等),同时可处理多组数据与缺失数据。

bain软件包可在R语言平台和JASP软件平台(0.11.1及以后版本)中实现。




no.1   R平台


R软件包bain的用法如下:

其中x表示检验模型对象,可为t检验x b > c &b > 0; a = b = c = 0"指定了两个研究假设,a,b, c为所关心的模型参数,符号&用于连接假设中的限制条件,符号;用于区分不同假设。同时比较多个假设(模型)时,可将不同假设(模型)以;号区分。

给定模型x和假设hypothesis,运行bain函数可得到每个待检验假设或模型的拟合度(Fit),复杂度(Com), 与备择假设相比的贝叶斯因子(BF.u),与补充假设相比的贝叶斯因子(BF.c),以及假设或模型的后验概率(PMP)。

这里我们使用bain的built-in数据sesamesim,以方差分析、回归模型、和验证性因子分析为例来具体介绍。

1). 方差分析:选取sesamesim数据中的postnumb为因变量,site为分组变量,方差分析的待检验假设为各组postnumb相等vs各组大小关系为组2>组5>组1>组3>组4,R语言代码如下:

检验结果如下:

由上述结果可知假设H1(与备择假设Hu相比)的贝叶斯因子BF1u=0,因此数据不支持各组postnumb相等;假设H2的贝叶斯因子为BF2u=13.536,即数据支持各组大小关系为2>5>1>3>4的研究理论。此外,我们可以得到假设H1,H2与Hu的后验模型概率PMPb,可知H2收到数据支持的程度最高(后验模型概率为0.931)。


2). 线性回归:选取sesamesim数据中的postnumb为因变量,age, peabody, prenumb为自变量,待检验假设为prenumb的效应强于peabody强于age。R语言代码如下:

检验结果如下:

需注意的是,比较回归效应(系数)时,应对回归系数进行标准化处理,即指定standardize= T。由上述结果可知假设H1:prenumb>peabody>age的贝叶斯因子为BF1u=5.769,即数据支持假设。


3). 验证性因子分析:R软件包bain检验结构方程模型参数需借助软件包lavaan。选取sesamesim数据中Ab, Al等指标测量A因子; Bb, Bl等指标测量B因子。待检验假设为所有因子载荷均大于0.6。R语言代码如下:

上述代码前半部分利用lavaan软件包中的sem()函数定义了验证性因子分析模型。后半部分使用sem()输出结果与指定的假设在bain()函数中计算贝叶斯因子,计算结果如下:


由上述结果可知假设“所有因子载荷均大于0.6”的贝叶斯因子为BF.u=92.305,表明得到数据的强力支持。同时结果给出了因子载荷估计值与95%置信区间。


更多模型实例与用法请见:

https://cran.r-project.org/web/packages/bain/vignettes/Introduction_to_bain.html




no.2   JASP


软件包bain同样可在JASP软件平台中实现,使用者可通过简单的点击操作完成数据导入,模型定义,参数估计与检验,图表结果输出等。 关于JASP的介绍这里请见胡传鹏老师之前的文章,这里不再详述。 在JASP软件中导入数据后,选择bain模块,其图标如下所示:

这里以方差分析(ANOVA)为例说明,如下图所示,点击ANOVA模块后出现以下界面。选取postbody为因变量,treat为分组变量后,即可在界面右面得到贝叶斯ANOVA检验结果,默认为检查各组均值是否相等,即假设H1。研究者若想检验次序假设:组1>2>3>4,则需在左下角“Model Constraints“模块中输入假设,输入方法如图中所示。同时,在界面左边中部位置,可选择是否输出更多信息,如统计描述,参数估计图表等。输入结果在界面右边。




软件包bain仍在持续开发更多模型与功能,欢迎大家关注与使用,以下是关于bain的参考文献,有统计方法的如Gu et al. (2018),有程序算法的如Gu et al. (2019),有介绍bain的使用教程如Hoijtink et al. (2019a)。








请到「今天看啥」查看全文