Pandas / Statsmodel OLS sagt zukünftige Werte voraus

Ich habe versucht, eine Vorhersage für zukünftige Werte in einem Modell zu erhalten, das ich erstellt habe. Ich habe beide OLS in Pandas und Statistikmodels ausprobiert. Folgendes habe ich in den Statistikmodellen:

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

Die Länge des zurückgegebenen Arrays entspricht der Anzahl der Datensätze in meinem ursprünglichen Datenrahmen, die Werte sind jedoch nicht identisch. Wenn ich mit Pandas Folgendes mache, werden keine Werte zurückgegeben.

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

(Beachten Sie, dass es in Pandas keine .fit-Funktion für OLS gibt.) Könnte jemand Aufschluss darüber geben, wie ich zukünftige Vorhersagen von meinem OLS-Modell in Pandas oder Statistikmodellen erhalten kann - mir ist klar, dass ich .predict nicht richtig verwenden muss und ich habe Lesen Sie die vielen anderen Probleme, die Menschen hatten, aber sie scheinen nicht auf meinen Fall zuzutreffen.

bearbeiten Ich halte 'Endog' für falsch - ich sollte die Werte übergeben, für die ich Vorhersagen treffen möchte. Daher habe ich einen Datumsbereich von 12 Perioden nach dem letzten aufgezeichneten Wert erstellt. Trotzdem vermisse ich etwas, da ich den Fehler erhalte:

matrices are not aligned

bearbeiten Hier ist ein Datenschnipsel, die letzte Spalte (in rot) der Zahlen ist das Datumsdelta, das eine Differenz in Monaten zum ersten Datum darstellt:

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage