0

使用 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 不做非线性的意思?

4

1 回答 1

0

patsy 和大多数 statsmodels 只处理参数线性的模型。或者更准确地说,设计矩阵和估计参数以线性方式组合的模型,x * beta。

多项式和样条在基础变量中是非线性的,但在基函数方面具有线性表示,因此在参数方面是线性的。

当前在 statsmodels 中实现的模型中唯一的非线性是预定义的非线性,例如 GLM 或离散模型中的链接函数、NegativeBinomial 等模型中的形状参数,或混合模型和 GEE 中的协方差。

目前最好的非线性最小二乘 Python 包是 lmfit https://pypi.python.org/pypi/lmfit/

于 2016-10-25T15:59:27.517 回答