আমি নিশ্চিত যে এটি সহজ, তবে পাইথনের সম্পূর্ণ নবাগত হিসাবে, 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, এবং তারপরে এফএসটিএমএক্স এফএসএআইএক্স এবং তারপরে এফএসটিভিএক্স এফএসএভিএক্স পুনরায় জমা করতে চাই। প্রতিটি প্রতিরোধের পরে আমি অবশিষ্টাংশগুলি সংরক্ষণ করতে চাই।
আমি নিম্নলিখিত বিভিন্ন সংস্করণ চেষ্টা করেছি, কিন্তু আমি অবশ্যই সিনট্যাক্সটি ভুল পেয়ে যাচ্ছি:
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()