如何正確計算多個相關性的平均值?
我試圖獲得 3 個相關性的平均值。使用 Python,我獲得了以下相關性:
corr = df.apply(lambda s: df.corrwith(s))
輸出:
A B C A 1.000000 0.057896 -0.159932 B 0.057896 1.000000 0.581226 C -0.159932 0.581226 1.000000
數組的下三角形被隔離:
corr.values[np.tril_indices(len(corr))] = np.nan
現在這裡是我需要你幫助的地方。我知道算術平均值是
corr
不正確的方法。從這篇文章中,似乎有一些偏好*“使用Fisher’s Z轉換每個相關係數,計算z值的平均值,然後反轉換為相關係數”*。我這樣做如下:
mean_z = np.nanmean(np.arctanh(corr).values) mean_corr = np.tanh(mean_z)
您是否同意這種方法並且是否正確實施?
目標是獲得整個投資組合的平均相關性。
樣本相關估計器的問題定義為: $$ r_{sample} =\frac{\sum\left(X_i - \bar{X}\right)\left(Y_i - \bar{Y}\right)}{\sqrt{\sum\left(X_i-\bar{X}\right)^2\left(Y_i-\bar{Y}\right)^2}}. $$ 是它有偏見。偏差實際上是向下的,即 $ r_{sample} $ 往往低於人口 $ \rho $ . 因此,當我們平均有偏差的估計量時,我們會保持偏差。
Olkin 和 Pratt (1958) 提出了相關係數的無偏估計: $$ r_{corrected}=r_{sample}(1+\frac{1-r_{sample}^2}{2(n-3)}) $$根據連結 ,它非常準確且優於費舍爾(使估計器向上偏差)。對於樣本量 $ n=90 $ 我們看到校正非常小,您可以放心地忽略偏差並平均相關性而無需校正。
有些人聲稱您不應該計算不同資產對之間的平均相關性。我傾向於不同意這一點。下面我提出兩個理由。
投資組合的平均相關性
如果要計算投資組合的平均相關性,則應考慮投資組合權重。Tierens and Anadu (2004)連結提出了一種計算投資組合平均相關性的方法: $$ p_{av}=\frac{2\sum_{i=1}^{N}\sum_{j>i}^{N}w_i w_j p_{i,j}}{1-\sum_{i=1}^{N}w_i^2} $$
如果我們有兩個線性投資組合,這種平均相關性有很好的解釋
- 一個具有相同資產的變異數和所有對之間相同的相關性 $ i, j $ 資產等於 $ p_{av} $
- 其次,資產的變異數相同,但貨幣對之間的相關性不同 $ i, j $ 資產等於 $ p_{i,j} $
那麼兩個投資組合的變異數相等,它們的 VaR 也相等。由此可以直接看出,當平均相關性降低時,投資組合變異數/風險的變異數也會降低。因此,平均相關性提供了有用的資訊。
兩個相關矩陣的相似性度量
我們可以計算兩個相關矩陣之間的距離,並比較它們的相似程度。距離度量為:$$ d = 1 - \frac{\text{tr}(R_1 \cdot R_2)}{|R_1| \cdot |R_2|}, $$ 在哪裡 $ R_1 $ 和 $ R_2 $ 是兩個相關矩陣,範數是 Frobenius 範數。該度量取值從 0(相同矩陣)到 1。我們可以將任何相關矩陣與該度量進行比較。但事實證明,如果我們只將自己限制為標量,那麼所有相關性的簡單均值會使距離最小化 $ d $ !!IE $ R_2 $ 非對角線條目等於 $ p_{av-equal} $ 與原始矩陣最相似 $ R_1 $ .
$$ p_{av-equal}=\frac{\sum_{i=1}^{N}\sum_{j>i}^{N}p_{i,j}}{N(N-1)/2} $$ 這是非對角線條目的簡單均值。