У вас есть восемь переменных каждая с тремя уровнями. Вы хотите включить каждое возможное взаимодействие, то есть каждую возможную комбинацию из восьми факторов.
Существует 3 ^ 8 различных возможных комбинаций значений для ваших предикторов. Таким образом, в вашей матрице дизайна есть 3 ^ 8 = 6561 возможных основных эффектов и взаимодействий (включая перехват).
Чтобы увидеть, как они кодируются, рассмотрим один трехуровневый предиктор:
> model.matrix(lm(y ~ x1))
(Intercept) x12 x13
1 1 0 0
2 1 1 0
3 1 0 1
Один трехуровневый коэффициент кодируется как 3 столбца, перехват и две фиктивные переменные.
Теперь добавьте второй трехуровневый предиктор и их взаимодействие:
> model.matrix(lm(y ~ (x1+x2)^2))
(Intercept) x12 x13 x22 x23 x12:x22 x13:x22 x12:x23 x13:x23
1 1 0 0 0 1 0 0 0 0
2 1 1 0 1 0 1 0 0 0
3 1 0 1 0 0 0 0 0 0
Так что здесь 9 допустимых комбинаций этих двоичных переменных. Когда вы получаете до 8 переменных, каждая из ваших 6561 возможных комбинаций предикторов представляется допустимыми комбинациями этих двоичных переменных. (очевидно, вы не можете иметь одновременно и x12
, и x13
положительный результат).