我确信这很简单,但是作为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.每次回归后,我都要存储残差.
我try 过以下各种版本,但一定是语法错误:
resids = {}
for k in returns.keys():
reg = sm.OLS(returns[k],returns.FSTMX).fit()
resids[k] = reg.resid
我认为问题在于我不知道如何按键引用returns列,所以returns[k]
可能是错误的.
如果您能提供任何关于最佳方法的指导,我们将不胜感激.也许我错过了一个共同的方法.