Прогнозирование с использованием Pandas OLS - PullRequest
3 голосов
/ 30 марта 2012

Я использовал функцию OLS scikits.statsmodels для прогнозирования подгоночных данных , но теперь хотел бы перейти к использованию панд.

Документация относится к OLS а также к функции с именем y_predict , но я не могу найти документацию о том, как правильно ее использовать.

В качестве примера:

exogenous = {
    "1998": "4760","1999": "5904","2000": "4504","2001": "9808","2002": "4241","2003": "4086","2004": "4687","2005": "7686","2006": "3740","2007": "3075","2008": "3753","2009": "4679","2010": "5468","2011": "7154","2012": "4292","2013": "4283","2014": "4595","2015": "9194","2016": "4221","2017": "4520"}
endogenous = {
    "1998": "691", "1999": "1580", "2000": "80", "2001": "1450", "2002": "555", "2003": "956", "2004": "877", "2005": "614", "2006": "468", "2007": "191"}

import numpy as np
from pandas import *

ols_test = ols(y=Series(endogenous), x=Series(exogenous))

Однако, в то время как я могу произвести подгонку:

>>> ols_test.y_fitted
1998     675.268299
1999     841.176837
2000     638.141913
2001    1407.354228
2002     600.000352
2003     577.521485
2004     664.681478
2005    1099.611292
2006     527.342854
2007     430.901264

Прогноз не производит ничего другого:

>>> ols_test.y_predict
1998     675.268299
1999     841.176837
2000     638.141913
2001    1407.354228
2002     600.000352
2003     577.521485
2004     664.681478
2005    1099.611292
2006     527.342854
2007     430.901264

В scikits.statsmodels можно сделать следующее:

import scikits.statsmodels.api as sm
...
ols_model = sm.OLS(endogenous, np.column_stack(exogenous))
ols_results = ols_mod.fit()
ols_pred = ols_mod.predict(np.column_stack(exog_prediction_values))

Как мне сделать это в Pandas, чтобы прогнозировать эндогенные данные до пределов экзогенных?

ОБНОВЛЕНИЕ: Благодаря Чангу, новая версия Pandas (0.7.3) теперь имеет эту функцию в качестве стандарта.

1 Ответ

2 голосов
/ 01 апреля 2012

ваша проблема, как получить предсказанные значения y вашей регрессии?Или как использовать коэффициенты регрессии для получения предсказанных значений y для другого набора выборок для экзогенных переменных?pandas y_predict и y_fited должны давать вам одинаковое значение, и оба должны давать те же значения, что и метод прогнозирования в scikits.statsmodels.

Если вы ищете коэффициенты регрессии, выполните ols_test.beta

...