Ich bin mir sicher, dass dies einfach ist, aber als pandas
absoluter Neuling in Python habe ich Probleme herauszufinden, wie ich Variablen in einem Datenrahmen durchlaufen und mit jedem eine Regression ausführen kann.
Folgendes mache ich:
all_data = {}
for ticker in ['FIUIX', 'FSAIX', 'FSAVX', 'FSTMX']:
all_data[ticker] = web.get_data_yahoo(ticker, '1/1/2010', '1/1/2015')
prices = DataFrame({tic: data['Adj Close'] for tic, data in all_data.iteritems()})
returns = prices.pct_change()
Ich weiß, dass ich eine solche Regression durchführen kann:
regs = sm.OLS(returns.FIUIX,returns.FSTMX).fit()
Angenommen, ich möchte dies für jede Spalte im Datenrahmen tun. Insbesondere möchte ich FIUIX auf FSTMX und dann FSAIX auf FSTMX und dann FSAVX auf FSTMX zurückführen. Nach jeder Regression möchte ich die Residuen speichern.
Ich habe verschiedene Versionen der folgenden Versionen ausprobiert, aber ich muss die Syntax falsch verstehen:
resids = {}
for k in returns.keys():
reg = sm.OLS(returns[k],returns.FSTMX).fit()
resids[k] = reg.resid
Ich denke, das Problem ist, dass ich nicht weiß, wie ich mit Schlüssel auf die Rückgabespalte verweisen soll, also returns[k]
ist es wahrscheinlich falsch.
Jede Anleitung, wie dies am besten zu tun ist, wäre sehr dankbar. Vielleicht fehlt mir ein allgemeiner Pandas-Ansatz.
for i in len(df): if i + 1 != len(df): # sm.OLS(returns[returns.coloumns[i]], returns[returns.columns[ i+1]]), fit()