Tôi chắc chắn điều này đơn giản, nhưng là một người mới hoàn toàn với python, tôi gặp khó khăn khi tìm cách lặp lại các biến trong một pandas
khung dữ liệu và chạy hồi quy với từng biến.
Đây là những gì tôi đang làm:
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()
Tôi biết tôi có thể chạy hồi quy như thế này:
regs = sm.OLS(returns.FIUIX,returns.FSTMX).fit()
nhưng giả sử tôi muốn làm điều này cho mỗi cột trong khung dữ liệu. Cụ thể, tôi muốn hồi quy FIUIX trên FSTMX, và sau đó là FSAIX trên FSTMX, và sau đó là FSAVX trên FSTMX. Sau mỗi hồi quy tôi muốn lưu trữ phần dư.
Tôi đã thử các phiên bản khác nhau sau đây, nhưng tôi phải hiểu sai cú pháp:
resids = {}
for k in returns.keys():
reg = sm.OLS(returns[k],returns.FSTMX).fit()
resids[k] = reg.resid
Tôi nghĩ vấn đề là tôi không biết cách tham chiếu cột trả về theo khóa, nên returns[k]
có lẽ sai.
Bất kỳ hướng dẫn về cách tốt nhất để làm điều này sẽ được nhiều đánh giá cao. Có lẽ có một cách tiếp cận gấu trúc phổ biến mà tôi đang thiếu.
for i in len(df): if i + 1 != len(df): # sm.OLS(returns[returns.coloumns[i]], returns[returns.columns[ i+1]]), fit()
os tương tự