楼主: nandehutu2022
1596 37

[量化金融] 统计行业分类 [推广有奖]

11
mingdashike22 在职认证  发表于 2022-5-25 10:37:10
聚类收益没有考虑到这种偏斜,无意中,我们可能会将完全由于偏斜波动率因素而没有高度相关性的收益聚类在一起。一个简单的解决方案是对归一化的returnseRis=Ris/σi进行聚类,其中σi=Var(Ris)是序列方差。这样我们就可以算出偏差波动率因子。实际上,Cov(eRi,eRj)=Cor(Ri,Rj)=ψij(我们抑制了序列协方差Cov和相关Cor中的指数s)是具有ψij的样本相关矩阵≤ 然而,正如我们将在下文中看到的,聚类风险指数虽然产生了比聚类风险指数更好的结果,但也不太理想。下面是两个简单的论点,为什么会这样。聚类Cadefine K投资组合,其权重由我们的聚类决定。当我们将Xis=Ris聚类时,中心是Yas=平均值(Ris | i∈ Ca),即我们有相等的权重ωi≡ 1对于上述K个投资组合,我们(在K-means算法的每个操作步骤)根据这些回报与这些同等权重的投资组合的接近程度对Ris进行分组。然而,同等权重的投资组合本身是次优的。投资组合也按ωi加权≡ 1/σi,如果我们聚集Xis=eRis,我们得到的结果,其中中心是Yas=平均值(Ris/σi | i∈ 加利福尼亚州)。因此,最大化Sharpe比率的投资组合(Sharpe,1994)通过反向方差进行加权:样本相关矩阵包含的信息少于潜在的回报时间序列。因此,它对收益的序列平均数一无所知,只知道与这些平均数的偏差。更准确地说,在近似情况下,样本协方差矩阵是对角的。在聚类的背景下,对于ωi=1/σi的聚类,将样本协方差矩阵的对角线部分作为全样本协方差矩阵是奇异的是有意义的。

12
mingdashike22 在职认证  发表于 2022-5-25 10:37:14
如果我们将Xis=bRis,其中bRis=Ris/σi,那么我们得到这样的投资组合,所以中心是Yas=平均值(Ris/σi | i∈ 加利福尼亚州)。正如我们将看到的那样,集群bris的indeedoutheclusteringeris。我们能以简单直观的方式理解这一点吗?通过clusteringeRis=Ris/σi,我们已经考虑了波动率依赖性。那么,为什么clusteringbRis=Ris/σi工作得更好呢?Clusteringer本质上是将样本中高度相关的股票(在不同程度上)组合在一起。然而,并不能保证它们在样本外会保持高度相关性。直觉上,很明显,波动率较高的股票更有可能与其各自的集群不相关。这就是为什么通过另一个因素或σiinbRis(与威瑟利斯相比)进行抑制会导致更好的表现:在内部,它抑制了那些波动性股票对集群中心Yis的贡献。3.2.1一个小的调整。因此,我们希望clusterbRis=Ris/σi。在实践中,这有一个潜在的问题。如果一些股票的波动率很低,我们可能会对这些股票有很大的兴趣。为了避免计算中的任何潜在问题,我们可以通过(MAD=平均绝对偏差):bRis=Risσiui(6)ui=σiv(7)v=exp(中位数(ln(σi))来“平滑”这一点- 3 MAD(ln(σi)))(8)对于所有小于1的ui,我们设置ui≡ 1、这是我们在下面使用的定义(除非另有说明)。此外,上述中值(·)和MAD(·)是横截面的。3.3多层次聚类如果我们希望构建一个单一层次的统计行业分类,我们可以通过K均值将(6)中定义的聚类划分为K个聚类。如果我们希望构建一个多层次的统计行业分类(见第2节),该怎么办?我们在此讨论了两种方法,我们可以称之为“自下而上”和“自上而下”。3.3.1自下而上聚类表示我们希望构建一个P级分类。

