。讲义全程 MATLAB,我翻译成 Python 记了。

初等数据处理方法

Ref: 初等数据处理方法.pdf

源头问题:先想清楚数据从哪来

  • 三个基本问题:采集什么数据 (what to collect)、怎样采集 (how to collect)、怎样分析 (how to analyze)。
  • 建模前先评估数据精确性:收集方式、测量设备精度、可疑点。

国赛例子速记(按「数据从哪来」分类):

  • 数据给了,但给的是采集人不懂该采什么的原始记录(2004 国赛「奥运场馆周围临时商店的建设问题」):题目给了很多数据——规划局在前三次亚运会期间采集的;采集人大约是志愿者之类,完全不懂该采集什么数据才对解决问题有用,于是把所有数据都记了下来。→ 教训:先想清楚什么数据能说明问题,再决定采什么。
  • 数据根本不给,要自己判断找什么(2010 国赛「试评估上海世博会的影响力」):首先必须确定从哪个方面评估、什么数据最能体现问题本质,然后自己去查找数据。→ 教训:评估维度决定数据需求。
  • 反过来问你需要什么数据(2011 国赛 A 题「重金属的污染问题」):最后一问是「需要什么数据,我们可以确定城市土质变化的趋势」。→ 判断还缺什么数据本身也是建模的一环。
  • 数据、指标、模型全部自己搭(2015 国赛 B 题「互联网+时代的出租车资源配置」):多家公司依托移动互联网建立打车软件平台,实现乘客与司机信息互通,并推出多种补贴方案。要求搜集相关数据,建立数学模型研究:
    1. 建立合理指标,分析不同时空出租车资源的「供求匹配」程度;
    2. 分析各公司补贴方案是否对「缓解打车难」有帮助;
    3. 若创建新的打车平台,设计怎样的补贴方案并论证其合理性。

数据质量先于建模

无论试验设计得多精心,拟合模型前都要评估数据精确性:数据是怎么收集的?测量设备精度如何?有没有可疑点?——这是讲义 p.7 的提醒,也是竞赛论文常被忽略的一步。

观察法与初等数学方法

思路一:数据呈比例关系 → 直接读斜率。

例(开普勒第三定律):第谷 13 年火星观测数据 → 开普勒三定律。第三定律 ,其中 为公转周期(天), 为到太阳的平均距离。对 作图得到过原点的直线,斜率约 :

核心手法:非线性关系 → 取幂/对数画成线性 → 用斜率读出比例常数。

物理/经济学里的函数模型:

定律/模型公式
波义耳定律 (Boyle’s law)
胡克定律 (Hooke’s law)
万有引力 (Newton)
欧姆定律 (Ohm’s law)
经济函数生产 / 需求 / 供给 / 总成本 / 总收益 / 总利润 / 效用 / 消费 / 储蓄

思路二:初等数学建模。

例(方椅子问题):地面连续、四腿着地点 。设 为 两腿离地距离和, 为 两腿离地距离和。三条腿总能同时着地 ⟹ 。设 ,旋转 后角色互换,故 在 与 处异号; 连续 ⟹ 零点定理 ⟹ 存在 使 ,四腿同时着地。

套路总结

把实际问题抽象成连续函数 + 介值/零点定理,是观察法建模的代表作。

拟合 (Fitting)

定义:从观测数据 找近似函数 ,不要求过所有点,只要求整体偏差最小、反映数据趋势。

三种判别准则:

  1. 绝对偏差之和最小:
  2. 最大绝对偏差最小(Chebyshev 近似):
  3. 最小二乘:

Chebyshev → 线性规划:线段 的差异分配问题。令残差 ,求 且 。推广: s.t. 。

最小二乘(重点,推导要会):线性拟合 ,极小化 ,令 得正规方程组:

可线性化拟合: ⟹ 化为一元线性。例:, ⟹ 拟合 得 ,即 。

插值 (Interpolation)

定义:近似函数精确通过所有已知点,用于已知点之间补值;要求数据比较准确。

  • 插值多项式: 个互异节点 ⟹ 唯一 次插值多项式(Vandermonde 行列式非零)。
  • 插值余项:
  • Lagrange 插值:基函数 ,。
  • Newton 插值(差商):一阶差商 ,高阶递推;

优点:加节点只加一项,计算量小于 Lagrange。

  • Hermite 插值:节点处函数值 + 一阶导数同值,至多 次。
  • Runge 现象: 等距节点高次插值振荡,次数越高越糟。
  • 分段线性插值:相邻节点直线连接,收敛性有保证 。
  • 样条插值 (spline):每段 次多项式 + 连接处直到 阶导数连续;重点二次/三次样条。

