фитинг для смещения в модели patsy

Используя patsy, я понимаю, как включать и выключать перехваты. Но мне не удалось получить горизонтальные смещения. Например, я хотел бы быть в состоянии соответствовать, в сущности,

y = alpha + beta * abs(x_opt - x_obs)

с x_opt бесплатно в посадке. Я пытался написать это так:

y ~ 1 + np.abs(y - x)

используя постоянный столбец для y. Но в скобках np.abs() patsy «выключается», а y - x просто интерпретируется как число. Если я сменю y на 1 или 20, я получу разные ответы.

Аналогичный вопрос применим, например, к np.pow(1-x, 2) или синусоиде. Возможность соответствовать смещению x была бы чрезвычайно полезной. Это возможно? Или это именно то, что означает, что patsy не делает нелинейные?


person James Saxon    schedule 25.10.2016    source источник


Ответы (1)


patsy, и большинство статистических моделей работают только с моделями, линейными по параметрам. Или, точнее, модели, в которых матрица проектирования и расчетные параметры объединены линейным образом, х*бета.

Полиномы и сплайны нелинейны по базовым переменным, но имеют линейное представление с точки зрения базисной функции и, следовательно, линейны по параметрам.

Единственными нелинейностями в моделях, которые в настоящее время реализованы в статистических моделях, являются предопределенные нелинейности, такие как функции связи в GLM или дискретных моделях, параметры формы в таких моделях, как NegativeBinomial, или ковариации в смешанных моделях и GEE.

Лучшим пакетом Python для нелинейного метода наименьших квадратов в настоящее время является lmfit https://pypi.python.org/pypi/lmfit/

person Josef    schedule 25.10.2016