Ich habe tägliche Renditen von drei Märkten (GLD, SPY und USO). Mein Ziel ist es, die durchschnittliche paarweise Korrelation aus einer Korrelationsmatrix auf rollierender Basis von 130 Tagen zu berechnen.Rollierende durchschnittliche paarweise Korrelation in Python
Mein Ausgangspunkt war:
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()
Diese eine Gruppe von Korrelationsmatrizen erzeugt. Das Extrahieren der unteren (oder oberen) Dreiecke, das Entfernen der Diagonalen und dann das Berechnen des Durchschnitts für jede Beobachtung ist jedoch, wo ich eine Leerstelle gezeichnet habe. Idealerweise möchte ich, dass die Ausgabe für jedes Datum in einer Serie ist, in der ich sie dann nach den Daten indizieren kann.
Vielleicht habe ich von der falschen Stelle gestartet, aber jede Hilfe wäre willkommen.
Mit durchschnittlicher Korrelation meinen Sie einen Durchschnitt von 3 Werten in diesem Fall für jedes Datum? (alle paarweisen Kombinationen) – aldanor
Ja der Durchschnitt der 3 Werte. – Joe