13
大多数88 在职认证  发表于 2022-5-25 10:37:17
我们可以把它构造成一个序列:K→ K→ ··· → KP(K>K>··>KP),其中我们首先构建了- 1、即使是na≤ D- 1样本协方差矩阵虽然是可逆的,但具有高度样本外不稳定的对角元素。相比之下,对角线元素,即样本方差σi,即使是短期回溯,也更加稳定。因此,在定义ωi时使用它们是有意义的。这是一种可能的调整。其他的产生类似的结果。W、 r.t.分类级别;“自下而上”不应与凝聚聚类混淆。使用Kclusters的粒度级别,然后我们将这些Kclusters聚类为更少的Kclusters,以此类推,直到使用Kclusters达到最后一个也是最小粒度级别。给定整数K,KP,问题是在每个步骤中使用什么作为回报。让这些返回值为[R(u)]i(u),s(即我们聚类[R(u)]i(u),sinto Kuclustersvia K-means),其中u=1,P,i(u)=1,Ku-1,我们方便地定义了K=N,因此i(1)是与i相同的指数。如上所述,我们可以取[R(1)]is=bRis。那么[R(u)]i(u),sat更高的水平u>1呢?我们有一些选择。LetCa(u)={i(u)| i(u)∈ Ca(u)},a(u)=1,Ku是每个级别u的簇。一、 e.对于0<u<P,指数a(u)与指数I(u+1)相同。然后我们可以(在2<u以下的第二行中≤ P)[R(2)]i(2),s=平均值(Ris | i∈ {1,…,N})(9)[R(u)]i(u),s=平均值([R(u- 1) ]i(u-1) ,s | i(u- (1)∈ Ca(u-1) )(10)其中,我们可以取(i)Ris=Risand[R(u)]i(u),s=[R(u)]i(u),s,或(ii)Ris=bRisand[R(u)]i(u),s=[bR(u)]i(u),其中(Var(·)以下是序列方差)[bR(u)]i(u),s=[R(u)]i(u),sσi(u)(11)σi(u)=Var([R(u)])i(u),s) (12)这两个定义在我们的回溯测试中产生了非常相似的结果(见下文)。3.3.2在我们刚才讨论的自底向上聚类方法中的另一个小调整,高级别的聚类往往彼此高度相关。

14
kedemingshi 在职认证  发表于 2022-5-25 10:37:21
一、 例如,相应的集群回报中有一个突出的“市场”(或“整体”)模式成分。也就是说,在更高水平u>1时,成对(i(u)6=j(u))序列相关性[ψ(u)]i(u),j(u)=Cor([R(u)]i(u),s,[R(u)]j(u),s的平均值是实质性的。为了避免这种情况,我们可以简单地在更高水平上横向降低回报,即,对于u>1,我们用[R(u)]i(u),sby[R(u)]i(u),s- 平均值([R(u)]i(u),s | i(u)∈ Ca(u))。然而,1级(u=1)的横截面贬低会导致较差的性能。凭直觉,我们可以理解如下。在最细微的层面上贬低会消除“市场”模式。与更高级别的回报率[R(u)]i(u)、s、u>1不同,1级回报率之间的相关性并不那么高,因此保持“市场”模式不变是值得的,例如,从统计上看,高贝塔股票预计会聚集在一起,而低贝塔股票预计会不同地聚集在一起。因此,结果是我们降低了更高级别的回报,但没有降低一级回报。我们将在下面讨论这些集群编号“应该”是什么。例如,见(Bouchaud和Potters,2011),(Kakushadze和Yu,2017)。因此,第一个[λ(u)](1)和更高的[λ(u)](p)之间存在很大差距,p>1,[ψ(u)]i(u),j(u)的特征值;特征值按递减顺序排列:[λ(u)](1)>[λ(u)](2)>。这实质上从ψij的谱分解中去掉了第一个主成分。3.3.3聚合多个样本如上所述,k-means不是确定性算法。除非预设了初始中心,否则该算法从随机初始中心开始,并在每次运行中收敛到不同的局部最小值。这里没有灵丹妙药:尝试“猜测”初始中心并不比“猜测”哪里更容易,例如,全局最小值在哪里。

15
kedemingshi 在职认证  发表于 2022-5-25 10:37:24
那么,一个人该怎么办呢?一种可能是简单地接受这样一个事实,即每次跑步都会产生不同的答案。在给定的上下文中,我们必须解决的问题是,实际应用程序中的性能是从一个这样的随机运行稳定到另一个这样的随机运行,还是到处都是。正如下面我们将看到的,在我们的回溯测试中,令人高兴的是,尽管每次k-means都会产生不同的行业分类,但性能非常稳定。所以,这可能是故事的结尾。然而,我们可以做得更好。这个想法很简单。如果我们将多次运行(或抽样)的不同行业分类汇总为一个,会怎么样?问题是怎么做。假设我们有M次跑步(M 1) 。每次运行都会产生具有K个集群的行业分类。允许Ohmria=δGr(i),a,i=1,N、 a=1,K(此处Gr:{1,…,N}7→ {1,…,K}是股票和集群之间的映射),是每次运行的二进制加载矩阵,由r=1,M、 在这里,我们假设我们知道如何从每次运行中正确排序(即对齐)K个集群。这是一个非常重要的假设,我们稍后会回到这里。然而,假设我们知道如何做到这一点,我们可以聚合载荷矩阵Ohmriainto单个矩阵Ohmia=PMr=1Ohmria。现在,这个矩阵看起来不像二进制加载矩阵。相反,它是一个发生计数矩阵,即,它计算在M个采样过程中,给定股票被分配给给定集群的次数。我们需要构建一个映射G,这样一个且只有一个种群属于K簇中的每一个。最简单的标准是将给定股票映射到其中的集群OhmIa为最大值,即所述股票最频繁出现的位置。需要注意的是,这样的集群可能不止一个。

16
可人4 在职认证  发表于 2022-5-25 10:37:28
解决这种歧义的一个简单标准是将所述股票分配给累积次数最多的集群(即,我们取qa=PNi=1eOhm如果出现上述歧义,则将该股票分配给qa最大的集群)。在不太可能出现的情况下,仍然存在歧义,我们可以尝试做更复杂的事情,或者我们可以简单地将此类股票分配给指数a值最低的集群——通常,系统中存在大量噪音,停留在此类细节上根本不会产生效果。然而,我们仍然需要解决一个松散的问题,也就是说,我们的假设是,来自不同运行的聚类在某种程度上是一致的。实际上,每次运行都会产生sk集群,但i)它们不是相同的集群,没有简单的方法来映射它们,尤其是当我们有大量的运行时;和ii)即使集群相同或相似,它们也不会被排序,即一次运行的集群的顺序通常与另一次运行的集群的顺序不同。对于术语的不确定性,我们关注1级集群;它直接适用于所有级别。此外,上标r在OhmRIA和Gr(i)是指数,而不是幂。因此,我们需要一种从不同样本中“匹配”聚类的方法。同样,这里也没有什么灵丹妙药。我们可以做很多复杂而做作的事情,但最后却没有太多东西可以展示出来。一个简单实用的解决方案是使用方法将不同运行的集群对齐。每次运行标记为r=1,M、 除其他外,还产生了一组集群中心Yras。我们可以将它们逐行“引导”到一个(KM)×d矩阵中,其中ea=a+(r- 1) K取值sea=1,(KM)。我们现在可以通过K-means将眼睛聚类为K个聚类。这将把ea的每个值映射到{1,…,K},从而将K个集群从每个运行映射到{1,…,K}。

17
可人4 在职认证  发表于 2022-5-25 10:37:33
这样,我们就可以对齐所有簇。“陷阱”是,无法保证每个M次运行的K个集群中的每个集群都将唯一映射到{1,…,K}中的一个值,即,我们可能在一天结束时有一些空集群。然而,这是确定的,我们可以简单地丢弃此类空簇并聚合(通过上述程序)数量较少的K<K簇。一、 最后,我们将使用Kclusters对行业进行分类,这可能会少于集群K的目标数量。这不一定是坏事。丢弃的集群可能首先是多余的。另一个明显的“陷阱”是,即使产生的集群数量也不确定。如果我们多次运行该算法,我们将得到不同的K值。然而,正如我们将在下面看到的,聚合过程提高了我们的backtests中的性能,尽管Kis在运行到运行期间也非常稳定。在附录Awe中,给出了自下而上集群的R源代码,其中包含了我们上面讨论的各种功能,包括多级行业分类、调整和聚合。3.3.4自上而下的聚类在上面我们讨论了自下而上的聚类。我们可以反过来做自顶向下的聚类。一、 例如,我们可以将P级分类构建为sequenceKP→ KP公司-1.→ ··· → K→ K(如前所述,K>K>···>KP)。更方便的是,我们从股票和集群的整个宇宙开始,i=1,N、 进入LP=KPclusters。在级别-(P- 1) ,我们将每个P级聚类Ca(P)={i | i∈ Ca(P)},a(P)=1,KP,进入LP-1集群。我们通过聚集thereturnsbRis来实现这一点∈ Ca(P)通过k-均值进入LP-1集群。在级别-(P-2) ,我们将每一级分类-(P- 1) 簇Ca(P-1) ={i | i∈ Ca(P-1) },a(P- 1) =1,KP公司-1,intoLP-2集群。我们通过对returnsbRis进行聚类来实现这一点∈ Ca(P-1) 通过k-Meansto LP-2集群。

