如果在第一个实验中我有变量var1a
和var2a
,我想从这些数据中获取后验值,并将其与BayesFactor包一起用作rscale(先前),用于第二个具有类似变量的实验var1b
和var2b
。问题是:如何使用R(可能与BayesFactor包一起)获得此值?
据我了解,r量级应基本上具有与预期Cohen d相同的值(即标准化均值差;基于先前的结果)。考虑到这一点,我输入了以下代码。
library(MBESS)
library(BayesFactor)
var1 = c(9,8,6,7,8,6,5,7,8,8)
var2 = c(3,4,5,6,7,5,3,2,4,5)
ttest = t.test(var1, var2, paired=T)
ci.sm(ncp = ttest$statistic, N = length(var1), conf.level = .95)$Standardized.Mean # this gives effect size as d = 1.494293
现在,我将这个值代替测试使用在相同的变量上,而不是使用新数据(好像第二个实验完美地复制了第一个)。
as.vector( ttestBF(var1, var2, paired = T, rscale = 1.494293) ) # with actual effect size as r-scale, BF = 43.78086
然后我会期望BF峰值在这一点上,所以是43.78086。
但是,当我检查其他值时,峰值实际上是当我在1.30左右给出r标度时
as.vector( ttestBF(var1, var2, paired = T, rscale = 1.50) ) # smaller: 43.7633
as.vector( ttestBF(var1, var2, paired = T, rscale = 1.30) ) # larger: 44.07731
as.vector( ttestBF(var1, var2, paired = T, rscale = 1.25) ) # again smaller: 44.03929
据我所知,这不是正确的先验。