楼主: 大多数88
1552 29

[量化金融] 多谱风险约束下的投资组合选择 [推广有奖]

11
能者818 在职认证  发表于 2022-5-7 01:37:22
1> x=1,kxk∞≤ B、 θ在哪里≥ 0是对最大光谱风险度量的惩罚。从ES的对偶表示(2.1)可以看出,投资组合选择问题(2.2)可以重新表述为maxu>x- λkxks。t、 dkP`=1γk`zk`+(1)-βk`)nkpj=1((Lkx)j- zk`)+!≤ αk,k=1,·m,>x=1,kxk∞≤ B、 其中(Lkx)jdenotes表示向量Lkx的第j个分量∈ 恩。通过引入新变量yjk`=((Lkx)j- zk`)+,ξi=|xi |,上述优化问题可以重新表示为LP(2.3)maxu>x- λ1>ξs.t.dkP`=1γk`zk`+(1)-βk`)nkpj=1yjk`!≤ αk,k=1,·,m,yjk`≥ (Lkx)j- zk`,j=1,Nk,`=1,dk,k=1,m、 ξ≥ x、 ξ≥ -x、 >x=1,kxk∞≤ B、 y≥ 不幸的是,LP.0通常非常大。例如,当每个广义drisk度量ρkhas d ES分量,且样本数nk等于N foreach k时,LP(2.3)有O(mdN+N)个变量和约束。因此,如果n=100个资产,m=5个风险约束,每个约束都有d=3个ES组件,n=10000个样本,LP有150,100个变量,即使最初的投资组合选择问题只有n=100个变量!此外,在任何最优解中,YJKL变量的很大一部分为零;因此,LP非常病态。大型病态LPs在实践中极难解决。在第4节中,我们给出了支持这一主张的经验证据。3.谱风险约束投资组合选择算法。在本节中,我们提出了一种快速迭代算法,用于在不引入任何新变量的情况下计算(2.2)的解。我们的目标是能够大规模地解决大规模的投资组合选择问题;因此,我们只能使用梯度下降算法。

12
nandehutu2022 在职认证  发表于 2022-5-7 01:37:25
SpecRiskAllocate是近端梯度算法FISTA[Beck and Teboulle,2009]的一个应用,可精确定义(2.2)的“平滑”惩罚重新公式。在定理3.1中,我们为惩罚参数建立了一个显式值,该值保证(2.2)的ε-最优解可以从解重构为惩罚公式。第4节中的数值结果清楚地表明,我们的算法解决了几个小的凸QP,明显快于解决一个非常大的LP的LP公式。SpecRiskAllocate可以被视为一种分解算法,利用其约束非常松散耦合的事实,将大型LP分解为多个小型QP,然后平滑较小的QP以提高收敛性。3.1. 平滑的处罚公式。投资组合选择问题(2.2)显然相当于问题maxu>x- λkxks。t、 max1≤K≤m{ρk(Lkx)- αk}≤ 0,k=1,··,m,>x=1,kxk∞≤ B.该优化问题的精确惩罚公式由minη给出λkxk- u>x+ (max1)≤K≤m{ρk(Lkx)- αk})+s.t.1>x=1,kxk∞≤ B、 其中η表示惩罚参数。我们将发现,用η来衡量目标,而不是衡量惩罚条款,是很方便的。让我们表示M+1值的最大值,t,tm+1,作为ψ(t,·,tm+1)=maxut> u:1>u=1,u≥ 0, 定义g(x)=ψ(ρ(Lx)-α, . . . , ρm(Lmx)-αm,0)。然后,上述精确的惩罚公式可以写成(3.1)G(η)=minηλkxk- u>x+ g(x)s.t.1>x=1,kxk∞≤ B.我们期望(3.1)的解收敛到(2.2)的解η→ 0.下一个结果证实了这一说法,并表明存在一个下限η*对于惩罚参数,它保证我们可以构造(2.2)的ε-最优解,从ε-最优解到G(η)的适当平滑版本*).定理3.1(惩罚表示)。

13
能者818 在职认证  发表于 2022-5-7 01:37:29
假设存在一个投资组合z,>z=1,kzk∞≤ B、 使得z严格满足所有广义谱风险约束,即ρk(Lkz)<αk,对于k=1,m、 定义gmax(x)=max1≤K≤m{ρk(Lkx)-αk}。设Pudenote为最优值P的任何上界*光谱风险投资组合选择问题(2.2)。假设x是η为的问题(3.1)的ε-最优解*=|gmax(z)| Pu- (u>z)- λkzk)。然后,^x=1+θ·x+θ1+θ·zi是谱风险投资组合选择问题(2.2)的ε-最优解,其中θ=max{gmax(x)/|gmax(z)|,0}。证据该证明与Iyengar等人[2011]的定理2相同。我们希望使用基于梯度的算法来解决问题(3.1)。然而,ψ和谱风险测度ρ都是其参数的非光滑函数;因此,g(x)=ψ(ρ(Lx)-α, . . . , ρm(Lmx)-αm,0)是投资组合x的一个非光滑函数。我们对函数g(x)使用光滑近似gνδ(x),例如g(x)-ν -δ ≤ gνδ(x)≤ g(x)。在附录A中给出了gνδ的构造细节。通过将(3.1)中的g(x)替换为gνδ(x),我们得到了以下光滑优化问题:gνδ(η)=minηλkxk- u>x+ gνδ(x)s.t.1>x=1,kxk∞≤ B.由于基于情景的光谱风险投资组合选择问题本身是一个近似于随机优化问题的问题,其中损失的分布是已知的,因此人们不希望以非常高的精度来解决这些问题,即10阶的解算误差-12.在实践中,误差为10-3是足够的。因此,在大多数实际情况下,为适当选择的ν和δ值解决平滑问题是有效的。此外,在第4节中,我们展示了平滑显著提高了这个问题的计算可处理性。3.2. 一阶近似梯度算法。SpecRiskAllocate显示在算法1中。

14
nandehutu2022 在职认证  发表于 2022-5-7 01:37:33
SpecRiskAllocate通过近似求解η递减序列的平滑惩罚问题序列Gνδ(η),计算出谱风险约束投资组合选择问题(2.2)的ε-最优解。韦伯金与η← η,然后逐渐降低η← cη,其中cη<1。这种延续方案确保了SpecRiskAllocate在利润率远未达到最优时能够采取较大的措施。在定理3.1中,我们证明了η的存在*> 这样我们可以通过求解Gνδ(η)来恢复(2.2)的ε-最优解*), i、 e.我们不必把η一直开到零。由于求解Gνδ(η)所需的数值精度随着η和0的增加而增加(参见Nocedal和Wright[1999]),因此该特性增加了SPEC的稳定性。在实践中,只要迭代x(j)中的相对变化小于公差,并且迭代x(j)是-可行的,我们就停止,即gmax(x(j))≤ . SpecRiskAllocate调用FISTA来近似求解η固定值的Gνδ(η)。FISTA是一种近端梯度法,即一种梯度下降算法,带有额外的近端项来控制步长。参数τ控制FISTA要求的精度。我们需要τ&0,以确保精度增加为η&0。接下来,我们将介绍FISTA的一些基本特征。有关算法的详细信息,请参阅Beck和Teboulle(2009)的读者。算法2中显示了我们使用的FISTA的具体实现。FISTA通过迭代求解一系列形式为(3.2)minηλkxk+ξ>(x)的二次优化问题来计算Gνδ(η)的近似解- y) +Ckx- yk,s.t.1>x=1,kxk∞≤ B、 式中ξ=-ηu>y+gνδ(y)= -ηu + gνδ(y),C是梯度ξ的Lipschitz常数。

15
大多数88 在职认证  发表于 2022-5-7 01:37:37
虽然可以显式计算其值,但通常是算法1(η,cη,τ,cτ,ν,δ,)1:η← η2: τ ← τ3:C← 14:x←n5:repeat6:^x← x7:(x,C)← FISTA(^x,C,η,τ,ν,δ)8:η← cηη9:τ← cττ10:until(kx-^xk/k^xk<)和max1≤K≤m{ρk(Lkx)- αk}<11:返回xAlgorithm 2函数FISTA(x,C,η,τ,ν,δ)1:ζ← 1.52:t← 13:y← x4:repeat5:^x← x6:^t← t7:ξ← 计算半径(y,ν,δ)8:repeat9:x← argminnηλkzk+ξ>(z- y) +Ckz- yk:1>z=1,kzk∞≤ Bo10:F← -ηu>x+ηλkxk+gνδ(x)11:Q← ηλkxk- ηu>y+gνδ(y)+ξ>(x- y) +Ckx- yk12:C← Cζ13:直到F<Q14:C← C/ζ15:t←1+√1+4^t16:y← x+t-1t(x-^x)17:直到kx-^xk/k^xk≤ τ18:在Lipschitz常数C太大的情况下返回(x,C)。在实践中,使用回溯法计算C更有效。函数FISTA在算法2的第8–13行中进行回溯。FISTA保证在O(/ε)迭代中收敛到ε-最优解。然而,在实践中,最坏情况的界限往往过于保守。当利润率的相对变化低于阈值τ时,我们终止FISTA迭代。当η减小时,我们使τ逐渐变紧。让y(k)表示当前的FISTA迭代。自从-ηu>x+gνδ(x)是一个具有Lipschitz连续导数的凸函数,因此二次函数ξ>(x-y) +Ckx-这是一个上限-ηx+δ。这确保了在新的迭代y(k+1)时,真实目标的改善至少与二次近似(3.2)预测的改善一样大。二次近似(3.2)仅使用一阶梯度信息。

16
大多数88 在职认证  发表于 2022-5-7 01:37:41
因此,用于求解νδ(η)的算法可以扩展到更大的问题规模,并且与使用所有Hessian信息的全边界二次近似相比,随着问题规模的增加,算法也更加稳定;然而,以更大的迭代次数为代价。最后,注意(3.2)相当于原子ηλkxk+(ξ)- Cy)>x+Cx>x,s.t.1>x=1,kxk∞≤ B、 也就是说,FISTA迭代是通过求解一个决策变量数量等于资产数量的“惩罚可分离凸”来计算的。因此,如果有机会使用均值-方差解算器,这个问题可以非常有效地解决。在附录B中,我们展示了如何使用单个一维搜索来解决这个问题。在实际情况下,如果投资组合选择问题可能有额外的线性约束,投资组合经理可以使用均值-方差或二次解算器来计算FISTA迭代。在附录B中,我们还展示了如何使用pmk=1dk+1一维搜索计算梯度ξ。4.数值结果。在本节中,我们给出了数值实验,表明在处理谱风险约束投资组合选择问题的大型实例时,SpecRiskAllocate优于LP公式。接下来,我们说明了在选择一个投资组合来对冲现有投资组合的风险时,考虑几种风险模型以克服风险参数的不确定性的便利性。4.1. 病态和问题缩放结果。我们在谱风险约束投资组合选择问题(2.2)的随机实例上测试了我们的算法。我们生成了具有不同资产数量n值的实例。所有实例的光谱风险约束数量均为m=5。对于每个spectralrisk度量,我们将ES组件的数量固定为d=3。所有风险模型的损失次数都设置为相等。

17
何人来此 在职认证  发表于 2022-5-7 01:37:44
我们随机生成了预期回报百分比向量u、基于情景的损失矩阵Lk、ES权重向量γk和ES水平βk∈ [0.9,1)d.光谱风险预算αk设置为αk-0.1 |αk |,其中^αkis是投资组合^x=/n1的第k个谱风险度量值ρk(Lk^x)。我们将杠杆率设为B=1,将控制投资组合稀疏性的参数设为λ=0或λ=λ*, λ在哪里*=u>x*/kx*k、 安德斯*= argmax{u>x:1>x=1,kxk∞≤ B} 。对于生成的所有实例,λ的值*处于[0.01,0.03]区间。SpecRiskAllocate参数设置如下η=10,cη=0.99,τ=10-4,cτ=0.95,ν=0.01 min |αk |,δ=0.01,=10-2.我们使用SpecRiskAllocate的MATLAB实现解决了谱风险约束稀疏投资组合选择问题的每个实例。对于每种情况,wealso都使用最先进的LP求解器Gurobi[GurobiOptimization,Inc.,2014]求解LP公式(2.3),最优性公差为=10-2.我们使用Gurobi 5.0.2版和Gurobi 5.6.0版解决了这些问题。我们的结果表明,尽管Gurobi的性能从一个版本到另一个版本有了显著的改善,但我们的算法仍然比这种先进的LP解算器具有显著的优势。我们使用古罗比的MATLAB接口从MATLAB中调用了古罗比。MATLAB在6核、3.07GHz英特尔至强处理器上运行,66GB内存运行Ubuntu操作系统。扰动t解算器uSσSσS/uS0。05 Gurobi 5.0.2 132.53 202.75 1.52980.05 Gurobi 5.6.0 111.77 4.30 0.03850.05 Specrisk分配82.12 0.41 0.00500.10 Gurobi 5.0.2 107.14 169.25 1.57970.10 Gurobi 5.6.0 118.65 13.59 0.11450.10 Specrisk分配81.96 0.75 0.0092表1解决100个扰动问题所需迭代次数的平均值、标准差和变异系数。

18
kedemingshi 在职认证  发表于 2022-5-7 01:37:47
由于LP公式的病态性,Gurobi情况下的方差远高于SpecRiskAllocate情况下的方差。如第3节所述,LP配方(2.3)非常病态。这表现在解决类似问题所需的迭代次数差异很大,即参数值的扰动非常小。我们现在从经验上证明,当使用SpecRiskAllocate解决(2.2)时,不会遇到这个问题。我们生成了一个(n,n)=(1001000)的基本实例。接下来,我们创建了S=100个扰动实例,方法是将损失矩阵Lsk的每个条目`sijk,对应于第S个扰动问题,设置为`sijk=`ijk+t |`ijk |εsijk,其中∈ {0.05,0.1}和εsijk是I.I.D.标准正态随机变量。表1显示了Gurobi和SpecRiskAllocate(本例中为总FISTA迭代)所需迭代次数的平均u和标准偏差σ,以求解S=100扰动实例。表1还显示了求解扰动实例所需迭代次数的变化系数σS/u。SpecRiskAllocate要求的迭代次数的变异系数小于1%,其中Gurobi 5.0.2(分别为Gurobi 5.6.0)的相同迭代次数约为158%(分别为11%)。很明显,这种病态完全是通过特殊的方法解决的。在第3节中,我们认为LP(2.3)中的约束和变量数量非常大。因此,我们预计使用LPM公式解决大型实例的时间会很长。相比之下,我们希望SpecRiskAllocate能够在非常合理的时间内解决大型实例。为了支持这些说法,我们为每对参数(n,n)生成了10个随机实例,并用稀疏性参数λ集等于λ来求解它们*或者0。表2报告了这项问题比例研究的结果。

19
可人4 在职认证  发表于 2022-5-7 01:37:50
标有“err”的列列出了SpecRiskAllocate找到的最佳值相对于Gurobi找到的最佳值的平均相对误差。除了最小规模的问题,即(n,n)=(10100),Specrisk发现了一个目标值在最优值0.5%以内的解决方案,并为(n,n)参数化的11个问题中的7个找到了最优解。对于每种情况,我们都设置了1小时的最大解决时间限制。标有“限制”的列列出了在时间限制内无法解决的实例数。标有“time(s)”的列列出了以秒为单位的平均运行时间,其中我们为那些达到解决方案时间限制的实例提供了3600秒的运行时间。请注意,对于三个最大规模的问题,即(n,n)∈ {(100,15000),(1000,10000),(1000,15000)},古罗比在时间限制内至少无法解决1个实例,最多无法解决10个实例中的9个。尽管Gurobi 5.6.0的运行时间对于较小的问题显示出了显著的改进,但它仍然难以解决与两个最大参数值对应的实例。相比之下,SpecRiskAllocate能够解决所有问题,比Gurobi至少快一个数量级。

20
nandehutu2022 在职认证  发表于 2022-5-7 01:37:53
请注意,运行时间报告λn Nerr Gurobi 5.0.2 Gurobi 5.6.0 specrisk allocate(%)限制时间限制时间限制时间λ*10 100 3.1 – 0.01 – 0.02 – 0.1210 500 – – 0.51 – 0.12 – 0.2410 1000 0.1 – 1.54 – 0.24 – 0.2910 1500 – – 0.5 – 0.48 – 0.6100 1000 – – 4.61 – 2.93 – 3.21100 5000 0.1 – 230.37 – 18.96 – 14.19100 10000 – – 497.36 – 54.33 – 15.73100 15000 – – 98.38 – 98.58 – 67.71000 5000 0.1 1 943.61 – 232.74 – 63.61000 10000 – 1 1050.15 1 1199.99 – 247.441000 15000 – 6 2538.93 5 2238.47 – 440.0710 100 0.2 – 0.01 – 0.01 – 0.2510 500 0.5 – 0.27 – 0.07 – 0.2810 1000 – – 0.13 – 0.13 – 0.3910 1500 0.2 – 0.27 – 0.22 – 0.57100 1000 – – 1.61 – 1.55 – 13.76100 5000 – – 133.78 – 10.61 – 42.77100 10000 – – 26.02 – 25.56 – 94.97100 15000 – – 41.8 – 40.88 – 68.791000 5000 – – 210.29 – 93.45–142.001000 10000–9 3274.86–286.17–408.131000 15000–9 3268.33 5 1960.7–420.17表2关于Gurobi的SpecRiskAllocate平均错误(err),在找到解决方案之前达到运行时间限制1小时的问题数量(共10个),以及在解决光谱风险约束的portfoliooptimization问题的随机实例时Gurobi和SpecRiskAllocate的平均运行时间。因为古罗比不包括设置LP所需的时间。还请注意,当稀疏性参数λ=0时,在较小的实例上SpecRiskAllocate比Gurobi慢,但在最大的实例上更快;此外,与古罗比相比,SpecRiskAllocate能够在不到一小时内解决所有实例。在这种情况下,SpecRiskAllocate的速度较慢,因为当我们不通过惩罚其`-norm来正则化Portfoliob时,子程序Efista(参见算法2)中的停止标准更难实现。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-7 19:33