私はscikits.statsmodelsOLS予測関数を使用して近似データを予測してきましたが、今度はPandasの使用に移行したいと思います。
ドキュメントはOLSとy_predictという関数を参照していますが、正しく使用する方法に関するドキュメントが見つかりません。
例として:
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))
ただし、フィットを生成することはできますが、次のようになります。
>>> 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
予測は何も変わりません。
>>> 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
scikits.statsmodelsでは、次のようにします。
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))
内因性データを外因性の限界まで予測するために、パンダでこれを行うにはどうすればよいですか?
更新:Changのおかげで、新しいバージョンのPandas(0.7.3)にこの機能が標準で追加されました。