Сохранить регрессионные коэффициенты, объединить обратно в фрейм данных - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь оценить модель случайных эффектов и сохранить эти коэффициенты.Затем я хочу объединить их с фреймом данных для прогнозирования зависимой переменной.

Для каждой группы существует коэффициент случайного эффекта.В кадре данных, если наблюдение относится к группе 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 голосов
/ 28 августа 2018

Это похоже на работу:

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'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...