该包是一个 R 包,用于使用 Stan 作为后端的类似语法的brms贝叶斯模型。lme4在包中,有一个选项可以在不指定任何先验的情况下拟合模型。在这种情况下,根据文档,包默认选择非信息或弱信息先验。特别是,根据一个小插曲,对于总体级别的参数,默认值是不合适的,而对于组级别的参数,SD 的默认值是学生的t。
当我使用默认先验(没有先验信息可言)拟合模型时,我想看看实际使用的先验是什么。该函数prior_summary打印出拟合模型后使用的先验。
但是,我无法理解打印输出。在这里,模型是distance | cens(censored) ~ (segdist + tonedist | participant) + (1|variable):
prior class coef group resp dpar nlpar bound
1 student_t(3, 4, 10) Intercept
2 lkj_corr_cholesky(1) L
3 L participant
4 student_t(3, 0, 10) sd
5 sd participant
6 sd Intercept participant
7 sd segdist participant
8 sd tonedist participant
9 sd variable
10 sd Intercept variable
11 student_t(3, 0, 10) sigma
如您所见,有许多行没有事先指定。为此,我想到了两个原因:
可能性1:那些空白行适合不正确的先验。考虑这一点的一个原因是all函数中有一个参数,文档描述如下:显示模型中可能具有先验(TRUE)或仅具有适当先验(FALSE)的所有参数?'。将其设置为 FALSE 后,除 1、2、4 和 11 之外的所有行都被删除,似乎暗示它们具有不正确的先验。
然而,这似乎很奇怪,因为 SD 有一个不正确的先验,这是他们不应该的。此外,我不确定像 3、4、5 和 9 这样的线实际上是什么。4 特别是不能指模型的残差标准差,因为那是sigma,所以不清楚人口级别的 sd 在这里做什么。
可能性 2:第 2 行和第 4 行是标题,并暗示以下所有行都有该标题。这在第 2 行的情况下似乎是有道理的。假设class列中的L 是cor(相关性;我在文档中的任何地方都找不到L类)的替代,那么先验是有道理的。participant(我在分组中只有相关性,因为 for variable,只有一个随机截距。)同样,所有组级效应都有学生的t先验,这是预期的行为。
这是我觉得比较明智的猜测。但是,它并没有解释 的奇怪行为all,因为第 3 行和第 5-10 行会有适当的先验,即使all=FALSE根据文档也应该显示出来。此外,第 5 行和第 9 行仍然有点神秘,尽管我可以将它们解释为“继承”第 4 行的先验并将它们“传递”到截距和斜率的“副标题”。
我的任何猜测都正确吗?
PS 的文档prior_summary是 p.133 of this。