我正在尝试使用R中的BayesFactor
包为其中一种固定效果计算贝叶斯因子(BF)。
数据具有以下结构:
rating
是因变量
cond
是具有3个级别("A"
,"B"
,"C"
)的自变量
C1
是源自cond
的对比度代码,它与"A"
和-0.50
("B"
(编码为"C"
)相对(两者都编码为-0.25
)
C2
是源自cond
的对比代码,它与"B"
(编码-0.50
)与"C"
(编码+0.5
)相对;并且"A"
被编码为0
)
judge
和face
是随机因素,因此face
与judge
交叉但嵌套在cond
内(因此也嵌套在{ {1}}和C1
)
C2
理想情况下,我想测试“完整”模型,如下所示:
DT <- fread("http://matschmitz.github.io/dataLMM.csv")
DT[, judge := factor(judge)]
DT[, face := factor(face)]
# > DT
# judge face cond C1 C2 rating
# 1: 66 13 A -0.50 0.0 1
# 2: 20 13 A -0.50 0.0 4
# 3: 22 13 A -0.50 0.0 7
# 4: 69 13 A -0.50 0.0 1
# 5: 7 13 A -0.50 0.0 3
# ---
# 4616: 45 62 C 0.25 0.5 2
# 4617: 30 62 C 0.25 0.5 6
# 4618: 18 62 C 0.25 0.5 4
# 4619: 40 62 C 0.25 0.5 3
# 4620: 65 62 C 0.25 0.5 1
并计算library(lmerTest)
lmer(rating ~ C1 + C2 + (1 + C1 + C2|judge) + (1|face), data = DT)
的BF。
我设法计算了C1
的BF,但仅具有随机截距:
C1
我尝试不成功this solution来包含随机斜率:
library(BayesFactor)
BF1 <- lmBF(rating ~ C1 + C2 + judge + face, whichRandom = c("judge", "face"), data = DT)
BF0 <- lmBF(rating ~ C2 + judge + face, whichRandom = c("judge", "face"), data = DT)
BF10 <- BF1 / BF0
# > BF10
# Bayes factor analysis
# --------------
# [1] C1 + C2 + judge + face : 0.4319222 ±15.49%
#
# Against denominator:
# rating ~ C2 + judge + face
# ---
# Bayes factor type: BFlinearModel, JZS
如果可能的话,我还需要包括BF1 <- lmBF(rating ~ C1 + C2 + judge + face + C1:judge + C2:judge,
whichRandom = c("judge", "face", "C1:judge", "C2:judge"), data = DT)
# Some NAs were removed from sampling results: 10000 in total.
的随机截距和斜率之间的相关性。
请随时在答案中使用其他任何程序包(例如judge
,rstan
)。
一些其他问题:
答案 0 :(得分:0)
协变量必须是一个“因素”。 在您的情况下,不仅需要“判断”,“面部”,“ C1”和“ C2”,而且还需要考虑因素。
DT$C1 = factor(DT$C1)