これは簡単だと確信していますが、Pythonの完全な初心者として、pandas
データフレーム内の変数を反復処理し、それぞれで回帰を実行する方法を理解するのに苦労しています。
これが私がやっていることです:
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()
私はこのような回帰を実行できることを知っています:
regs = sm.OLS(returns.FIUIX,returns.FSTMX).fit()
データフレームの列ごとにこれを実行するとします。特に、FSTMXでFIUIX、次にFSTMXでFSAIX、FSTMXでFSAVXに回帰したいと思います。各回帰の後、残差を保存します。
以下のさまざまなバージョンを試しましたが、構文が間違っているに違いありません。
resids = {}
for k in returns.keys():
reg = sm.OLS(returns[k],returns.FSTMX).fit()
resids[k] = reg.resid
問題は、キーで返品列を参照する方法がわからないことだと思うのでreturns[k]
、おそらく間違っています。
これを行うための最良の方法についてのガイダンスは大歓迎です。おそらく、私が見逃している一般的なパンダのアプローチがあるでしょう。
for i in len(df): if i + 1 != len(df): # sm.OLS(returns[returns.coloumns[i]], returns[returns.columns[ i+1]]), fit()
類似