Я пытаюсь использовать функцию predict()
реализации OLS statsmodels.formula.api
. Когда я передаю новый фрейм данных функции для получения прогнозируемых значений для набора данных вне выборки result.predict(newdf)
, возвращается следующая ошибка: 'DataFrame' object has no attribute 'design_info'
. Что это значит и как я могу это исправить? Полный отслеживающий является:Pandas Dataframe AttributeError: объект DataFrame не имеет атрибута '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'
EDIT: Вот воспроизводимый пример. Ошибка появляется происходит, когда я замариновать, а затем unpickle результирующий объект (который мне нужно делать в реальном проекте):
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
Пожалуйста, отредактируйте ваш вопрос и включите образец кода, а также полную трассировку стека. – MattDMo
Я добавил полный трафик. Я могу попытаться добавить воспроизводимый пример, если никто не знает, почему эта ошибка обычно возникает. – Michael
Я думаю, нам нужен воспроизводимый пример. Я не вижу причины, почему информация о формуле 'design_info' не существует, но я не полностью понимаю путь кода для этого с взаимодействием с patsy. Вы также можете открыть проблему с помощью statsmodels на github. Это может быть не очень надежным, чтобы поддерживать формулу, связанную с исходным фреймворком данных. – user333700