R BayesFactor包:输出BF值

时间:2014-08-29 00:54:50

标签: r

我正在使用R中的BayesFactor包,但是我无法输出贝叶斯因子统计量作为要保存的变量。

例如,使用t检验配对样本数据设计:

a = c(94,95,98,99,98,99,96,97,97,100,66,100,99,97,100,99,100,97,99)
b = c(97,100,99,100,100,98,98,97,97,100,67,100,100,98,99,99,100,98,100)
out = ttestBF(a,y = b,paired = T)

返回:

Bayes factor analysis

[1] Alt., r=0.707 : 4.258084 ±0.03%

Against denominator:

  Null, mu = 0

Bayes factor type: BFoneSample, JZS

我希望能够将4.258084保存到变量。

通常在其他R函数中,我将其作为: 出$变量名

但此输出的可用选项是:

(1) out$Alt., r=0.707
(2) out$Null, mu=0

这些在调用时返回错误:

(1) Error: unexpected ',' in "out$Alt.,"
(2) Error: unexpected ',' in "out$Null,"

非常感谢任何帮助

3 个答案:

答案 0 :(得分:3)

(我是BayesFactor包的作者)。获得贝叶斯因子的最简单方法是简单地使用

as.vector(out)

这将为您提供所需的数字。没有必要深入到对象结构中。

答案 1 :(得分:1)

我设法向合适的人提问,答案更深入到输出结构中:

你来自贝叶斯因素" out @ bayesFactor $ bf"是你想要的BayesFactor的LOG。

所以要获得实际的BF值:

BF = exp(1)^ out @ bayesFactor $ bf

答案 2 :(得分:0)

只需添加此内容,使用返回对象内的@bayesfator插槽即可得到意外的结果。这里的as.vector和as.dataframe(正确)与内部广告位值不匹配:

bf10 <- proportionBF(70, 100, .5)

# this is different
bf10@bayesFactor$bf

# to these
bf10 %>% as.vector
bf10 %>% as.data.frame()