
一、前言日常数据分析中回归分析是探究变量相关关系、构建预测模型的核心手段。本文以女性身高、体重样本数据为例基于pandas数据读取、matplotlib可视化、statsmodels最小二乘建模依次完成一元线性回归与三次多项式回归建模附带模型显著性检验、残差诊断全流程适合回归基础复盘与代码实操复习。二、环境与依赖库本次实战用到核心库import os import pandas as pd import numpy as np import matplotlib.pyplot as plt import statsmodels.api as sm三、数据读取与探索1. 工作路径校验先确认文件读取路径避免 csv 文件找不到报错print(os.getcwd())2. 加载数据集以身高为自变量、体重为因变量读取本地women.csv文件df_womanpd.read_csv(women.csv,index_col0,header0) # 查看末尾样本 df_woman.tail(3)3. 原始数据散点可视化直观观察身高体重分布趋势初步判断相关形态plt.scatter(df_woman[height],df_woman[weight]) plt.xlabel(height) plt.ylabel(weight) plt.show()从散点图可直观看出身高与体重存在明显正向相关趋势。四、一元线性回归建模1. 划分自变量与因变量# 自变量二维格式适配模型 Xdf_woman[[height]] # 因变量一维展平 ydf_woman[weight] ynp.ravel(y)2. 添加回归截距项OLS 模型默认不含常数项需手动补充X_add_constsm.add_constant(X.to_numpy())3. 模型训练与结果输出# 构建最小二乘模型 myModelsm.OLS(y,X_add_const) # 拟合训练 resultsmyModel.fit() # 输出完整回归报表 print(results.summary())4. 核心模型指标解读回归系数results.params对应方程截距与身高斜率构建拟合直线公式决定系数R2results.rsquared取值 0-1越趋近 1 代表拟合效果越好F 检验 P 值results.f_pvalue判断模型整体显著性P0.05 说明模型有效5. 残差诊断检验回归模型需满足残差无自相关、近似正态分布两大假设DW 自相关检验sm.stats.stattools.durbin_watson(results.resid)取值 0~4数值接近 2 表示残差无自相关符合建模要求。JB 正态性检验sm.stats.stattools.jarque_bera(results.resid)P 值大于 0.05说明残差服从正态分布模型假设成立。6. 线性拟合绘图y_predictresults.predict() plt.rcParams[font.family] simHei plt.scatter(df_woman[height], df_woman[weight]) plt.plot(df_woman[height], y_predict) plt.title(女性体重与身高线性回归拟合) plt.xlabel(身高) plt.ylabel(体重) plt.show()五、三次多项式回归建模线性直线无法贴合非线性数据趋势时引入高次项提升拟合度1. 构造三次特征项X df_woman[[height]] # 拼接一次、二次、三次项 X_poly np.column_stack((X, np.power(X, 2), np.power(X, 3))) # 补充截距 X_poly_const sm.add_constant(X_poly)2. 多项式模型训练myModel_updated sm.OLS(y, X_poly_const) results_updated myModel_updated.fit() print(results_updated.summary())3. 拟合效果可视化y_predict_updated results_updated.predict() plt.scatter(df_woman[height], df_woman[weight]) plt.plot(df_woman[height], y_predict_updated) plt.title(女性体重与身高多项式回归分析) plt.xlabel(身高) plt.ylabel(体重) plt.show()对比线性模型多项式曲线能更好贴合样本离散分布。六、核心知识点复盘OLS 最小二乘原理以残差平方和最小为目标求解回归系数是经典线性回归求解算法。模型评价核心指标R2衡量自变量对因变量的解释程度F 检验判定整体模型是否具备统计学意义系数 P 值判断单个自变量影响是否显著残差两大检验标准DW 检验排查残差序列自相关性JB 检验验证残差正态分布特性线性与多项式回归适用场景线性回归结构简单、解释性强适合线性相关数据多项式回归适配非线性关系拟合精度更高需警惕过拟合问题。七、总结本次实操完成从数据读取、可视化探索到线性、多项式双模型搭建同时覆盖模型检验与结果绘图全流程。回归分析不仅可以量化变量关联关系还能依托训练模型实现数值预测日常统计分析、特征建模场景均可复用这套代码逻辑与检验思路。