我正在尝试将statsmodels
中的GLMM包裹起来。
我的数据集具有多个类别变量。其中两个是“分层的”,因此我的设计矩阵如下所示:
import patsy
df = patsy.demo_data('a', 'b', 'c', 'x')
_, exog = patsy.dmatrices("x ~ 0 + a:b + c", data=df)
exog
>>> DesignMatrix with shape (8, 5)
>>> c[c1] c[c2] b[T.b2] a[T.a2]:b[b1] a[T.a2]:b[b2]
>>> 1 0 0 0 0
>>> 0 1 0 0 0
>>> 1 0 1 0 0
>>> 0 1 1 0 0
>>> 1 0 0 1 0
>>> 0 1 0 1 0
>>> 1 0 1 0 1
>>> 0 1 1 0 1
>>> Terms:
>>> 'c' (columns 0:2)
>>> 'a:b' (columns 2:5)
我希望将四个a:b
情况编码为“基本截距”(如果这是正确的单词),而不是c
情况。也就是说,我希望将其编码为这种形式,但要使用c
:
DesignMatrix with shape (8, 4)
a[a1]:b[b1] a[a2]:b[b1] a[a1]:b[b2] a[a2]:b[b2]
1 0 0 0
1 0 0 0
0 0 1 0
0 0 1 0
0 1 0 0
0 1 0 0
0 0 0 1
0 0 0 1
Terms:
'a:b' (columns 0:4)
问题1:这是否有意义?我的想法是,由于a:b
对应于四个不同的实验条件,因此使推理更加容易。 (c
对应性别)。
问题2:如何说服statsmodels
/ patsy
成为“单人” a:b
而不是c
?