我相信这很简单,但作为一个完全的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列,所以returns[k]
可能是错误的。
任何关于这样做的最佳方式的指导都将非常感激。也许我忽略了一种常见的熊猫方法。