Ich habe die scikits.statsmodels OLS predict Funktion verwendet, um angepasste Daten zu prognostizieren, möchte aber jetzt auf Pandas umsteigen.Vorhersage mit Pandas OLS
Die Dokumentation refers to OLS sowie eine Funktion namens y_predict, aber ich kann keine Dokumentation finden, wie man es richtig verwendet.
Als Beispiel:
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))
Doch während ich einen Anfall produzieren kann:
>>> 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
Prediction produziert nichts anderes:
>>> 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
In scikits.statsmodels würde man folgendes tun:
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))
Wie mache ich das in Pandas, um die endogenen Daten bis an die Grenzen des exogenen zu prognostizieren?
UPDATE: Dank Chang, hat die neue Version von Pandas (0.7.3) jetzt diese Funktionalität als Standard.
hallo, werden Sie etwas dagegen, ein Beispiel zu geben, wie die ols.predict zu benutzen? sagen Sie, Sie haben drei unabhängige Variablen, also drei Betas [b1, b2, b3] jetzt wollen Sie [x1, x2, x3] verwenden, um ay vorherzusagen – tesla1060