OLS 実装のpredict()
機能を使用しようとしています。statsmodels.formula.api
サンプル外のデータセットの予測値を取得する関数に新しいデータ フレームを渡すとresult.predict(newdf)
、次のエラーが返されます: 'DataFrame' object has no attribute 'design_info'
. これは何を意味し、どうすれば修正できますか? 完全なトレースバックは次のとおりです。
p = result.predict(newdf)
File "C:\Python27\lib\site-packages\statsmodels\base\model.py", line 878, in predict
exog = dmatrix(self.model.data.orig_exog.design_info.builder,
File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 2088, in __getattr__
(type(self).__name__, name))
AttributeError: 'DataFrame' object has no attribute 'design_info'
編集:これは再現可能な例です。エラーは、結果オブジェクトをピクルしてからアンピクルすると発生するようです (実際のプロジェクトで行う必要があります)。
import cPickle
import pandas as pd
import numpy as np
import statsmodels.formula.api as sm
df = pd.DataFrame({"A": [10,20,30,324,2353], "B": [20, 30, 10, 1, 2332], "C": [0, -30, 120, 11, 2]})
result = sm.ols(formula="A ~ B + C", data=df).fit()
print result.summary()
test1 = result.predict(df) #works
f_myfile = open('resultobject', "wb")
cPickle.dump(result, f_myfile, 2)
f_myfile.close()
print("Result Object Saved")
f_myfile = open('resultobject', "rb")
model = cPickle.load(f_myfile)
test2 = model.predict(df) #produces error