Я построил модель регрессии в statsmodels, и я хочу передать эту модель в пользовательскую функцию.
Я хочу использовать оператор assert, чтобы убедиться, что только этот тип объекта (statsmodels .discrete.discrete_model.BinaryResultsWrapper) может быть передан в мою функцию.
Я новичок в утверждениях операторов и пробовал использовать isinstance()
, но получаю сообщение об ошибке (см. ниже).
import pandas as pd
import statsmodels.api as sm
# DATASET AND MODEL
mtcars = sm.datasets.get_rdataset("mtcars", "datasets", cache=True).data
df = pd.DataFrame(mtcars)
y = df['am'] # dependent var
X = df[['wt','hp']] # independent vars
res = sm.Logit(y, X).fit() # regression model
# FUNCTION
def myfunc(mod):
assert isinstance(mod, statsmodels.discrete.discrete_model.BinaryResultsWrapper), 'Error, input must be a statsmodels discrete model BinaryResultsWrapper'
print('This function is awesome')
myfunc(res)
# ERROR MESSAGE
NameError: name 'statsmodels' is not defined