资产类别(asset class),是指一群具有相似特性或遵循相同监管规定的投资品。这一定义中,未指明“相似”是多么相似,也未说明“特性”或“监管规定”具体指什么,因为显然按照不同角度以及不同的标准,资产类别可以有多种具体的定义和分类方法。
为什么要考虑资产分类这一问题?
资产分类是投资研究中的一个必要过程。
首先,通过聚类,对研究范围进行简化,更容易抓住主线逻辑。
第二,通过找出投资标的之间的相似性,可以对投资标的的性质以及价格驱动因素有初步的了解。
第三,进行资产分类后可以投资于每一类别中的典型品种,简化了交易过程。
由于资产分类标准的多元性,以及在投资过程中应当根据策略需求划分合适的资产类别,因此有针对性地进行资产分类是有必要的。例如,在运用宏观经济研究能力进行大类资产配置时,资产类别的划分应体现受宏观经济因素驱动的特性,而在进行中高频交易时,资产类别的划分应体现受流动性和市场博弈因素影响的特性。
资产类别划分思路
一种最为常见的大类资产划分方法,即将资产分为:权益类、固定收益类以及大宗商品,有时候还会加上“另类投资品”(可以视为“其他”类,常以房地产信托投资基金为代表)。这种分类方式既然被冠以“大类”的定语,自然十分粗糙。
回归本源,资产分类应当以资产价格走势的相似性为基准。视标准要求严格程度的不同,可分为最为粗放的“大类资产”,也可精细至每项投资品都是单独的分类。
且由于“相似性”是可以随着时间变化的,如果允许资产类别内的成份随着时间而调整,那么可以产生十分简化的分类集合。例如,一般权益类资产是根据公司所属行业进行分类的,但如果允许动态调整,那么可以根据Fama and French (1993) 或Fama and French (2015)将权益资产大致分为3类或5类,同样有很高的代表性。
进一步将思路打开,可以意识到资产分类的流程中应当允许资产重构——将资产进行组合、拆分等等操作并创造出新的资产。例如,可以通过信用债和利率债的组合创造CDS,它对企业的偿债能力有更好的代表性。
1. 基于时间序列的相似性
这是一种从数据出发的思路。
笔者本以为这种思路在机器统计学和机器学习领域有很多经典且广泛应用的算法,然而稍微查询后却发现方法并不多。有人指出,时间序列中蕴含的信息包括了每个位置上值的信息,以及序列形状的信息,因此较向量数据更为复杂。
一种常被提到的方法是用DTW(Dynamic Time Warping)定义时间序列之间距离,再用k-NN(k=1)算法做时间序列聚类,然而这种方法的算力消耗较大。
Python中用于时间序列机器学习的软件包tslearn中提供了三种聚类方法,可供参考,分别是:GlobalAlignmentKernelKMeans,KShape,以及TimeSeriesKMeans。
另一种思路是数据降维算法。典型的算法是PCA(主成分分析),应用这种算法的前提是允许资产重构。
网络博主Pulkit Sharma总结了12种常见的数据降维算法,分别是:
- Missing Value Ratio
- Low Variance Filter
- High Correlation Filter
- Random Forest
- Backward Feature Elimination
- Forward Feature Selection
- Factor Analysis
- Principal Component Analysis
- Independent Component Analysis
- Methods Based on Projections
- t-Distributed Stochastic Neighbor Embedding (t-SNE)
- UMAP
具体的算法解释以及Python代码可参考博客原文或者博客翻译。
2. 基于资产价格的驱动因素
这是一种从逻辑出发的思路。
从逻辑出发,检查大类资产分类中权益、固收和大宗商品之间的差异。根据其定价原理,权益价格是企业未来收益的折现,债券价格是无风险的现金流加上违约、流动性等风险带来的溢价,大宗商品价格则是供求关系的均衡。由于价格决定机制的不同,可以出现“商品价格涨,股价跌”、“股价涨,债券跌”等任意组合的情况。例如在完全竞争市场中,企业生产原料价格上涨导致产品价格上涨,这种情况下商品价格上涨,但企业的利润空间被压缩因而股票价格会下跌。又如企业通过风险投资向新型商业模式转型的情况下,由于新模式的定价水平高,企业的股价有所提升,同时由于企业的现金流水平不确定性提高,企业的债券违约风险也有所上升。
然而很难有一种“界限分明的逻辑”。比如房地产行业和家电行业的股票,虽说是两个不同行业,但都受到所谓地产经济周期的驱动。随着经济环境的改变,不同类别资产之间的关系也会时而分明时而紧密地变化。
深究的话,无论是时间序列数据之间距离的度量,还是逻辑概念,都有本质上的模糊不清。不同资产分类方法得到的结果,可以是相似的,同时又微妙地不同。
按照稍微精细一些的产业逻辑或市场划分,则大宗商品和固定收益资产可以划分为以下类别:
- 大宗商品,包括:贵金属、能源、黑色系金属、有色系金属、化工品、农产品
- 固定收益证券,包括:资金市场、利率债、信用债
但权益类资产的划分远没有这样简单。行业内常采用的权益资产分类标准均是基于行业的,国际上的常用标准包括SIC/NAICS和GICS,国内的常用标准包括证监会行业分类标准、Wind行业分类标准和申万行业分类等,具体情况如下:
- SIC的全称为Standard Industrial Classification,由美国于1937年设立。该套标准被美国政府用于对产业活动进行分类,后来被英国等其他国家广为使用。1997年美国政府推出了用于替代SIC的NAICS(North American Industry Classification System),但许多机构,包括美国的SEC(Securities and Exchange Commission)仍在使用SIC分类标准。
- GICS全称为Global Industry Classification Standard,由MSCI公司和标准普尔公司于1999年开发。GICS的开发初衷就是供金融团体使用,实践中很多人也认为更适合应用于投资分析。
- 证监会行业分类标准是我国的官方标准。这套标准的结构类似SIC,更偏向于从经济活动的角度进行划分。实际上做投资分析时不大使用这个标准,总是有别扭的地方,比如制造业包含的股票数量太多,导致这一大类没有代表性。
- Wind行业分类标准由我国著名的金融讯息服务商Wind资讯开发。检视细节就会发现其主要参考了GICS,当然也是有一些区别的。鉴于Wind数据库在国内金融业的广泛使用,笔者观察Wind行业分类也是国内应用最广的一种标准。
- 申万行业分类由申银万国研究所推出。由于申万研究所在我国证券研究领域曾经有很高地位,这套分类方法也曾得到广泛使用。笔者翻看过其分类标准的说明文件,感到还是比较严谨的。这套分类标准的特点,首先是偏向于从生产者角度出发划分产业(GICS偏向从消费者角度出发,当然这种角度没有绝对),其次一级分类的类目比较多。申万分类现在使用者比例下降,原因一是从推广渠道方面天然地难以与Wind这种数据平台相竞争,二是指标更新和平台维护相对落后(网站很丑),三是笔者认为这套分类方法还是不如Wind的标准好用(所以说,会抄,真的也可以……)
相比较而言,笔者更倾向于使用GICS和Wind标准来划分国内外上市公司的类别。但任何分类标准都是有缺点的,这取决于使用环境。例如,从产业链的角度讲,建材与房地产开发分别属于房地产行业的上下游,但在Wind行业分类中,建材属于材料行业,而房地产开发属于房地产行业,未能直接体现出其产业关系。
笔者采用的资产分类体系及代表品种
笔者采用的资产分类体系(中国)及代表品种(括号中是其Wind代码)如下:
- 大宗商品
贵金属:黄金(GC.CMX)
能源:原油(CL.NYM),动力煤(ZC.CZC)
黑色系金属:螺纹钢(RB.SHF)
有色系金属:铜(CU.SHF),锌(ZN.SHF)
化工品:PTA(TA.CZC),甲醇(MA.CZC),玻璃(FG.CZC)
农产品:豆粕(M.DCE),豆油(Y.DCE),白糖(SR.CZC),鸡蛋(JD.DCE),棉花(CF.CZC) - 固定收益证券
资金市场:FDR007(M0329547),DR007(M0041653),SHIBOR1W(M0017139)
利率债:国债1Y(S0059744),国债5Y(S0059747),国债10Y(S0059749)
信用债:企业债AAA1Y(S0059771),企业债AAA5Y(S0059774),企业债AAA10Y(S0059776) - 权益类证券
能源:综合性石油天然气指数(882402.WI),煤炭与消费用燃料指数(882571.WI)
材料:化工指数(882202.WI)
工业:航天航空与国防指数(882420.WI),电气设备指数(882210.WI),工业机械指数(882427.WI),商业和专业服务指数(882103.WI),运输指数(882104.WI)
消费:食品、饮料与烟草指数(882111.WI),家庭与个人用品指数(882112.WI),汽车指数(882221.WI),纺织品、服装与奢侈品指数(882224.WI),休闲设备与用品指数(882223.WI),酒店、度假村与豪华游轮指数(882457.WI),教育服务指数(882574.WI),媒体Ⅱ指数(882108.WI),零售业指数(882109.WI)
医疗保健:医疗保健指数(882006.WI)
金融:银行指数(882115.WI),保险Ⅱ指数(882117.WI),多元金融指数(882116.WI)
信息技术:技术硬件与设备指数(882120.WI),软件与服务指数(882119.WI)
电信服务:电信服务指数(882009.WI)
公用事业:公用事业指数(882010.WI)
房地产:房地产指数(882011.WI)
其中权益类证券的分类主要参考了Wind行业分类标准并进行了删减。
资产分类体系代表性的验证
在选用资产分类方法时,常面临两难的处境——一方面我们希望分类体系尽可能简洁,另一方面又希望分类指数或代表型品种能够尽可能地解释其他所有资产类别的价格变化。简洁是很容易做到的,这里主要举例说明如何衡量分类体系的“解释能力”。
对于单一回归方程,R2可在一定程度上作为解释能力的代表。我们对每项资产进行回归,并将R2的平均值作为资产分类体系(解释变量)的解释能力的取值。具体代码如下:
import pandas as pd
# 样本时间为2019-10-08到2020-01-21
# 被解释变量包含商品期货、债券利率和股票等共3719项资产
# 解释变量共49个变量
dfy = pd.read_excel("yvariables.xlsx")
dfx = pd.read_excel("xvariables.xlsx")
dfy = dfy.fillna(method='ffill')
dfx = dfx.fillna(method='ffill')
npy = dfy.drop('Date',axis=1).values
npx = dfx.drop('Date',axis=1).values
from sklearn import linear_model
leny=len(npy[0])
# 这里直接取超参为0.1
clf = linear_model.Lasso(alpha=0.1)
r2list = []
for i in range(leny):
clf.fit(npx, npy[:,i])
esty = clf.predict(npx)
tss = sum((npy[:,i] - npy[:,i].mean())**2)
if(tss==0):
r2 = 0
else:
rss = sum((esty - npy[:,i])**2)
r2 = 1 - rss/tss
r2list.append(r2)
# 总体解释能力是体系指标对每个资产R方的平均值
print(sum(r2list)/len(r2list))
结果显示,样本时间内我们指标体系的代表性或解释能力为51.7%。
但需要注意的是,我们使用了Lasso,利用R2作为解释能力的指标并不完全合适。
R2的计算及其问题:
回归方程中,TSS(Total Sum of Squares)反映全部数据误差大小的平方和,ESS(Explained Sum of Squares)反映自变量与因变量之间的相关程度的偏差平方和,RSS(Residual Sum of Squares)是残差的平方和。具体公式如下:
\[
\begin{align}
TSS=\Sigma(y_i-\bar{y})^2 \ESS=\Sigma(\hat{y_i}-\bar{y})^2 \RSS=\Sigma(\hat{y_i}-y_i)^2
\end{align}
\]
R2的算式如下:
\[
R^2=1-RSS/TSS
\]
显然上式小于等于1,且如果等于1,说明方程的预测值和观测值均相等。但R2大于等于0需要一定的前提条件。
\[
\begin{aligned}
TSS &= \Sigma(y_i-\bar{y})^2 \&= \Sigma(y_i-\hat{y_i}+\hat{y_i}-\bar{y})^2 \&= \Sigma(e_i)^2 + 2\Sigma e_i(\hat{y_i}-\bar{y}) + \Sigma(\hat{y_i}-\bar{y})^2 \&= RSS + ESS +2\Sigma e_i(\hat{y_i}-\bar{y})
\end{aligned}
\]
由于在OLS回归中,残差项求和为0,且残差项与预测值线性不相关,因此有TSS=RSS+ESS
这在Lasso或其他一般的回归模型中基本都不成立。
原文地址:https://www.cnblogs.com/teaforinvestors/p/12229574.html