Как утверждать python statsmodels.discrete.discrete_model.BinaryResultsWrapper - PullRequest
0 голосов
/ 27 мая 2020

Я построил модель регрессии в 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
...