我正在使用ols
instatsmodels
来运行回归。一旦我对数据帧的每一行运行回归,我想从patsy
这些回归中使用的变量中检索 X 变量。但是,我收到一个我似乎无法理解的错误。
编辑:我正在尝试运行此处答案中所示的回归,但希望在数据帧的分组版本的每一行上运行回归df
,其中它按Date
, bal
, dist
, pay_hist
, inc
,分组bckts
。因此,我首先如上所述对这些数据进行分组,然后尝试对按以下df
分组的每一行运行回归Date
:df.groupby(['Date']).apply(ols_coef,'bal ~ C(dist) + C(pay_hist) + C(inc) + C(bckts)')
我的代码如下:
from statsmodels.formula.api import ols
df = df.groupby([['Date','bal', 'dist', 'pay_hist', 'inc', 'bckts']])
######run regression
def ols_coef(x,formula):
return ols(formula,data=x).fit().params
gamma = df.groupby(['Date']).apply(ols_coef,'bal ~ C(dist) + C(pay_hist) + C(inc) + C(bckts)')
print('gamme is {}'.format(gamma))
########################
#####Now trying to retrieve the X variables in the regressions above
formula = 'bal ~ C(dist) + C(pay_hist) + C(inc) + C(bckts)'
data = df.groupby(['Date'])[['bckts', 'wac_dist', 'pay_hist', 'inc', 'bal']]
y,X = patsy.dmatrices(formula,data,return_type='dataframe')
################
我收到以下错误,并且不确定如何解决它:
patsy.PatsyError: Error evaluating factor: Exception: Column(s) ['bckts', 'dist', 'pay_hist', 'inc', 'bal'] already selected
bal ~ C(dist) + C(pay_hist) + C(inc) + C(bckts)
^^^^^^^^^^^
蝴蝶刀刀
相关分类