Pandas / Statsmodel OLS prevendo valores futuros
Eu tenho tentado obter uma previsão para valores futuros em um modelo que eu criei. Eu tentei ambos os OLS em pandas e statsmodels. Aqui está o que eu tenho no statsmodels:
import statsmodels.api as sm
endog = pd.DataFrame(dframe['monthly_data_smoothed8'])
smresults = sm.OLS(dframe['monthly_data_smoothed8'], dframe['date_delta']).fit()
sm_pred = smresults.predict(endog)
sm_pred
O comprimento da matriz retornada é igual ao número de registros no meu dataframe original, mas os valores não são os mesmos. Quando eu faço o seguinte usando pandas, não recebo valores retornados.
from pandas.stats.api import ols
res1 = ols(y=dframe['monthly_data_smoothed8'], x=dframe['date_delta'])
res1.predict
(Observe que não há uma função .fit para o OLS no Pandas) Alguém poderia esclarecer como obter previsões futuras do meu modelo OLS no pandas ou no statsmodel - percebo que não devo usar o .predict corretamente e leia os vários outros problemas que as pessoas tiveram, mas parecem não se aplicar ao meu caso.
editar Acredito que 'endog', conforme definido, esteja incorreto - eu deveria passar os valores para os quais quero prever; portanto, criei um período de 12 períodos após o último valor registrado. Mas ainda sinto falta de algo, pois estou recebendo o erro:
matrices are not aligned
editar Aqui está um trecho de dados, a última coluna (em vermelho) de números é o delta da data, que é uma diferença em meses da primeira data:
month monthly_data monthly_data_smoothed5 monthly_data_smoothed8 monthly_data_smoothed12 monthly_data_smoothed3 date_delta
0 2011-01-31 3.711838e+11 3.711838e+11 3.711838e+11 3.711838e+11 3.711838e+11 0.000000
1 2011-02-28 3.776706e+11 3.750759e+11 3.748327e+11 3.746975e+11 3.755084e+11 0.919937
2 2011-03-31 4.547079e+11 4.127964e+11 4.083554e+11 4.059256e+11 4.207653e+11 1.938438
3 2011-04-30 4.688370e+11 4.360748e+11 4.295531e+11 4.257843e+11 4.464035e+11 2.924085