我是python新手,正在寻求帮助。我试图为10个不同的共同基金管理Fama French,并坚持下去
我是python新手,正在寻求帮助。我试图为10个不同的共同基金管理Fama French,并坚持下去。 代码如下:我是python新手,正在寻求帮助。我试图为10个不同的共同基金管理Fama French,并坚持下去,python,Python,我是python新手,正在寻求帮助。我试图为10个不同的共同基金管理Fama French,并坚持下去。 代码如下: import pandas as pd import statsmodels.api as smf from datetime import date import pandas_datareader.data as web s=date(2017,3,30) e=date(2020,2,28) fund='AACIX' value_funds=[] growth_funds
import pandas as pd
import statsmodels.api as smf
from datetime import date
import pandas_datareader.data as web
s=date(2017,3,30)
e=date(2020,2,28)
fund='AACIX'
value_funds=[]
growth_funds=[]
#get the data
ff_data=pd.read_csv(r'C:\Users\ff.csv')
def get_returns(fund):
adj_close=web.DataReader(fund,'yahoo',s,e)['Adj Close']
fund_rets=adj_close.pct_change()
fund_rets=fund_rets.dropna()
returns_data=pd.DataFrame(fund_rets)
return returns_data
def prepare_data():
portfolio=pd.DataFrame(get_returns(fund))
ff_data['fund']=list(portfolio['Adj Close'])
ff_data['excess']=ff_data['fund']-ff_data['RF']
ff_data.drop(['fund'], axis=1)
ff_data.rename(columns={"Mkt-RF":"mkt_excess"}, inplace=True)
return ff_data
# now run the regression
def run_regression():
ff_data=prepare_data()
model = smf.formula.ols(formula = "excess ~ mkt_excess + SMB + HML", data = ff_data).fit()
print(model.summary())
return model.params[3]
def sort_funds():
HML=run_regression()
if HML>0:
value_funds.append()
else:
growth_funds.append()
return value_funds
如何在get_returns(fund)函数中循环多个标记,然后对每个标记进行回归?首先确保您有一个基金列表:
funds = ["AACIX", ...]
然后在run_回归函数中,执行以下操作:
for fund in funds:
ff_data = prepare_data(fund) # Update prepare_data to take an arg
# etc...
请重复介绍之旅,尤其是和。你问的是如何将循环应用于序列——这是一个教程问题,而不是堆栈溢出。我知道了,谢谢!但是我怎样才能在表格中收集model.params[3],在表格中我可以看到基金的名称和第三个系数(model.params[3])?@ivan22这听起来完全是另一个问题,不是吗?