拟合 vs 插值

拟合 (fitting)插值 (interpolation)
是否过点不过所有点必须过所有点
适用场景数据有误差、看趋势数据精确、补未知点

MATLAB ↔ Python 对照

MATLABPython
polyfit / polyvalnumpy.polyfit / numpy.polyval
interp1 (linear/spline/cubic)scipy.interpolate.interp1d / CubicSpline / PchipInterpolator
csape + ppvalscipy.interpolate.CubicSpline
cftool手动绘图 + scipy.optimize.curve_fit
regressstatsmodels OLS / sklearn.linear_model.LinearRegression
ztest / ttest / ttest2statsmodels.stats.weightstats.ztest / scipy.stats.ttest_1samp / scipy.stats.ttest_ind
anova1scipy.stats.f_oneway
卡方拟合优度检验scipy.stats.chisquare

案例

  • 机床加工(理工类):机翼断面下轮廓数据,三次样条插值,把 步长加密到 0.1。
  • 海底地貌探测(社科类):散点水深数据 → 二维插值 → 曲面/等高线图,标出水深 < 5m 禁航区。
  • 醉汉行进路线(日常类):已知原型 ,最小二乘定系数。

回归相关数据处理

Ref: 回归相关数据处理.pdf

统计基础

位置统计量:均值 ;中位数( 奇/偶分情况);百分位数。

分散程度:样本方差( 与无偏 )、标准差、变异系数 、极差、标准误 。

分布形状: 阶原点矩/中心矩、偏度 (对称=0)、峰度 。

三大分布:

分布构造记号
正态 为标准正态
标准正态平方和
两个独立 之比

抽样分布(单正态总体):

区间估计速查:

参数条件置信区间
已知
未知
未知
方差均未知且相等

参数估计

  • 矩估计:用样本矩替代总体矩,。
  • 极大似然估计 (MLE):。
  • 评价标准:无偏性 ;有效性(同无偏,方差小者优);一致性 。

假设检验(分布已知)

单总体均值:

检验统计量MATLAB
已知ztest
未知ttest

拒绝域按右侧/左侧/双侧取 、、;p 值越小原假设越值得怀疑。例子:

  • 包装机( 已知):ztest(x, 0.5, 0.015) → ,拒绝,机器不正常。
  • 元件寿命( 未知,右尾):ttest(x, 225, 0.05, 1) → ,不拒绝。
  • 双总体均值:ttest2。两种种子 ,,,无显著差异。

卡方检验(分布未知):

  1. 有限类、无未知参数:
  2. 含 个未知参数(用 MLE 替代):
  3. 连续分布:分组 → 频数 → 同上,要求各

例:200 件混凝土抗压强度是否正态。组中值估 ,,接受正态假设。

一元线性回归

模型 ;假设 、独立同方差、正态。

最小二乘估计 (OLSE):

正态假设下 MLE 与最小二乘等价。

显著性检验(),平方和分解 :

  • F 检验:
  • t 检验:
  • 相关系数检验:,查临界值表

一元时 F、t、相关系数三者等价;多元时只有 F 能整体推广。

例子:

  • 合金强度:,
  • 积雪灌溉:, 显著; 预测 ,95% 区间

多元线性回归

模型 ;假设:满秩 、高斯-马尔可夫条件(零均值/同方差/无自相关)、正态。

矩阵形式(必背):

检验:整体 F:;单个系数 t:。多元时 F 管整体、t 管单个,不再等价。

拟合优度:,调整 。 直观但不能替代显著性检验。

例子:

  • 血压:()
  • 土壤磷:

方差分析 (ANOVA)

单因素:( 为水平 的效应,),检验 :

例:五名工人产量 anova1 → ,无显著差异。

双因素无重复:,(交互并入误差),A、B 各一个 F 检验。

双因素等重复:(含交互项),,三个 F 检验(A、B、交互)。

方法选择速查

想做什么用哪个方法
数据有误差,找趋势拟合(最小二乘)
数据精确,补点/加密插值(样条/分段线性)
判断数据是否服从某分布卡方检验
连续变量预测 + 显著性论证线性回归(一元/多元)
分组因素是否显著影响指标方差分析(单/双因素)

主线

两讲合起来就是数据建模的两条路:确定性问题用拟合/插值还原函数;随机性问题用「估计 → 检验 → 回归/方差分析」做统计推断。