如何使用pandas.ewm.cov
函数的输出。我认为有些函数允许你直接在返回的形式中使用它来进行乘法,但我尝试的任何东西似乎都无法工作。
例如,假设我采用最小用例,股票X和Y返回DF1中的时间序列,因此我们估计一个ewma协方差矩阵,然后得到位置A和B的投资组合的方差估计(在DF2中给出)我需要计算$ x ^ TC x $,但是我无法在不编写for循环的情况下找到执行此操作的命令?
# Python 3.6, pandas 0.20
import pandas as pd
import numpy as np
np.random.seed(100)
DF1 = pd.DataFrame(dict(X = np.random.normal(size = 100), Y = np.random.normal(size = 100)))
DF2 = pd.DataFrame(dict(A = np.random.normal(size = 100), B = np.random.normal(size = 100)))
COV = DF1.ewm(10).cov()
print(DF1)
print(COV)
# All of the following are invalid
print(COV.dot(DF2))
print(DF2.dot(COV))
print(COV.multiply(DF2))
答案 0 :(得分:0)
我能想到的最好的是这段丑陋的代码
library(tidyr)
complete(df, trial, nesting(id, day))
我希望有一个很好的方法来做到这一点......