问题标签 [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.
r - R - solve.QP.compact - 约束不一致
我正在尝试使用solve.QP.compact 来解决线性约束下的二次问题。最小化函数可以写为 Beta Dmat Beta,其中 Beta 表示应该为正的凸系数(Beta > 0 且 beta 之和 = 1)。Dmat如下:
作为solve.QP.compact,求解函数-d^Tb + 1/2 b^TDb,我有
并且约束定义为
和
总和应该等于 1,所有其他值都应该是正数,所以我将 bvec 定义为
我使用solve.QP.compact
这是由以下错误导致的
我究竟做错了什么 ?
r - 受限制的利润最大化与依赖于产量的生产成本
我正在尝试最大化发电资产的每小时利润。据我从研究中了解到,我可能会使用 quadprog::solve.QP。
我已经完成了大部分所需的数据准备,已经给了我一个 96 x 5 的数据框。
这些列包括以下信息:
- 一天的一刻钟
- 电价
- 生产量
- 发电成本
- 利润
前两列是完整的,这导致了我的二次优化。目标函数如下:
主要问题是发电成本是生产量的函数(我已经预先确定,而且还取决于各种静态值)。
此外,在某一刻钟内的生产量不得与先前的生产量相差超过 20 兆瓦。生产量不得超过最大生产量且不得低于最小生产量。
我尝试按如下方式实现优化问题:
体积 = x1
价格 = x2
成本 = x3
和
受制于
从我读到我需要使用的 quadprog 手册
但老实说,我不知道如何填充两个矩阵和两个向量。
任何人都可以帮忙吗?
我希望提供的信息是足够的。
干杯,蒂尔曼
matlab - 如何仅在 Aeq * X <= Beq 中定义负约束
我正在使用quadprog
链接来查找最佳权重组合。
到目前为止,我已经设法实现了一个 long only 约束(即权重不能小于零w >= 0 and w1 + w2 + ... wN = 1)
,如下所示:
我现在正在尝试设置一个仅限短的约束,即所有权重需要加起来为 -1,并且它们都应该严格小于或等于零。这怎么能改写?
matlab - 如何使用 Aeq x <= beq 中的约束允许 -1 和 1 之间的权重
我正在使用quadprog来寻找最佳权重组合。
到目前为止,我已经设法实现了long-only和short-only约束,如下所示:
只长
只做空
我现在正在寻找一种将这两者结合起来并允许长短权重的方法,因此 x 可以介于 -1 和 1 之间。我该如何实现这一点?
我尝试了以下方法,但它只给了我相同的权重:
多头和空头(不起作用)
mathematical-optimization - 是否可以将来自 quadprog 求解器的先前解包含到后续解值的约束中?
我有一个关于 quadprog 求解器的问题。
我已经设置了一个优化问题,其中有 96 个要优化的值和 4 个工作正常的约束。
现在我想做一个更复杂的优化。要优化的值应取决于它们的直接前任。
问题:有没有办法在约束向量 bvec(保存 b_0 值的向量)中直接引用先前的解决方案?此外:是否可以使用条件函数作为约束向量 bvec 中的约束?
我希望我的问题很清楚。如果没有,请告诉我,我会尝试更清楚地解释。
提前致谢!
蒂尔曼
r - ADMM quadprog R
为了实现 ADMM 优化,我尝试使用 quadprog。我想最小化的方程是
quadprog 最小化以下格式的函数
在开发我的功能后,我确实有这样的东西
所以我可以设置 quadprog 参数,我有
Dmat = S + diag(rho/2)
和dvec = rho*z - lambda
. 但我确实有不变的价值观:rho/2 * z² + 1 - lambda*z
那仍然存在!
如何将其添加到 quadprog 函数?谢谢
r - R错误QP:不是正定矩阵?
我尝试使用 quadprog 包解决 R 中的以下问题:
在哪里
我用过
但我不断收到以下错误:
然而,清
我究竟做错了什么?这个错误怎么一直出现?
optimization - 使用 quadprog 进行特定回报的投资组合优化导致“约束不一致,没有解决方案”
我阅读了一些关于使用 quadprog 进行投资组合优化的文章,并从这个平台学到了很多技巧。现在我正在尝试在约束下使用 quadprog 优化 03 只股票的投资组合,即。
- 权重之和必须为 1
- 不卖空
- 投资组合回报 = 2%
- 每个库存重量不得超过总重量的 50%
我的 3 只股票的协方差矩阵是
股票收益/colmeans 存储在 Dvec
我使用了这篇文章投资组合优化约束矩阵/bvec 解释中提到的代码和过程。我还阅读了类似的帖子投资组合优化约束矩阵/bvec 解释和使用 R 中的 quadprog 包进行投资组合优化中的权重约束所以我尝试的代码看起来像这样
我从两个等式开始分析,即一个用于百分之百的投资,另一个用于投资组合回报。我在另一篇文章中读到,退货可能会导致问题,以至于我们正在寻找的退货在当前数据和约束条件下是不可能的。所以我也将返回值更改为不同的级别,但它不起作用,所以我放宽了返回相等性并使用 neq=1。仍然无法正常工作。我还尝试了对个股的不同权重约束,即我尝试将上限(向上)从 5% 更改为 80%。
注意:当我在没有总回报的情况下编写 amat 和 bvev 时,代码就可以工作。即当我使用 A 和 B 作为
代替
我的问题是为什么我在使用上面提到的代码时得到“约束不一致,没有解决方案”?如果有人能弄清楚我在做什么,我将不胜感激?非常感谢你们所有人。
r - 尝试在保持相关矩阵相同并保持时间依赖性的同时模拟数据
我有一个不完整的资产类别回报流。我在 Frontline Solver 中所做的是生成一个回报分布,该分布将相关资产类别与其他资产类别的相关性相匹配,以获得最大数量的可用数据。我的目标函数是最小化该相关矩阵和整个时间范围的模拟相关矩阵之间的 RMSE。约束包括为正在模拟的资产类别设置风险和回报(平均值和标准差),以及每个单独观察可以在多少标准差范围内的一些界限。
我尝试使用mvrnorm
,但它也重新采样了我用来建立协方差矩阵的数据,因为我关心时间依赖性,所以我不想要它。
lpSolve
我开始研究不同的优化/求解器包,例如quadprog
但难以解释。
下面是一个数据框,因为我不能随意使用它来帮助解决这个问题。
我的目标是为整个 28 个观察结果获得 Class5 的回报,以匹配观察数据的相关矩阵 [12:28,]。我还想指定模拟应该是什么的自定义平均值和标准偏差。例如,如果您像现在一样计算 Class5 的mean
and sd
,您将分别得到.76
and 3.8
。但是我希望新数据可以说..1
和5
.
同样,如果您mvrnorm
使用半定制mu
,sigma
那么它也会重新模拟 Class1-Class4。
r - 最小化投资组合方差,限制为与基准投资组合足够相似
我正在执行投资组合优化,我想在这里扩展讨论如下:
我有一个权重向量w_bench
用作基准。我想优化一个w_pf
满足的投资组合权重向量
pmin
这是成对的最小值。这迫使优化的投资组合权重w_pf
与基准权重相似w_bench
,并且右手尺寸(在本例中为 0.7)控制它们需要匹配的紧密程度。随着该值变大,我们要求投资组合更加相似。
最初我以为我可以很容易地用fPortfolio
package 做到这一点(仍在尝试)。但到目前为止还没有骰子。我也认为解决这个问题quadprog
会更直观,但我不知道如何将所述功能合并到流程中。
Excel实现:
协方差矩阵:
重量:
最小化方差 ( =MMULT(TRANSPOSE(H8:H10),MMULT(H3:J5,H8:H10))
) 约束为Ss(w_pf) = 1
和Ss(min) > 0.7