Saya yakin ini sederhana, tetapi sebagai pemula yang lengkap untuk python, saya mengalami kesulitan mencari cara untuk mengulangi variabel dalam pandas
kerangka data dan menjalankan regresi dengan masing-masing.
Inilah yang saya lakukan:
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()
Saya tahu saya dapat menjalankan regresi seperti ini:
regs = sm.OLS(returns.FIUIX,returns.FSTMX).fit()
tapi anggaplah saya ingin melakukan ini untuk setiap kolom di dataframe. Secara khusus, saya ingin mundur FIUIX di FSTMX, dan kemudian FSAIX di FSTMX, dan kemudian FSAVX di FSTMX. Setelah setiap regresi saya ingin menyimpan residu.
Saya sudah mencoba berbagai versi berikut ini, tetapi saya pasti salah mengerti sintaks:
resids = {}
for k in returns.keys():
reg = sm.OLS(returns[k],returns.FSTMX).fit()
resids[k] = reg.resid
Saya pikir masalahnya adalah saya tidak tahu bagaimana merujuk ke kolom pengembalian dengan kunci, jadi returns[k]
mungkin salah.
Bimbingan apa pun tentang cara terbaik untuk melakukan ini akan sangat dihargai. Mungkin ada pendekatan panda umum yang saya lewatkan.
for i in len(df): if i + 1 != len(df): # sm.OLS(returns[returns.coloumns[i]], returns[returns.columns[ i+1]]), fit()