मुझे यकीन है कि यह सरल है, लेकिन अजगर के लिए एक पूर्ण नौसिखिया के रूप में, मुझे यह पता लगाने में परेशानी हो रही है कि 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 पर FSAVIX को पुनः प्राप्त करना चाहता हूं। प्रत्येक प्रतिगमन के बाद मैं अवशिष्टों को संग्रहीत करना चाहता हूं।
मैंने निम्नलिखित के विभिन्न संस्करणों की कोशिश की है, लेकिन मुझे वाक्यविन्यास गलत होना चाहिए:
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()
ओएस समान