Я думаю, что это просто неудача в реализации. Предупреждение, которое я вижу:
Warning message:
In model.matrix.default(Terms[[i]], mf, contrasts = object$contrasts) :
variable 'mined' is absent, its contrast will be ignored
Это безвредно (по крайней мере, в этом случае; я не проверял другие случаи) и генерируется, потому что есть только один object$contrasts
, и он содержит сведения о mined
, но это Переменная отсутствует во втором линейном предикторе, поэтому R предупреждает, что он собирается игнорировать контрасты для переменной mined
, но это происходит только при построении матрицы модели для части модели с нулевой инфляцией. Часть счета правильно использует переменную mined
и правильные контрасты.
Можно утверждать, что, если $contrasts
будет списком, один на линейный предиктор будет лучшим дизайном, и тогда матрица модели будет создана с использованием:
model.matrix.default(Terms[[i]], mf, contrasts = object$contrasts[[i]])
но я понятия не имею, сломает ли это все остальное в mgcv .
В настоящее время $contrasts
для этой модели просто:
> zipgam$contrasts
$spp
[1] "contr.treatment"
$mined
[1] "contr.treatment"
$spp
[1] "contr.treatment"
, который уже показывает некоторую избыточность.