热门角色不仅是灵感来源,更是你的效率助手。通过精挑细选的角色提示词,你可以快速生成高质量内容、提升创作灵感,并找到最契合你需求的解决方案。让创作更轻松,让价值更直接!
我们根据不同用户需求,持续更新角色库,让你总能找到合适的灵感入口。
本提示词提供专业数据分析指导,涵盖从数据准备、异常值与正态性检查、回归模型选择、结果计算到可视化和报告撰写的完整流程。用户可基于提供的因变量、自变量及样本量执行简单或多元回归分析,获得相关系数、R方值、p值及散点图,清晰解读变量间关系并总结分析发现,适用于科研、商业和统计分析场景。
引言
数据准备
回归分析
Python示例(可直接运行)
安装库:pip install pandas numpy seaborn statsmodels scikit-learn scipy matplotlib
代码片段:
df = pd.read_csv('data.csv')
current_year = pd.Timestamp.today().year df['房龄'] = current_year - df['建成年份']
if df['小区绿化率'].max() > 1.5: df['小区绿化率'] = df['小区绿化率'] / 100.0
df = df.dropna(subset=['成交价_万元','建筑面积_平米','卧室数','楼层','小区绿化率','地铁步行分钟','房龄'])
corr = df[['成交价_万元','建筑面积_平米','卧室数','楼层','小区绿化率','地铁步行分钟','房龄']].corr() print(corr['成交价_万元'].sort_values(ascending=False))
构建回归模型 X = df[['建筑面积_平米','卧室数','楼层','小区绿化率','地铁步行分钟','房龄']] y = df['成交价_万元'] X_const = sm.add_constant(X) model = sm.OLS(y, X_const).fit() print(model.summary())
VIF(多重共线性) X_vif = X_const.drop(columns=['const']) vif = pd.DataFrame({'变量': X_vif.columns, 'VIF': [variance_inflation_factor(X_vif.values, i) for i in range(X_vif.shape[1])]}) print(vif)
诊断与显著性
fitted = model.fittedvalues resid = model.resid sns.scatterplot(x=fitted, y=resid); plt.axhline(0,color='r',ls='--'); plt.xlabel('拟合值'); plt.ylabel('残差'); plt.show()
sm.qqplot(resid, line='45'); plt.show() print('Shapiro-Wilk:', stats.shapiro(resid))
bp_test = het_breuschpagan(resid, X_const) print('Breusch-Pagan (LM stat, LM p, F stat, F p):', bp_test)
from statsmodels.stats.stattools import durbin_watson print('Durbin-Watson:', durbin_watson(resid))
influence = model.get_influence() cooks = influence.cooks_distance[0] df['cooks'] = cooks print(df['cooks'].describe())
plt.stem(cooks, use_line_collection=True); plt.xlabel('样本索引'); plt.ylabel("Cook's distance"); plt.show()
结果
散点图:
相关系数:
回归方程(示例表达形式,系数由model.params提供): 成交价_万元 = β0 + β1·建筑面积_平米 + β2·卧室数 + β3·楼层 + β4·小区绿化率 + β5·地铁步行分钟 + β6·房龄
R方值与调整R方值:
p值及其他显著性度量:
解读
结论
如您愿意,可将数据文件或摘要统计上传,我可以基于真实数据直接计算并输出:相关系数表、回归方程与系数估计、R²/调整R²、各p值、诊断结果与图形,并提供一份可直接用于报告的结果文稿。
示例代码(Python,pandas+statsmodels+sklearn) 注意:以下为通用模板,请替换为实际数据集变量名。运行后填充数值到报告。
import pandas as pd import numpy as np from scipy import stats import seaborn as sns import matplotlib.pyplot as plt
df = pd.read_csv('data.csv')
df['是否续费'] = df['是否续费'].astype(int)
if df['邮件打开率'].max() > 1.0: df['邮件打开率'] = df['邮件打开率'] / 100.0
for col in ['使用时长_周','近30天活跃天数','邮件打开率','客服互动次数','历史支付金额_元']: df[col] = df[col].fillna(df[col].median()) df['折扣使用_二值'] = df['折扣使用_二值'].fillna(df['折扣使用_二值'].mode()[0])
def winsorize_series(s): lower = s.quantile(0.01) upper = s.quantile(0.99) return s.clip(lower, upper) for col in ['使用时长_周','客服互动次数','历史支付金额_元']: df[col] = winsorize_series(df[col])
from scipy.stats import pointbiserialr corrs = {} for col in ['使用时长_周','近30天活跃天数','邮件打开率','客服互动次数','历史支付金额_元','折扣使用_二值']: r, p = stats.pearsonr(df[col], df['是否续费']) # 对0/1 DV等价于点二列/phi corrs[col] = {'r': r, 'p': p}
import statsmodels.api as sm from statsmodels.stats.outliers_influence import variance_inflation_factor X = df[['使用时长_周','近30天活跃天数','邮件打开率','客服互动次数','折扣使用_二值','历史支付金额_元']].copy() X = sm.add_constant(X) vif = pd.DataFrame({ 'feature': X.columns, 'VIF': [variance_inflation_factor(X.values, i) for i in range(X.shape[1])] })
def box_tidwell(df, cont_cols): results = {} for col in cont_cols: z = df.copy() z = z[z[col] > 0] # 需>0 z[col+'_log'] = np.log(z[col]) z[col+'_bt'] = z[col] * z[col+'_log'] cols = ['使用时长_周','近30天活跃天数','邮件打开率','客服互动次数','历史支付金额_元','折扣使用_二值'] cols_bt = [c for c in cols if c != col] + [col, col+'_bt'] X_bt = sm.add_constant(z[cols_bt]) y = z['是否续费'] model = sm.Logit(y, X_bt).fit(disp=False) p_bt = model.pvalues[col+'_bt'] results[col] = p_bt return results
bt_p = box_tidwell(df, ['使用时长_周','近30天活跃天数','邮件打开率','客服互动次数','历史支付金额_元'])
uni = {} for col in ['使用时长_周','近30天活跃天数','邮件打开率','客服互动次数','折扣使用_二值','历史支付金额_元']: X1 = sm.add_constant(df[[col]]) y = df['是否续费'] m = sm.Logit(y, X1).fit(disp=False) params = m.params conf = m.conf_int() OR = np.exp(params) OR_CI = np.exp(conf) uni[col] = { 'beta': params[col], 'OR': OR[col], 'OR_CI_low': OR_CI.loc[col,0], 'OR_CI_high': OR_CI.loc[col,1], 'p': m.pvalues[col], 'AIC': m.aic }
X_full = sm.add_constant(df[['使用时长_周','近30天活跃天数','邮件打开率','客服互动次数','折扣使用_二值','历史支付金额_元']]) y = df['是否续费'] full_model = sm.Logit(y, X_full).fit() print(full_model.summary())
ll_full = full_model.llf ll_null = full_model.llnull mcfadden_r2 = 1 - (ll_full/ll_null)
params = full_model.params conf = full_model.conf_int() OR = np.exp(params) OR_CI = np.exp(conf)
from sklearn.model_selection import StratifiedKFold from sklearn.metrics import roc_auc_score, brier_score_loss, roc_curve from sklearn.linear_model import LogisticRegression
X_skl = df[['使用时长_周','近30天活跃天数','邮件打开率','客服互动次数','折扣使用_二值','历史支付金额_元']].values y_skl = df['是否续费'].values cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42) aucs, briers = [], [] for tr, te in cv.split(X_skl, y_skl): lr = LogisticRegression(max_iter=200, solver='lbfgs') lr.fit(X_skl[tr], y_skl[tr]) proba = lr.predict_proba(X_skl[te])[:,1] aucs.append(roc_auc_score(y_skl[te], proba)) briers.append(brier_score_loss(y_skl[te], proba)) cv_auc = np.mean(aucs) cv_brier = np.mean(briers)
sns.regplot(x='使用时长_周', y='是否续费', data=df, logistic=True, y_jitter=0.03) plt.title('使用时长_周 vs 续费概率(逻辑拟合)') plt.show()
sns.barplot(x='折扣使用_二值', y='是否续费', data=df, estimator=np.mean, ci=95) plt.title('折扣使用与续费率') plt.show()
proba_full = full_model.predict(X_full) fpr, tpr, thr = roc_curve(y, proba_full) plt.plot(fpr, tpr); plt.plot([0,1],[0,1],'--'); plt.title('ROC'); plt.xlabel('FPR'); plt.ylabel('TPR'); plt.show()
youden_idx = np.argmax(tpr - fpr) best_thr = thr[youden_idx] from sklearn.metrics import confusion_matrix, precision_recall_fscore_support y_pred = (proba_full >= best_thr).astype(int) cm = confusion_matrix(y, y_pred) prec, recall, f1, _ = precision_recall_fscore_support(y, y_pred, average='binary')
如您愿意提供数据样本或摘要输出(模型summary),我可以进一步代您计算并填入具体的相关系数、伪R方、p值、OR与可视化结果。
提示:以下为可复现代码框架(Python/Statsmodels),用于产出上述图表与统计量(将列名改为实际数据集中的列名):
如需,我可以基于您提供的实际数据集(CSV/Excel或DataFrame列名)直接运行上述流程,生成散点图、相关矩阵、回归方程、R²与p值表、诊断图,以及样本外预测误差与可执行的报告草稿。
为数据分析从业人员、研究者或对数据科学感兴趣的用户提供高效、专业且全面的回归分析指导,帮助其在探索变量间关系时快速获取清晰、可操作的分析方案。
为团队提供专业数据分析报告,通过自动化指导快速完成回归模型分析,并生成易于分享的可视化结果。
简化数据分析流程,快速验证假设,获得具有统计与实际意义的数据分析成果,为论文和研究提供数据支撑。
通过分析市场指标间的关系,生成可落地的洞察报告,优化营销策略或揭示产品改进方向。
将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。
把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。
在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。
半价获取高级提示词-优惠即将到期