Применение модели OLS к другому фрейму данных?

Я создал модель OLS трехзначных данных почтового индекса:

x = nsaid_df[['Segment', 'FTE_A', 'FTE_B', 'FTE_C', 'inc100k']]
y = nsaid_df['Sales']
model = sm.OLS(y, x, missing='drop').fit()
model.summary()

Модель устанавливает связь между демографическими данными (на уровне трехзначного почтового индекса) и продажами продукта. Теперь я хотел бы использовать модель для прогнозирования продаж на уровне 5-значного почтового индекса. У меня есть DataFrame, содержащий ту же серию, что и 3-значная модель, но для каждого 5-значного почтового индекса. Я думал, что могу просто написать:

predict5 = model.predict(alx5)

Это дает несколько загадочное сообщение об ошибке:

"формы (33678,15) и (5,) не выровнены: 15 (тусклый 1)! = 5 (тусклый 0)"

У меня вопрос: как мне использовать мою модель для прогнозирования значений в фрейме данных, который отличается от того, который использовался для соответствия исходной модели?


person Steve Maughan    schedule 03.11.2015    source источник
comment
возможный дубликат stackoverflow.com /вопросы/33476897/   -  person WoodChopper    schedule 03.11.2015
comment
@WoodChopper - другая ошибка   -  person Steve Maughan    schedule 03.11.2015


Ответы (1)


Выглядит так же, как этот вопрос будущие значения-использование-ols-regression-python-statsmodels-pandas

Итак, ответ:

new_x = alx5[['Segment', 'FTE_A', 'FTE_B', 'FTE_C', 'inc100k']]
alx5.loc[:, 'NSAID'] = model.predict(new_x)
person Steve Maughan    schedule 03.11.2015
comment
Круто, если это решило ваш вопрос, вы можете принять свой вопрос и закрыть его. - person WoodChopper; 04.11.2015