0

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

每组都有一个随机效应系数。在数据框中,如果观察属于第 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 ()

它们都有效,但没有一个让我将它们合并回原始数据框。我不确定是否使用字典或列表,或者通常如何考虑将这些系数合并回原始数据帧。

我将不胜感激任何建议。

4

1 回答 1

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'])
于 2018-08-27T21:57:34.610 回答