问题标签 [quadprog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
267 浏览

r - quadprog::solve.QP 参数的使用和确定

quadprog 的功能如下所示:solve.QP(Dmat, dvec, Amat, bvec, meq=0, factorized=FALSE)

我的目标函数是:

我的两个限制是:

现在我的目标是确定单个参数。

1)第一个论点 Dmat

在一般的符号是:

计算矩阵DDmat

因为D是对称的,所以解是

2)第二个参数 dvec:目标函数的线性部分

3)第三个参数 Amat:这是约束的左侧

4)第四个参数 bvec:这是约束的右侧

5)第五个参数 meq为零,因为只有不等式约束

6)第六个论点 factorized:见问题

现在我必须将这六个参数放入函数中solve.QP()。但在这里我确信需要进一步的“转型”......

  • 当您查看包装说明时,二次部分乘以 0.5,线性部分为负

  • 约束的定义也不同 - >= 符号

问题

  1. 我必须如何“转换”前四个参数solve.QP()
  2. 最后一个参数有什么factorized影响
  3. 如何最大化功能solve.QP()

提前谢谢了!

编辑:我现在已经完成了我的“转换”,就像 G. Grothendieck 的链接中建议的那样——我希望我做的一切都正确?!

在此处输入图像描述

当我改变参数时factorized=TRUE,我得到了 x1=2 和 x2=4 的预期解决方案。

在此处输入图像描述

在帮助中提到了 R^-1。但遗憾的是,我不知道这意味着什么......任何提示都表示赞赏。

在此处输入图像描述

0 投票
0 回答
88 浏览

r - Quadprog 用于带约束的投资组合优化

首先让我说我是 Stack Exchange 网站的新手,如果这是一个低质量的问题,我深表歉意。

我正在尝试使用 R 中的 Solve.QP 运行平均方差投资组合优化,并在 Stack Overflow 上查看了有关此问题的几个先前问题,以找出如何正确执行此操作但没有运气。

我想要的约束如下:

  1. 多头/空头组合:权重可能为负
  2. 市场中性:权重之和 = 0
  3. 无杠杆:每个权重都在 -1 和 1 之间 + 所有正权重之和 = 1,所有负权重之和 = -1

我正在运行这个优化。100 个资产,因此出于演示目的,我用 5 个资产(使用假数据)复制了代码的优化部分。完整代码见文末。

假设我的 5 个资产有以下 5 个预期回报

预计有两种资产表现不佳,而预计有 3 种资产会产生正回报。

Amat 和 bvec 然后看起来像这样

  • 第一行表示市场中性约束
  • 第二行表示投资组合的长边必须有权重加到 1
  • 第三行表示短腿的权重必须加到 -1
  • 接下来的 5 行表示每个单独的权重必须 >= -1
  • 最后 5 行表示每个单独的权重必须 <= 1

优化运行不会引发错误,但(并非总是)强制执行杠杆约束

其中w_opt包含优化的权重。

我已经设置meq=3指定三个第一个约束是相等的。

0 投票
0 回答
63 浏览

gurobi - 如何使用求解器 Gurobi 进行优化?

我想用 Gurobi 求解器优化一个二次问题。这些矩阵是我已经建模的,它与其他求解器配合得很好。我的 Gurobi 代码如下所示:

在示例中,仅存在不存在实值 c(在我的情况下为 q)的情况。所以,我在表格中设定了目标,x @ Q @ x + q @ x但答案是

障碍解决模型在 0 次迭代和 0.01 秒内。模型不可行

我该如何解决这个问题?为什么它不能与 gurobi 一起使用,但这些矩阵与其他求解器(例如 osqp、cvxopt..

0 投票
2 回答
287 浏览

python - 找到最适合目标向量的向量的线性组合

我试图在多个预测中找到权重,以给出尽可能接近已知目标的结果(例如,均方误差)。

这是一个简化的示例,显示了跨四个数据点的三种不同类型的预测:

其中一个预测总是大约 0.9,一个总是大约 1.1,一个总是大约 1.2。

我想要一种自动查找[0.5, 0.5, 0.0]三个预测的权重的方法,因为平均前两个预测并忽略第三个预测非常接近目标。理想情况下,权重将被限制为非负且总和为 1。

我需要使用某种形式的线性规划或二次规划来做到这一点。我已经安装了 Python quadprog 库,但我不确定如何将这个问题转换为像这样的求解器所需的形式。谁能指出我正确的方向?

0 投票
0 回答
48 浏览

python - 使用 cvxopt 函数时如何摆脱“ValueError:除连接轴之外的所有输入数组维度必须完全匹配”错误?

首先,我以适当的形状定义了一些矩阵和向量。

初始化

定义目标函数矩阵

Q 和 C 分别是目标函数 1/2 x^TQ x +C^T x 的矩阵和向量。

##创建平等主题

在我的问题中,我只有相等的约束以及定义自爆的上限和下限。

##创建形状的上限和下限(1,96)

##错误

如果有人可以帮助我,我很高兴。

0 投票
1 回答
121 浏览

r - 二次优化 - 投资组合最大化问题

在投资组合分析中,给定期望,我们的目标是找到每个资产的权重以最小化方差

这是代码

我了解 mu 和协方差矩阵的公式,并且知道quadprog绘图的用法

但是,我不明白为什么Amatbvec以这种方式定义,为什么是 6 x 4 矩阵。

$mu0$ 是我们对投资组合的期望值,它固定为 8%

附件是问题在此处输入图像描述

0 投票
0 回答
50 浏览

python - 在 Python 中安装/使用 quadprog

以前有人在 Python 中使用过 quadprog 吗?我尝试安装和导入它,它是成功的,但是当我尝试使用它时,我收到以下消息:

安装:

0 投票
0 回答
21 浏览

r - 将 Solve.QP 代码更改为最大从最小方差返回给定约束

我在寻找类似问题的解决方案时发现了以下代码,在这里:r - Portfolio Optimization -solve.QP - Constraints are Inconsistent

请注意,在上面的代码中,我已将目标回报率从 5.2% 更改为 6.6%,因为考虑到限制,5.2% 是不可行的。

您如何更改上述代码以最大化投资组合方差 <= 140 的预期回报。投资组合方差:wgts%*%Cov%*%t(wgts)所有权重 >=0 和 <=50% 的约束仍然存在。

0 投票
0 回答
16 浏览

quadprog - 错误:quadprog(Ubuntu,python)的构建轮失败

在 macos 中我没有收到该错误,在 Windows 中我必须安装 Microsoft Visual Studio,但在 Linux 上我不知道如何解决这个问题。

在我输入终端后显示错误:

我尝试了很多方法并寻求帮助。