18
可人4 在职认证  发表于 2022-5-25 10:37:36
等等在第0个近似值中,KP-1=LP-1KP,KP-2=LP-2KP-1,依此类推,所以K=K*=QPu=1Lu。然而,如果在某种程度上,我们有一些簇Ca(u)和na(u)≤ Lu,那么我们将该集群保持不变,并且本文附录A、附录B和附录C中的源代码不是为了“花哨”而编写的,也不是为了速度或任何其他方式而优化的。其唯一目的是以简单易懂的方式说明正文中描述的算法。一些法律术语见附录D。更一般地说,我们可以用自己的[L(a(P))]P对每个P级集群进行非均匀聚类-1、请注意,与自下而上的聚类相比,因为这里我们是在“倒退”,所以可以方便地使用标记股票的指数i来标记每个级别上每个聚类的元素。不对其进行集群,即我们将其向前“滚动”,保持不变。因此,我们可以得到K<K*在最细粒度级别-1。此外,我们可以聚合多个采样,而不是简单地通过单个采样方法进行聚类。然后在任何级别-u,我们可以将给定的簇Ca(u)聚类为Lu或更少的簇。注意,与自下而上的方法相比,由于我们在这里直接与returnsbRis合作,因此在任何层面上都不存在横截面贬低。在附录B中,我们给出了自顶向下集群的R源代码,包括通过多个采样进行聚合。3.3.5松弛聚类代替不确定的k-均值,我们可以使用其他类型的聚类,例如层次聚集聚类。让我们在此关注一个一级分类,因为我们总是可以将其概括为如上所述的多级情况。因此,我们有NStock,我们希望将它们聚类到K个集群中。如果K不是预设值,我们可以使用链接(Sibson,1973)等(参见,例如,(Murtagh和Contreras,2011))。

19
nandehutu2022 在职认证  发表于 2022-5-25 10:37:39
如果我们希望重置K,那么我们可以使用类似的方法,只是必须对其进行调整,使所有观测值以某种方式压缩到K个簇中。我们在附录C中给出了一个这样的算法的R代码。基本上,它是一个松弛算法,如上所述,是clustersbRis(不是Ris)。两个D向量B和B之间的距离D(i,j)就是R中的欧几里德距离。初始聚类包含距离最小的i和j。如果某些iand j(i6=i,i6=j,j6=iandj6=j)的D(i,j)小于所有(`6=iand`6=j)的D(i,`)和D(j,`)中的较小者,则iand j形成第二个簇。否则,将“最小化D(i,`)或D(j,`)”添加到第一个簇中。这一直持续到有K簇为止。一旦我们有了K个集群,我们只能添加到这些集群中。4回溯测试利用与中相同的回溯测试程序,对上述构建统计行业分类的算法进行回溯测试(Kakushadze,2015b)。本小节的其余部分紧随第6节的大部分内容。4.1注释:股票价格的时间序列,其中i=1,N标记库存,s=1,2。标记交易日期,s=1对应于时间序列中最接近的日期。上标O和C(未调整的开盘价和收盘价)以及AO和AC(完全调整分割和股息的开盘价和收盘价)将区分相应的价格,因此,例如,PCisis是未调整的蛮力算法,在每一步从矩阵中删除行和列XD(i,j)太慢。我们在附录C中给出的R源代码实际上比这更有效。然而,它仍然比我们上面讨论的基于k-means的算法慢很多。我们在这里“重述”它不是为了重复,而是为了使我们在这里的陈述是独立的。收盘价。

20
mingdashike22 在职认证  发表于 2022-5-25 10:37:42
Visis是未调整的日交易量(以股份计)。此外,对于每个日期,我们将隔夜收益定义为前一个收盘至未平仓收益:Eis=lnPAOis/帕西,s+1(13) 该回报将用于定义平均反向PHA中的预期回报。我们还需要close to close returnRis=ln帕西/帕西,s+1(14) 这些收益的样本外(见下文)时间序列将用于构建风险模型。EIS和RIS定义中的所有价格均已完全调整。我们假设:i)投资组合以开放价格POI在开放式融资中建立;ii)在当天收盘时进行清算,因此这是一个纯粹的日内alpha,以收盘价PCis进行融资;iii)没有交易成本或延误–我们的目标不是建立一个现实的交易策略,而是测试各种统计行业分类的相对绩效。每个股票的损益∏=HisPCisPOis公司- 1.(15) 他持有的美元在哪里。通过Qis=2 | His |/POI计算每天每只股票的买入加卖出股份(建立多笔清算交易)。4.2宇宙选择为了简单起见,我们根据通过定义的平均每日美元交易量(ADDV)来选择我们的宇宙(请注意,每个日期的Ais都不在样本范围内):Ais=mmXr=1Vi,s+rPCi,s+r(16)我们取m=21(即一个月),然后将我们的宇宙按ADDV排名前2000位。为了确保我们不会无意中引入universe selectionbias,我们每月(准确地说,每21个交易日)重新平衡一次。一、 例如,我们将我们的5年回溯测试周期(见下文)划分为21天的间隔,我们使用ADDV计算宇宙(反过来,ADDV是基于立即后退该间隔的21天周期计算的),并在整个该间隔期间使用该宇宙。

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

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