用Python进行Logistic回归分析与结果展示
Logistic回归是一种广泛使用的统计方法,用于分析变量之间的二元关系。在进行Logistic回归分析时,除了模型的准确性,P值也是一个重要的评估指标。P值可以帮助我们判断独立变量与因变量之间的关系是否显著。本文将通过Python中的statsmodels
库进行Logistic回归分析,并展示如何提取P值。
安装必要的库
在开始之前,请确保您已经安装了以下Python库:
pip install pandas numpy statsmodels matplotlib seaborn
数据准备
我们将使用一个简单的示例数据集。假设我们有一组学生的数据,我们希望分析学生的性别和学习时长对他们及格与否的影响。以下是数据的构建:
import pandas as pd
# 创建示例数据
data = {
'study_hours': [2, 3, 5, 1, 4, 6, 8, 10, 1.5, 2.5],
'gender': ['male', 'female', 'female', 'male', 'male', 'female', 'male', 'female', 'female', 'male'],
'passed': [0, 1, 1, 0, 1, 1, 1, 1, 0, 0]
}
df = pd.DataFrame(data)
进行Logistic回归分析
接下来,我们使用statsmodels
库进行Logistic回归模型拟合。
import statsmodels.api as sm
# 将性别转换为虚拟变量
df['gender'] = pd.get_dummies(df['gender'], drop_first=True)
# 选择自变量和因变量
X = df[['study_hours', 'gender']]
y = df['passed']
# 增加常数项
X = sm.add_constant(X)
# 进行Logistic回归
model = sm.Logit(y, X)
result = model.fit()
结果展示
我们可以通过summary()
方法查看模型的统计结果,其中包含每个独立变量的系数、标准误差和P值。
# 输出模型的总结信息
print(result.summary())
在结果中,我们特别关注P>|z|
这一列。如果P值小于0.05,通常认为该变量对因变量有显著影响。
提取P值
我们可以直接从结果中提取P值:
# 提取 P 值
p_values = result.pvalues
print("P-values:\n", p_values)
可视化结果
除了统计分析,数据的可视化也非常重要。我们可以绘制饼状图来展示通过Logistic回归预测的通过和未通过的比例。
import matplotlib.pyplot as plt
# 计算预测结果
predictions = result.predict(X)
predicted_classes = [1 if x >= 0.5 else 0 for x in predictions]
# 统计预测结果
predicted_counts = pd.Series(predicted_classes).value_counts()
# 绘制饼状图
plt.figure(figsize=(8, 6))
plt.pie(predicted_counts, labels=['Not Passed', 'Passed'], autopct='%1.1f%%', startangle=90)
plt.title('Prediction Results')
plt.axis('equal') # 保持饼图为圆形
plt.show()
总结
通过这篇文章,我们使用Python进行Logistic回归分析,并提取和展示了P值,帮助我们理解独立变量对因变量的影响。在实际的数据分析中,理解模型的意义以及如何解释P值是非常重要的。可视化结果也可以使我们更直观地理解数据。因此,掌握这些基本技能将为您在数据科学和统计分析的道路上打下良好的基础。希望这篇文章能为您的学习提供帮助!