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