Ковариационная матрица из факторных нагрузок и факторных ковариаций? - PullRequest
0 голосов
/ 12 октября 2018

У меня есть список из 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 факторов?

1 Ответ

0 голосов
/ 12 октября 2018

умножалось на неправильный термин в конце.Ответ:

covy = (np.matmul(np.matmul(asset_loadings.T,factor_cov),asset_loadings))

первый пост в stackoverflow и, конечно, я получаю свой собственный ответ через 10 минут после выхода на кофе ....

...