当前位置: 首页 > news >正文

数据分析实战:女性身高体重线性与多项式回归建模复盘

一、前言

日常数据分析中,回归分析是探究变量相关关系、构建预测模型的核心手段。本文以女性身高、体重样本数据为例,基于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_woman=pd.read_csv('women.csv',index_col=0,header=0) # 查看末尾样本 df_woman.tail(3)

3. 原始数据散点可视化

直观观察身高体重分布趋势,初步判断相关形态

plt.scatter(df_woman['height'],df_woman['weight']) plt.xlabel('height') plt.ylabel('weight') plt.show()

从散点图可直观看出,身高与体重存在明显正向相关趋势。

四、一元线性回归建模

1. 划分自变量与因变量

# 自变量二维格式适配模型 X=df_woman[['height']] # 因变量一维展平 y=df_woman['weight'] y=np.ravel(y)

2. 添加回归截距项

OLS 模型默认不含常数项,需手动补充

X_add_const=sm.add_constant(X.to_numpy())

3. 模型训练与结果输出

# 构建最小二乘模型 myModel=sm.OLS(y,X_add_const) # 拟合训练 results=myModel.fit() # 输出完整回归报表 print(results.summary())

4. 核心模型指标解读

  1. 回归系数results.params,对应方程截距与身高斜率,构建拟合直线公式
  2. 决定系数R2results.rsquared,取值 0-1,越趋近 1 代表拟合效果越好
  3. F 检验 P 值results.f_pvalue,判断模型整体显著性,P<0.05 说明模型有效

5. 残差诊断检验

回归模型需满足残差无自相关、近似正态分布两大假设

  1. DW 自相关检验
sm.stats.stattools.durbin_watson(results.resid)

取值 0~4,数值接近 2 表示残差无自相关,符合建模要求。

  1. JB 正态性检验
sm.stats.stattools.jarque_bera(results.resid)

P 值大于 0.05,说明残差服从正态分布,模型假设成立。

6. 线性拟合绘图

y_predict=results.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()

对比线性模型,多项式曲线能更好贴合样本离散分布。

六、核心知识点复盘

  1. OLS 最小二乘原理以残差平方和最小为目标求解回归系数,是经典线性回归求解算法。

  2. 模型评价核心指标

  • R2:衡量自变量对因变量的解释程度
  • F 检验:判定整体模型是否具备统计学意义
  • 系数 P 值:判断单个自变量影响是否显著
  1. 残差两大检验标准
  • DW 检验:排查残差序列自相关性
  • JB 检验:验证残差正态分布特性
  1. 线性与多项式回归适用场景线性回归结构简单、解释性强,适合线性相关数据;多项式回归适配非线性关系,拟合精度更高,需警惕过拟合问题。

七、总结

本次实操完成从数据读取、可视化探索,到线性、多项式双模型搭建,同时覆盖模型检验与结果绘图全流程。回归分析不仅可以量化变量关联关系,还能依托训练模型实现数值预测,日常统计分析、特征建模场景均可复用这套代码逻辑与检验思路。

http://www.cnnetsun.cn/news/2526869.html

相关文章:

  • 长期使用Taotoken Token Plan套餐在项目开发中的成本节省体会
  • 为什么92%的开发者用错Claude?3个致命误用场景与实时纠错工作流
  • 2026网盘天花板是谁?不谈噱头,只看同步、合规与协作:坚果云排第一
  • 3大核心功能让Windows 11重获新生:Win11Debloat系统优化实战指南
  • 开源胶片模拟革命:t3mujinpack如何用Hald CLUT技术为Darktable带来专业级胶片质感
  • KindEditor开源富文本编辑器:企业级内容创作的技术架构深度解析
  • Triton模型服务实战:从Notebook到高并发GPU推理
  • 洛雪音乐音源配置终极指南:5分钟打造你的专属音乐库
  • 别再踩坑了!Ubuntu 22.04 LTS 上 MySQL 5.7 保姆级安装与密码重置指南
  • 通过 TaoToken CLI 工具一键配置多开发环境下的模型密钥
  • 用动态主题建模挖掘科学文献中的真实研究趋势
  • SVGnest材料切割优化完全指南:5步实现智能矢量嵌套布局
  • 详解C++编译器优化技术
  • 如何用Godot RE Tools实现完整的Godot项目逆向工程恢复?
  • 5分钟实现游戏手柄控制PC的终极指南:Gopher360让你的客厅电脑焕然一新
  • C/C++高精度算法的实现
  • 告别仿真报错!手把手教你用Quartus II 18.1和ModelSim 10.5c创建第一个Testbench
  • 五分钟完成Node.js服务对接Taotoken多模型API的配置教程
  • Unity图表性能优化:从折线图到饼图的底层实现与避坑指南
  • 如何3分钟掌握AI智能填充:Fillinger终极实战指南
  • 大模型部署困境破局:Qwen模型ONNX格式转换与多平台部署实战
  • 新一代高性能SAR舰船智能检测数据集SSDD:从集中到分散的渐进式检测范式革新
  • 企业内训系统集成Taotoken实现多模型AI助教与可控的交互成本
  • 新手开发者首次接触 Taotoken 控制台的功能导览与核心操作
  • MATLAB机器人工具箱:从零到精通的机器人开发全攻略
  • Arduino UNO R3引脚图详解与供电方案选择:从USB到外接电源的避坑指南
  • Winhance中文版终极指南:3步让你的Windows飞起来
  • 注意力机制的幕后:它到底转化了什么?输入、输出与词向量的类比
  • 《纳瓦尔宝典》幸福篇精读:程序员如何在敲码之余获得内心的平静与幸福
  • 渐变不自然?曝光过曝?色阶断裂?Midjourney渐变风格全流程调优手册,30分钟重塑视觉一致性