存储回归系数,合并回数据框

时间:2018-08-27 00:59:52

标签: pandas regression random-effects

我试图估计一个随机效应模型,并存储这些系数。然后,我想将它们合并到数据框中以预测因变量。

每组都有一个随机效应系数。在数据帧中,如果观测值属于第1组,则我希望在那里列出第1组系数。对于第2组的观测,第2组的系数等等。

我能够访问和存储系数。但是我无法将它们重新合并到数据框中。我不确定怎么想。这是我到目前为止的代码:

md = smf.mixedlm('y ~ x', data=df, groups=train['GroupID'])
mdf = md.fit()

我尝试过三种方式存储系数:

re_coeffs = pd.Series(mdf.random_effects.values) #creates a series with shape (1,)

re_coeffs = [(k) for k in mdf.random_effects.values()] #creates a list with the coeffs

re_coeffs = np.array(mdf.random_effects.values) #creates array with shape ()

所有这些都可以工作,但是没有一个让我将它们合并回原始数据帧。我不确定要使用字典还是列表,或者不确定如何将这些系数重新合并到原始数据帧中。

对此我将不胜感激。

1 个答案:

答案 0 :(得分:0)

这似乎可行:

md = smf.mixedlm('y ~ x', data=train, groups=train['GroupID'])
mdf = md.fit()

re_coeffs = [(k) for k in mdf.random_effects.values()]
df = pd.DataFrame(re_coeffs)

df['ConfigID'] = df.index 
merged = pd.merge(train,df, on=['GroupID'])