Statsmodels 允许使用 R 样式公式使用 patsy 和statsmodels.formula.api
. 我想使用 pandas DataFrame 中的列来拟合特定函数,但是,我似乎只能接近。例如,如果我有以下带有列的数据框,['A', 'B', 'C', 'D']
并且想要拟合以下形式的方程:
y = (A + B) / D
我可以编写公式字符串,y ~ (A + B):D-1
它会产生两个系数:A:D and B:D
. 然后我可以做一些代数并去掉其中一个前面的系数,但不能同时去掉两者。
有没有一种简单的方法来适应这种形式的自定义函数,而无需切换到 scipy curve_fit 或 lmfit?
编辑
澄清一下,我的目标是获得 D 的拟合值,让 A 和 B 成为存储在数据框中的值。为了让它工作,我生成了一个名为 1 的虚拟列D
。所以我拥有的已知值是y, A, and B
,D
是我的适合参数。到目前为止,我获得了两个看起来像 的结果,y=A:D*A + B:D*B
然后我可以提取它以获得类似y=(A + B:D/A:D*B)/A:D.
This works well,除了我不想在 B 前面有系数。