Есть несколько шагов предварительной обработки, которые вам нужно сделать, они говорят вам, что вы должны находиться в интервале между единицами, то есть между 0 и 1.
, что вы можете сделать, это выполнить масштабирование функции, выполнив: X -Xmin / Xmax - Xmin
Вот модификации, которые должны работать:
import statsmodels.api as sa
import statsmodels.formula.api as sfa
biopsy = sa.datasets.get_rdataset("biopsy","MASS")
biopsy_data = biopsy.data
biopsy_data.rename(columns={"class":"Class"},inplace=True)
biopsy_data.Class = biopsy_data.Class.map({"benign":0,"malignant":1})
biopsy_data["V1"] = np.divide(biopsy_data["V1"] - biopsy_data["V1"].min(), biopsy_data["V1"].max() - biopsy_data["V1"].min())
log_mod1 = sfa.logit("V1~Class",biopsy_data)
log_res1 = log_mod1.fit()
print(log_res1.summary())
Просто перед вызовом по sfa.logit()
Я сделал предварительную обработку независимой переменной, которую вы хотели использовать (V1
здесь).