我试图估计一个随机效应模型,并存储这些系数。然后,我想将它们合并到数据框中以预测因变量。
每组都有一个随机效应系数。在数据帧中,如果观测值属于第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 ()
所有这些都可以工作,但是没有一个让我将它们合并回原始数据帧。我不确定要使用字典还是列表,或者不确定如何将这些系数重新合并到原始数据帧中。
对此我将不胜感激。
答案 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'])