probit回归分析代码,包括输出输出模型评价、回归结果、混淆矩阵热力图、ROC曲线、分类评价指标
时间: 2024-09-29 11:13:20 浏览: 130
在Python中,使用`statsmodels`库可以进行Probit回归分析。这里是一个简单的例子,包括了模型评估、输出、混淆矩阵和ROC曲线等步骤:
```python
import numpy as np
import pandas as pd
from statsmodels.discrete.discrete_model import Probit
from sklearn.metrics import confusion_matrix, roc_curve, roc_auc_score, classification_report
import matplotlib.pyplot as plt
# 假设数据已经准备好了,df包含输入变量X和响应变量y (0或1)
data = pd.read_csv('your_data.csv')
X = data[['feature1', 'feature2', ...]] # 输入特征
y = data['target'] # 目标变量
# 创建Probit模型并拟合
model = Probit(endog=y, exog=X)
result = model.fit()
# 输出模型评价
print(result.summary())
# 回归结果
print("Regression coefficients:", result.params)
# 混淆矩阵
y_pred = result.predict(X)
conf_mat = confusion_matrix(y, y_pred.round())
print("Confusion Matrix:")
print(conf_mat)
plt.figure(figsize=(6, 6))
sns.heatmap(conf_mat, annot=True, cmap="YlGnBu")
plt.xlabel('Predicted')
plt.ylabel('True')
plt.title('Confusion Matrix Heatmap')
# ROC曲线
fpr, tpr, _ = roc_curve(y, y_pred)
roc_auc = roc_auc_score(y, y_pred)
plt.plot(fpr, tpr, label=f"ROC curve (area = {roc_auc:.2f})")
plt.plot([0, 1], [0, 1], 'k--') # 垂直线作为随机猜测的基准
plt.xlabel("False Positive Rate")
plt.ylabel("True Positive Rate")
plt.title("Receiver Operating Characteristic (ROC) Curve")
plt.legend(loc='lower right')
plt.show()
# 分类评价指标
report = classification_report(y, y_pred.round(), target_names=['Class 0', 'Class 1'])
print("\nClassification Report:")
print(report)
```
请注意,你需要根据实际情况替换上述代码中的文件路径、特征列名和类别标签。同时,如果你的数据预处理、异常值检查等工作还没有完成,这些步骤也需要相应的处理。
阅读全文