我想构建一个逻辑回归并在 Python 中提取交互项的 p 值,其中数据集是从 Teradata 导入的。但出现了一些错误消息,我不知道如何处理。
我尝试了两种不同的方法来构建逻辑回归模型。第一种方法无法打印出 model.summary() 命令,因此尝试了第二种方法。所有包含的变量都已转换为 str,并且所有变量都是分类变量。
import pandas as pd
import numpy as np
import seaborn as sns; sns.set()
from sklearn.linear_model import LogisticRegression
import sklearn.linear_model as lm
from sklearn.preprocessing import PolynomialFeatures
from sklearn.metrics import classification_report
import statsmodels.api as sm
import statsmodels.formula.api as smf
from patsy import dmatrices;
y = testing.respond
feature_cols = ['t1', 't2', 'inter']
X = testing[feature_cols].as_matrix()
import warnings
warnings.filterwarnings("ignore", category=FutureWarning)
model = LogisticRegression(solver='lbfgs')
result = model.fit(X,y)
result.summary
AttributeError: 'LogisticRegression' object has no attribute 'summary'
model = sm.Logit(y, X)
model_fit = model.fit()
print(model_fit.summary)
ValueError: Pandas data cast to numpy dtype of object. Check input data with np.asarray(data).
想知道如何修复任一模型,以便获得“间”项的 p 值的结果
将 statsmodels.formula.api 导入为 smf 尝试使用 smf.logit 函数,然后您也会获得 p 值和摘要
print(model_fit.summary())
您忘记了摘要中的括号。