Answers:
默认的方差-协方差结构是非结构化的-也就是说,对于级矢量随机效应,方差-协方差矩阵的唯一约束是正定的。独立的随机效应方面被认为是独立的,但是,如果你想以适应(例如)随机截距和斜率,其中截距和斜率是不相关的(不一定是个好主意)的模型,您可以用公式,这里是分组因子 的(1|g) + (0+x|g)
g
0
在第二项中抑制拦截。如果要拟合分类变量的独立参数(同样,可能存在问题),则可能需要手动构造数字虚拟变量。您可以通过将因子视为嵌套分组变量来构造复合对称方差-协方差结构(尽管仅具有非负协方差)。例如,如果f
是一个因子,(1|g/f)
则将假设的水平之间具有相等的相关性f
。
对于其他/更复杂的方差-协方差结构,您的选择(用R表示)是(1)使用nlme
(其pdMatrix
构造函数具有更大的灵活性);(2)使用MCMCglmm
(提供各种结构,包括非结构化,复合对称,具有不同方差的同一性或具有均质方差的同一性);(3)使用特殊目的的程序包,如pedigreemm
构造特殊的结构化矩阵。flexLambda
github上有一个分支,最终希望在这个方向上提供更多功能。
我可以举例说明。
协方差项在固定和随机效应的公式中指定。协方差项由公式的编写方式指定。
例如:
glmer(y ~ 1 + x1 + (1|g) + (0+x1|g), data=data, family="binomial")
这里有两种允许随机变化的固定效应,以及一种分组因子g
。由于这两个随机效应被划分为它们自己的项,因此它们之间不包含协方差项。换句话说,仅估计方差-协方差矩阵的对角线。第二项中的零明确表示不要添加随机截距项或不允许现有的随机截距随改变x1
。
第二个例子:
glmer(y ~ 1 + x1 + (1+x1|g), data=data, family="binomial")
此处x1
指定了截距和随机效应之间的协方差,因为1 + x1 | g都包含在同一项中。换句话说,估计方差-协方差结构中的所有3个可能参数。
稍微复杂一点的示例:
glmer(y ~ 1 + x1 + x2 + (1+x1|g) + (0+x2|g), data=data, family="binomial")
在这里,截距和x1
随机效应可以一起变化,而x2
随机效应和其他两个效应之间的相关系数为零。再次0
在x2
随机效应项中包括a只是为了明确避免包括随x2
随机效应而协变的随机截距。
xxM
软件包也是一个不错的选择,但是更复杂,可以对结构方程进行建模。 xxm.times.uh.edu