如何集群 ETF 以減少投資組合選擇的基數
我希望使用各種優化目標來執行投資組合優化——例如最小變異數、最大多樣化等。我的挑戰是如果我想在 ETF 上執行此操作,我應該選擇哪些來執行優化?
假設有一個 200 左右的 ETF 的宇宙——我可以採取某種形式的分群來將其減少到 20 個左右的較小集合以進行優化嗎?或者通過讓投資組合優化器本身從更大的集合中應用適當的權重來最好地處理這個問題?
對於分群,我應該考慮哪些技術——即哪些指標有意義,是相關性、平均回報(我懷疑它,因為那太吵了),還有什麼?
更新:
為了澄清我想要做的是將 SP500 中的 500 個名稱減少到 20 個左右的集群,然後從每個集群中選取最具代表性的股票以獲得 20 個名稱。然後,我會對 20 個名稱進行投資組合選擇 遵循令人驚嘆的系統投資者部落格的系列文章,我已經能夠通過一些分群獲得非常好的結果,如下所示:
# Try various clustering schemes on xrets (log returns matrix) xrets.scaled <- scale(xrets) xrets.euclid.dist <- dist(t(xrets.scaled)) xrets.correlation.distance <- as.dist(1-cor(xrets)) fit <- hclust(xrets.correlation.distance, method="ward") plot(fit) k.numclusts <- 30 groups <- cutree(fit, k=k.numclusts) rect.hclust(fit, k=k.numclusts, border="red")
然而,這一切給我的是集群,例如在 SP500 中它發現了以下形式的集群(僅說明一個集群):
> CAG : ConAgra Foods Inc. : [1] NA CL : Colgate-Palmolive Co. : [1] NA > CPB : Campbell Soup Co. : [1] NA GIS : General Mills Inc. : [1] NA HNZ > : H. J. Heinz Company : [1] NA HRL : Hormel Foods Corp. : [1] NA K : > Kellogg Company : [1] NA KMB : Kimberly-Clark Corporation : [1] NA KO > : The Coca-Cola Company : [1] NA MKC : McCormick & Co. Inc. : [1] NA > PEP : Pepsico Inc. : [1] NA PG : Procter & Gamble Co. : [1] NA SJM : > The J. M. Smucker Company : [1] NA
儘管每個集群中的哪隻股票最適合選擇進一步的投資組合,但這仍然沒有告訴我。有任何想法嗎?
首先,找出哪些 ETF 隨著時間的推移相互關聯。讓數據矩陣 $ \mathbf{X} $ 的 ETF 價格回報有 $ t $ 行和 $ p $ 列,其中 $ t $ 行是條形或天數,並且 $ p $ 數據集中的列是 ETF。接下來,確定相關矩陣 $ \mathbf{R} $ 對於 ETF 與 ETF 的相關性,然後執行主成分分析 (PCA) 以確定哪些 ETF載入或與每個主成分 (PC) 相關。要了解 PCA,如果您有相關矩陣 $ \mathbf{R} $ 例如 50 只 ETF,那麼 PCA 將創建 50 只彼此之間相關性為零的 PC。對於每隻 ETF,每隻 PC 都會有一個載入值(即相關性)。如果幾個 ETF 的價格回報是相關的,它們很可能會載入到同一台 PC 上。通常,0.45 或更大的載荷值(相關性)被認為足夠大,值得進一步研究。
您可以使用不同 PC 上每個 ETF 的負載將價格回報相關的 ETF 組合在一起。例如,銀行 ETF 可能與第 1 個 PC 相關(載入 >0.45),石油 ETF 與第 2 個 PC,新興增長 ETF 與第 3 個相關,等等。
資產 (ETF) 通常並不總是與其他所有事物相關,但會與同一行業的資產相關。PCA 創建了彼此之間具有零相關性的人工向量(特徵向量),因此通過觀察哪些 ETF 與給定 PC 最相關(>0.45),您基本上可以進行分組。
PCA是全線性的,可以採用的有Laplacian Eigenmaps、Local Linear Embedding、Locally Preserving Projections、Diffusion Maps等非線性方法。非線性技術的另一個術語是“距離度量學習”。