Les Pandas/Statsmodel LO prédire les valeurs futures

J'ai essayé d'obtenir une prédiction pour l'avenir des valeurs dans le modèle que j'ai créé. J'ai essayé les deux LO dans les pandas et statsmodels. Voici ce que j'ai dans 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

La longueur du tableau retourné est égal au nombre d'enregistrements dans mon premier dataframe, mais les valeurs ne sont pas les mêmes. Quand je fais les opérations suivantes à l'aide des pandas je n'ai pas de valeurs retournées.

from pandas.stats.api import ols
res1 = ols(y=dframe['monthly_data_smoothed8'], x=dframe['date_delta'])
res1.predict

(Notez qu'il n'est pas .ajustement de la fonction MCO dans les Pandas) quelqu'un Pourrait jeter une certaine lumière sur la façon dont je pourrais obtenir les prédictions de mon modèle OLS dans les deux pandas ou statsmodel-je me rends compte que je ne dois pas être en utilisant .prédire correctement et j'ai lu les multiples autres problèmes que les gens ont eu, mais ils ne semblent pas s'appliquer à mon cas.

modifier je crois "endog' telle que définie est erronée-que je devrais être en train de passer les valeurs pour lesquelles je tiens à prévoir; c'est pourquoi j'ai créé une plage de dates des 12 dernières périodes de la dernière valeur enregistrée. Mais encore, je rater quelque chose que j'obtiens l'erreur:

matrices are not aligned

modifier voici un extrait de données, la dernière colonne (en rouge) des nombres est la date de delta, qui est une différence dans le mois à compter de la première date:

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
sans vos données, on ne peut que spéculer. s'il vous plaît poster un exemple qui inclut le code pour générer vos données. voir sscce.org pour plus d'info
ok...j'ai essayé de poster un copier-collé sur le bloc de données à partir d'un ipython de sortie, mais bien sûr, il n'est pas correctement...
ne df.to_dict et coller
Votre première série de code a l'air correct. Pourquoi voudriez-vous que les valeurs soient identiques? Peut-être regarder smresults.summary() de voir comment le modèle est adapté.
Ce n'est pas que je m'attends à la même chose, vraiment, c'est juste que c'est le retour des valeurs pour 42 périodes, mais je ne sais pas lesquels et les valeurs sont e+22 qui est trop élevé.

OriginalL'auteur pythonista | 2014-08-26