У меня есть ежедневная доходность с трех рынков (GLD, SPY и USO). Моя цель - рассчитать среднюю попарную корреляцию от корреляционной матрицы на основе проката 130 дней.Средняя средняя попарная корреляция в Python
Моя точка была:
import numpy as np
import pandas as pd
import os as os
import pandas.io.data as web
import datetime as datetime
from pandas.io.data import DataReader
stocks = ['spy', 'gld', 'uso']
start = datetime.datetime(2010,1,1)
end = datetime.datetime(2016,1,1)
df = web.DataReader(stocks, 'yahoo', start, end)
adj_close_df = df['Adj Close']
returns = adj_close_df.pct_change(1).dropna()
returns = returns.dropna()
rollingcor = returns.rolling(130).corr()
Это создает панель корреляционных матриц. Однако извлечение нижних (или верхних) треугольников, удаление диагоналей, а затем вычисление среднего для каждого наблюдения - это то, где я нарисовал пробел. В идеале я хотел бы, чтобы результат для каждой даты был в серии, где я могу проиндексировать ее по датам.
Возможно, я начал с неправильного места, но любая помощь будет оценена по достоинству.
По средней корреляции вы имеете в виду в среднем 3 значения в этом случае для каждой даты? (все попарные комбинации) – aldanor
Да среднее значение из трех значений. – Joe