資產類別(asset class),是指一群具有相似特性或遵循相同監管規定的投資品。這一定義中,未指明「相似」是多麼相似,也未說明「特性」或「監管規定」具體指什麼,因為顯然按照不同角度以及不同的標準,資產類別可以有多種具體的定義和分類方法。
資產分類是投資研究中的乙個必要過程。
首先,通過聚類,對研究範圍進行簡化,更容易抓住主線邏輯。
第二,通過找出投資標的之間的相似性,可以對投資標的的性質以及**驅動因素有初步的了解。
第三,進行資產分類後可以投資於每一類別中的典型品種,簡化了交易過程。
由於資產分類標準的多元性,以及在投資過程中應當根據策略需求劃分合適的資產類別,因此有針對性地進行資產分類是有必要的。例如,在運用巨集觀經濟研究能力進行大類資產配置時,資產類別的劃分應體現受巨集觀經濟因素驅動的特性,而在進行中高頻交易時,資產類別的劃分應體現受流動性和市場博弈因素影響的特性。
一種最為常見的大類資產劃分方法,即將資產分為:權益類、固定收益類以及大宗商品,有時候還會加上「另類投資品」(可以視為「其他」類,常以房地產信託投資**為代表)。這種分類方式既然被冠以「大類」的定語,自然十分粗糙。
回歸本源,資產分類應當以資產**走勢的相似性為基準。視標準要求嚴格程度的不同,可分為最為粗放的「大類資產」,也可精細至每項投資品都是單獨的分類。
且由於「相似性」是可以隨著時間變化的,如果允許資產類別內的成份隨著時間而調整,那麼可以產生十分簡化的分類集合。例如,一般權益類資產是根據公司所屬行業進行分類的,但如果允許動態調整,那麼可以根據fama and french (1993) 或fama and french (2015)將權益資產大致分為3類或5類,同樣有很高的代表性。
進一步將思路開啟,可以意識到資產分類的流程中應當允許資產重構——將資產進行組合、拆分等等操作並創造出新的資產。例如,可以通過信用債和利率債的組合創造cds,它對企業的償債能力有更好的代表性。
這是一種從資料出發的思路。
筆者本以為這種思路在機器統計學和機器學習領域有很多經典且廣泛應用的演算法,然而稍微查詢後卻發現方法並不多。有人指出,時間序列中蘊含的資訊包括了每個位置上值的資訊,以及序列形狀的資訊,因此較向量資料更為複雜。
一種常被提到的方法是用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**可參考部落格原文或者部落格翻譯。
這是一種從邏輯出發的思路。
從邏輯出發,檢查大類資產分類中權益、固收和大宗商品之間的差異。根據其定價原理,權益**是企業未來收益的折現,債券**是無風險的現金流加上違約、流動性等風險帶來的溢價,大宗商品**則是供求關係的均衡。由於**決定機制的不同,可以出現「商品**漲,股價跌」、「股價漲,債券跌」等任意組合的情況。例如在完全競爭市場中,企業生產原料****導致產品****,這種情況下商品****,但企業的利潤空間被壓縮因而****會**。又如企業通過風險投資向新型商業模式轉型的情況下,由於新模式的定價水平高,企業的股價有所提公升,同時由於企業的現金流水平不確定性提高,企業的債券違約風險也有所上公升。
然而很難有一種「界限分明的邏輯」。比如房地產行業和家電行業的**,雖說是兩個不同行業,但都受到所謂地產經濟週期的驅動。隨著經濟環境的改變,不同類別資產之間的關係也會時而分明時而緊密地變化。
深究的話,無論是時間序列資料之間距離的度量,還是邏輯概念,都有本質上的模糊不清。不同資產分類方法得到的結果,可以是相似的,同時又微妙地不同。
按照稍微精細一些的產業邏輯或市場劃分,則大宗商品和固定收益資產可以劃分為以下類別:
但權益類資產的劃分遠沒有這樣簡單。行業內常採用的權益資產分類標準均是基於行業的,國際上的常用標準包括sic/naics和gics,國內的常用標準包括證監會行業分類標準、wind行業分類標準和申萬行業分類等,具體情況如下:
相比較而言,筆者更傾向於使用gics和wind標準來劃分國內外上市公司的類別。但任何分類標準都是有缺點的,這取決於使用環境。例如,從產業鏈的角度講,建材與房地產開發分別屬於房地產行業的上下游,但在wind行業分類中,建材屬於材料行業,而房地產開發屬於房地產行業,未能直接體現出其產業關係。
筆者採用的資產分類體系(中國)及代表品種(括號中是其wind**)如下:
其中權益類**的分類主要參考了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
# 總體解釋能力是體系指針對每個資產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
tss=\sigma(y_i-\bar)^2 \\
ess=\sigma(\hat-\bar)^2 \\
rss=\sigma(\hat-y_i)^2
\end
\]r2的算式如下:
\[r^2=1-rss/tss
\]顯然上式小於等於1,且如果等於1,說明方程的**值和觀測值均相等。但r2大於等於0需要一定的前提條件。
\[\begin
tss &= \sigma(y_i-\bar)^2 \\
&= \sigma(y_i-\hat+\hat-\bar)^2 \\
&= \sigma(e_i)^2 + 2\sigma e_i(\hat-\bar) + \sigma(\hat-\bar)^2 \\
&= rss + ess +2\sigma e_i(\hat-\bar)
\end
\]由於在ols回歸中,殘差項求和為0,且殘差項與**值線性不相關,因此有
tss=rss+ess
這在lasso或其他一般的回歸模型中基本都不成立。
普洱熟茶的沖泡方法
相信愛茶的人都知道普洱熟茶是好的。普洱熟茶屬於發酵食品。性質溫和,不傷胃。它有減少脂肪和油脂的作用,有助於降低膽固醇 高血壓和消化。它對想 的人有很大的幫助。它適合所有年齡段的人。普洱熟茶有很多優點,受眾面廣。要泡出色 香 味 韻俱佳的普洱熟茶並不容易。如果你不小心,很容易泡出 生抽色 不是茶不好,...
C 方法的分類
靜態方法不對特定例項進行操作,呼叫時,需要直接使用類名進行呼叫。建立乙個控制台應用程式,其中定義乙個靜態的方法add,該方法有兩個引數,其返回型別為int,它主要用來實現兩個整數相加的功能,然後在主函式main中使用類名直接呼叫自定義的靜態方法,並傳遞兩個引數。如下。public static in...
IP位址的分類及其分類方法介紹
基本的ip位址是分成8位乙個單元 稱為8 位位組 的32位二進位制數。為了方便人們的使用,對機器友好的二進位制位址轉變為人們更熟悉的十進位制位址。ip位址中的每乙個8 位位組用0 255之間的乙個十進位制數表示。這些數之間用點 隔開,這是所謂的點 十進位制格式。因此,最小的ipv4位址值為0.0.0...