От чего зависит порядок категориальных параметров? - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь обернуть голову вокруг GLMM в statsmodels.

В моем наборе данных есть несколько категориальных переменных. Два из них являются «иерархическими», поэтому моя матрица дизайна выглядит следующим образом:

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?

...