首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用APA格式报告贝叶斯线性(混合)模型?

如何用APA格式报告贝叶斯线性(混合)模型?
EN

Stack Overflow用户
提问于 2017-06-22 08:14:11
回答 1查看 1.7K关注 0票数 3

我目前很难按照APA-6的建议,报告rstanarm::stan_lmer()的输出。

首先,我将在频度方法中拟合一个混合模型,然后尝试使用贝叶斯框架进行同样的操作。

以下是获取数据的可复制代码:

代码语言:javascript
运行
复制
library(tidyverse)
library(neuropsychology)
library(rstanarm)
library(lmerTest)

df <- neuropsychology::personality %>% 
  select(Study_Level, Sex, Negative_Affect) %>% 
  mutate(Study_Level=as.factor(Study_Level),
         Negative_Affect=scale(Negative_Affect)) # I understood that scaling variables is important

现在,让我们用“传统”方法拟合线性混合模型,以学习水平(受教育年限)为随机因素,检验性别(男性/女性)对负面情绪(负面情绪)的影响。

代码语言:javascript
运行
复制
fit <- lmer(Negative_Affect ~ Sex + (1|Study_Level), df)
summary(fit)

输出如下:

代码语言:javascript
运行
复制
Linear mixed model fit by REML t-tests use Satterthwaite approximations to degrees of
  freedom [lmerMod]
Formula: Negative_Affect ~ Sex + (1 | Study_Level)
   Data: df

REML criterion at convergence: 3709

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.58199 -0.72973  0.02254  0.68668  2.92841 

Random effects:
 Groups      Name        Variance Std.Dev.
 Study_Level (Intercept) 0.04096  0.2024  
 Residual                0.94555  0.9724  
Number of obs: 1327, groups:  Study_Level, 8

Fixed effects:
              Estimate Std. Error         df t value Pr(>|t|)    
(Intercept)    0.01564    0.08908    4.70000   0.176    0.868    
SexM          -0.46667    0.06607 1321.20000  -7.064 2.62e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
     (Intr)
SexM -0.149

报告中,我认为“我们拟合了一个以负面影响为结果变量的线性混合模型,将性别作为预测因子,将学习水平作为随机效应输入,在该模型中,男性水平导致负面影响显著减少(β= -0.47,t(1321)=-7.06,p< .001)。

对吗?

然后,让我们尝试使用rstanarm来拟合贝叶斯框架中的模型

代码语言:javascript
运行
复制
fitB <- stan_lmer(Negative_Affect ~ Sex + (1|Study_Level),
                  data=df,
                  prior=normal(location=0, scale=1), 
                  prior_intercept=normal(location=0, scale=1),
                  prior_PD=F)
print(fitB, digits=2)

这将返回:

代码语言:javascript
运行
复制
stan_lmer
 family:  gaussian [identity]
 formula: Negative_Affect ~ Sex + (1 | Study_Level)
------

Estimates:
            Median MAD_SD
(Intercept)  0.02   0.10 
SexM        -0.47   0.07 
sigma        0.97   0.02 

Error terms:
 Groups      Name        Std.Dev.
 Study_Level (Intercept) 0.278   
 Residual                0.973   
Num. levels: Study_Level 8 

Sample avg. posterior predictive 
distribution of y (X = xbar):
         Median MAD_SD
mean_PPD 0.00   0.04  

------
For info on the priors used see help('prior_summary.stanreg').

我认为median是系数的后验分布的中位数,而mad_sd是标准差的等效值。这些参数与频域模型的β和standart误差非常接近,这是令人放心的。然而,我不知道如何将输出正式化,并将其写成文字。

此外,如果我对模型(summary(fitB, probs=c(.025, .975), digits=2))做了总结,就会得到后验分布的其他特性:

代码语言:javascript
运行
复制
...
Estimates:
                                             mean     sd       2.5%     97.5% 
(Intercept)                                    0.02     0.11    -0.19     0.23
SexM                                          -0.47     0.07    -0.59    -0.34
...

像下面这样的东西好吗?

“我们在贝叶斯框架内拟合了一个线性混合模型,将负影响作为结果变量,性别作为预测因子,研究水平作为随机效应,将系数的先验值和截距设为正常值(mean=0,sd=1),在该模型中,与男性水平相关的系数的后验分布特征表明负性影响减少(平均= -0.47,sd = 0.11,95% CI-0.59,-0.34)。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2017-06-23 14:33:14

以下是心理学期刊可能接受或不能接受的个人观点。

报告中,我认为“我们拟合了一个以负面影响为结果变量的线性混合模型,将性别作为预测因子,将学习水平作为随机效应输入,在该模型中,男性水平导致负面影响显著减少(β= -0.47,t(1321)=-7.06,p< .001)。 对吗?

从频率学家的角度来看,这是正确的。

从贝叶斯的角度来看,关键的概念是(当然,取决于模型)。

  1. 真实效应小于后中位的概率为0.5,真实效应大于后中位的概率为0.5。频发者倾向于把后中位看作是一个数值上的最佳值。
  2. posterior_interval函数在中值附近产生可信的区间,缺省概率为0.9 (尽管较低的值会产生更精确的界估计)。因此,你可以合理地说,有0.9的可能性,真正的影响是在这些界限之间。经常出现的人倾向于把置信区间看作是可信的间隔。
  3. as.data.frame函数将允许您访问原始绘图,因此mean(as.data.frame(fitB)$male > 0)产生的可能性是,在同一项研究中,男女在结果方面的预期差异是肯定的。频发学家倾向于把这些概率看作是p值。

对于贝叶斯方法,我会说

我们以具有负影响的马尔可夫链蒙特卡罗( Markov Chain Monte )为结果变量,以性别为预测因子,允许截距随研究水平的不同而变化,建立了线性模型。

然后用上面的三个概念来讨论估计。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44693812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档