У меня есть список из 6 активов с векторами загрузки по 4 факторам, и у меня есть ковариационная матрица для 4 факторов.Как я могу построить ковариационную матрицу 6x6 "актив", используя эти два входа?
import pandas as pd
import numpy as np
## Python 2.7
Векторы загрузки:
raw_asset_loadings = {'asset1': [.25, .25, .25, .25],
'asset2': [.0, 0,.5,.5],
'asset3': [0,0,1.25,.25],
'asset4': [0,0,.25,0],
'asset5': [.85,0,0,.15],
'asset6': [.7,.15,0,.15]}
asset_loadings = pd.DataFrame(data=raw_asset_loadings)
, что дает
asset1 asset2 asset3 asset4 asset5 asset6
0 0.25 0.0 0.00 0.00 0.85 0.70
1 0.25 0.0 0.00 0.00 0.00 0.15
2 0.25 0.5 1.25 0.25 0.00 0.00
3 0.25 0.5 0.25 0.00 0.15 0.15
и коэффициентковариационная матрица:
raw_cov = {0: [.04, .008, .12, .0],
1: [.008, .01,.0015,0],
2: [.0012,.0015,.0036,.0],
3: [.0,.0,.0,.0004]}
factor_cov = pd.DataFrame(data=raw_cov)
, что дает
0 1 2 3
0 0.040 0.0080 0.0012 0.0000
1 0.008 0.0100 0.0015 0.0000
2 0.120 0.0015 0.0036 0.0000
3 0.000 0.0000 0.0000 0.0004
Я думал, что это будет работать, но я получаю матрицу 4x6, а не желаемую матрицу 6x6:
covy = (np.matmul(np.matmul(asset_loadings.T,factor_cov),factor_cov))
есть идеи, как создать 6х6 из 4 факторов?