Python中的约束最小二乘估计

Posted

技术标签:

【中文标题】Python中的约束最小二乘估计【英文标题】:Constrained least-squares estimation in Python 【发布时间】:2012-03-05 09:04:21 【问题描述】:

我正在尝试使用 Scipy 执行约束最小二乘估计,以使所有系数都在 (0,1) 范围内并且总和为 1(此功能在 Matlab 的 LSQLIN 函数中实现)。

是否有人有使用 Python/Scipy 设置此计算的提示。我相信我应该使用scipy.optimize.fmin_slsqp(),但我不完全确定我应该传递给它什么参数。[1]

非常感谢您的帮助, 尼克

[1] fmin_slsqp 文档中的一个示例在没有引用文本的情况下对我来说有点难以解析——而且我是使用 Scipy 的新手。

【问题讨论】:

你需要使用 scipy 吗? cvxpy 是针对此类问题的凸优化库。 【参考方案1】:

看看this tutorial,似乎很清楚。

【讨论】:

【参考方案2】:

scipy-optimize-leastsq-with-bound-constraints 在 SO 上给出leastsq_bounds,即 leastsq 具有约束约束,例如 0 (我发现leastsq_bounds/MINPACK 在 5d、10d、20d 的综合测试功能上表现出色; 你有多少变量?)

【讨论】:

【参考方案3】:

由于 MATLAB 的 lsqlin 是有界 线性 最小二乘求解器,您可能需要查看 scipy.optimize.lsq_linear。

【讨论】:

是的,但是如何添加线性约束表达式?该文档似乎只允许指定变量的界限。

以上是关于Python中的约束最小二乘估计的主要内容,如果未能解决你的问题,请参考以下文章

Kalman卡尔曼滤波,Least Square最小二乘估计,加权最小二乘,递归最小二乘

r语言如何最小二乘线性回归分析

spss 怎么用最小二乘估计求回归方程

最小二乘与最大似然估计之间的关系

最小二乘法

最小二乘法