本页目录
建模 I · 方法论与量纲分析
建模要回答的不是“能否画出一条曲线”,而是“这条曲线能支持哪一个判断”。本页把目标、假设、校准、验证和外推逐项拆开,再用量纲矩阵说明:不解方程也能排除错误形式,但不能凭单位确定全部物理规律。
学习层:训练误差很小,为什么未来还可能差很多?
1. 一个可复算的问题
考虑十个人为选定的教学观测 \(120,148,182,220,260,302,345,381,410,430\),单位为人;对应时刻为 \(t=0,\ldots,9\) 日。它们不是某个真实产品的记录。目标是用前 \(n\) 个点校准,再预测后面的留出点与尚无观测的未来。
指数增长和 Logistic 都能贴近前几个点。若只用前三点,搜索容量上限从 \(728\) 改成 \(2184\),训练 RMSE 可以从约 \(.289\) 降到 \(.0084\),而留出 RMSE 反而从约 \(28.94\) 升到 \(113.13\)。更贴合训练点,并不保证更好的留出预测。
2. 先作判断,再揭示
小训练误差能否证明容量 \(K\) 已被准确识别?先选择判断,再查看三幅图:
- 校准、留出与未来曲线:哪些点用于定参,哪些点用于检查?
- 有符号残差:误差是否连续偏向同一侧?
- 容量搜索曲线:最优候选是否顶到人为设定的搜索边界?
图和两份账本可以横向滚动;手机上聚焦区域后也可使用左右方向键。
3. 最小模型与数值方法
指数候选为 \(N(t)=Ae^{rt}\),Logistic 候选为
实验用一个透明的近似校准法。指数模型对 \(\log(y/1\text{人})\) 做直线最小二乘。Logistic 对每个固定候选 \(K\),先拟合 \(\log(K/y-1)=\log C-rt\),再比较原人数尺度的训练平方误差。容量只搜索有限区间内的 \(361\) 个等距候选。
这不是完整的非线性最小二乘全局求解。特别是对数尺度与人数尺度的平方误差不是同一个目标,有限网格也可能错过区间外的更优解。实验把方法与限制同时显示出来。
4. 把“区间”说清楚
参数扰动保持拟合的初值和另一参数不变:Logistic 改变 \(K\),保持 \(N(0)\)、\(r\);指数模型改变 \(r\),保持 \(A\)。两条扰动曲线组成情景包络,没有重新拟合,也没有指定噪声模型、抽样分布或置信水平。因此它既不是参数置信区间,也不是未来观测的预测区间。
JavaScript 失效时: 默认 \(n=5\),容量搜索上限取训练最大值的 \(4\) 倍(至少比它大 \(400\)),未来时刻 \(t=17\)。有限网格给出 \(K\approx622.469\)、\(r\approx.276056/\text{日}\),训练 RMSE 约 \(.3885\) 人,留出 RMSE 约 \(15.80\) 人。未来预测约 \(599.40\) 人;将 \(K\) 改为 \(.9K\) 与 \(1.1K\),固定初值和 \(r\),得到约 \(541.95\) 与 \(656.33\) 人。这是两个参数情景,不能读成“未来有某个概率落在两者之间”。
5. 验证数据也会被用掉
前 \(n\) 点用于定参,后 \(10-n\) 点用于留出检查。若不断查看留出误差,再选择模型、训练窗口或搜索范围,留出结果也参与了选择;它不再是完全未使用的测试证据。本页没有额外独立测试集,\(t>9\) 更没有真值。实验练习的是检查方法,不能宣布真实市场容量已验证。
1. 一个完整的建模问题包含什么?
先把自然语言问题写成五个对象:
| 对象 | 需要说明 | 本页例子 |
|---|---|---|
| 目标量 | 预测、解释还是选择行动? | 预测某个未来时刻的人数 |
| 数据口径 | 单位、时刻、采样和缺失机制 | 日尺度十个教学观测,起始时刻为零 |
| 假设 | 哪些机制固定,哪些因素省略? | 固定增长机制,没有季节或干预项 |
| 损失与约束 | 错多少可以接受,哪些结果不可用? | 用人数尺度 RMSE 比较误差 |
| 使用范围 | 谁在何时使用,何时必须重估? | 短期验证与远期外推分别报告 |
“减少拥堵”还不是可求解目标;“在给定需求和安全约束下,减少一个路口早高峰的平均延误”才开始明确。平均数仍可能掩盖极端等待,因此目标还可能需要分位数或公平性约束。目标的选择包含实际价值判断,数学求解不能替你自动选择。
1.1 六步循环,每一步都留下证据
- 定义问题: 指定目标量、决策时点与数据口径。
- 提出假设: 写出忽略了什么,以及哪种观察会使假设失效。
- 建立模型: 选状态、参数、方程及初边值条件,标明单位。
- 求解或校准: 给出算法、搜索域、停止条件和数值误差。
- 检查和验证: 分别检查实现、模型假设与对新数据的预测。
- 解释并修订: 报告误差、适用范围,以及新增数据后如何重估。
要区分两个问题。实现检查问“程序是否正确求了所写方程”,可以用解析特例、守恒量和收敛测试回答;模型验证问“这些方程对目标现实是否足够准确”,需要对应现实或实验的数据。把微分方程求得非常精确,不能证明方程包含了所需机制。
2. 校准:损失函数也是模型选择
设训练时刻为 \(t_i=i,\ i=0,\ldots,n-1\)。原尺度平方误差为
若 \(y\) 的单位为人,SSE 的单位是人平方,而 \(RMSE_{\rm train}=\sqrt{SSE/n}\) 的单位为人。这里除以 \(n\) 是描述性平均误差,不是用自由度修正估计噪声方差。
对数回归最小化 \(\sum[\log(y_i/y_{\rm ref})-\log(N(t_i)/y_{\rm ref})]^2\)。 它关注相对尺度;原尺度平方误差则更重视绝对人数差。对数必须作用在无量纲比值上,\(y_{\rm ref}=1\) 人只是参考单位,不能把单位选择解释成新的机制。
若假定乘性对数正态误差,指数化后的拟合趋势也不自动是人数的条件均值;均值需要相应的噪声补偿。本实验没有估计这种噪声模型,只展示两种校准候选。
2.1 固定容量后,怎样拟合 Logistic?
当 \(K>\max y_i\) 时,令 \(z_i=\log(K/y_i-1)\),对 \(z_i=b+mt_i\) 做直线最小二乘:
本页固定数据得到正增长率。对一般数据,负增长、零值或大于候选容量的值会改变可用模型,不能无条件使用这个变换。
搜索区间定义为
对其中 \(361\) 个候选,重新计算 \(\hat r,\hat C\),用原尺度训练 SSE 选择最小者。区间只依赖训练数据,不偷看留出值。扩大区间会同时改变网格间距;内部最优候选也不构成连续优化或参数识别的证明。
3. 验证、识别性与外推
留出误差为
时间序列应按问题的实际预测方向切分。随机打散可能把未来信息带入训练,也可能破坏依赖结构;标准化、特征选择与参数搜索同样应放在各自训练窗口内。更多数据时,可以使用多个向前滚动的验证窗口,并在方案确定后保留最终测试段。
除了 RMSE,还要看有符号残差 \(e_i=y_i-\hat y_i\) 随时间的变化。连续同号、弯曲或波动幅度变化可能提示趋势遗漏、相关性或异方差;十个点不足以仅凭图形正式确认这些机制。NIST 的模型检查资料也强调残差图提供的信息不能由一个拟合指标完全替代。NIST:如何检查拟合
3.1 结构可识别与实际可识别
结构可识别性考察理想无噪声、足够观测下,不同参数是否可能产生完全相同的可观测结果。实际可识别性考察给定有限、有噪声数据是否足以把参数区分得足够准确。二者都不同于“优化器返回了一个数”。
当 Logistic 轨迹远低于容量时, \(N'=rN(1-N/K)\approx rN\),不同大容量的早期曲线会非常接近。这说明容量可能难以从当前窗口估计,不意味着“只要在拐点前就绝对不可识别”。数据精度、窗口长度、初值、噪声模型和其他观测都会影响结论。
3.2 灵敏度必须说明“固定什么”
把 Logistic 写成初值形式
令 \(q=e^{-rt}\)、\(D=1+(K/N_0-1)q\),在固定 \(N_0,r,t\) 时,
在 \(t=0\),灵敏度为零,因为初值被固定;到很晚且 \(r>0\) 时,弹性趋于 \(1\)。固定 \(C\) 而改变 \(K\) 会同时改变初值,得到的是另一个问题。本页扰动实验固定 \(N_0,r\),据此重算 \(C\)。
局部导数、有限参数扰动、重新校准后的参数剖面、统计置信区间各有不同含义。若关心目标决策,还应检查模型结构变化,而不只在某个参数附近加减百分之几。
4. 量纲分析:把单位约束变成线性代数
量纲齐次是物理方程成立的必要条件,不是充分条件。它不能替代缺失变量、初边值条件或经验常数。例如距离 \(x=Dt\) 在扩散系数 \([D]=L^2T^{-1}\) 下量纲错误;尺度 \(x\sim\sqrt{Dt}\) 自洽,但系数和“距离”究竟指标准差、半高宽还是分位点仍需定义。
4.1 Buckingham π 定理的矩阵形式
设 \(n\) 个正物理量的量纲指数为矩阵 \(D\) 的列,秩为 \(r\)。幂乘积 \(\pi=\prod_{j=1}^n q_j^{a_j}\) 无量纲,当且仅当
因此独立无量纲幂组合的数量是 \(n-r\)。取的是矩阵秩,不是写下了几个基本量纲名称。 在变量清单完整、规律在单位变换下不变等假设下,关系可以写成这些组合之间的关系。
为什么零空间足够?对正量取数值的对数,改变基本单位只会使向量沿 \(D^\mathsf T\) 的列空间平移;\(\ker D\) 中的向量与这些方向正交。用零空间的一组基投影,得到单位变换不能改变的 \(n-r\) 个坐标。对数只是证明工具,最终组合仍写成物理量的幂乘积。含零值或符号变化时,应在合适区域使用并另外处理边界。
这些组合不是唯一的;独立组合之间可以重新组合。定理不保证能把某一个输出全局唯一地解成其他组合的函数,更不能确定未知函数的具体形状。MIT:Buckingham π 定理
4.2 单摆:质量消失,但振幅没有消失
若理想单摆周期只依赖摆长 \(l\)、重力加速度 \(g\)、质量 \(m\) 和无量纲振幅 \(\theta_0\),变量按 \((T_{\rm pend},l,g,m,\theta_0)\) 排列:
行分别是质量、长度、时间,秩为 \(3\)。零空间可取 \(T_{\rm pend}\sqrt{g/l}\) 与 \(\theta_0\),因此在可定义周期的摆动范围内
质量在这份变量清单中没有可搭配的无量纲比值,所以不出现。若还存在空气密度、阻力等量,变量清单改变,不能据此宣称实际摆永远与质量无关。
小振幅极限的线性化方程给 \(F\to2\pi\);系数 \(2\pi\) 来自动力学。有限振幅下,由能量积分可得
当振幅趋向竖直向上的临界位置,周期发散。量纲分析容许这个无量纲依赖,但不能单独算出它;振幅恰为零是静止解,“小角周期”指趋近零振幅的极限。
4.3 相似准则必须连同条件一起匹配
令 \(x^*=x/L,\ t^*=t/T_c\) 可以把方程写成无量纲形式。但两个系统要有相同的无量纲解,还需匹配几何、初边值条件和所有相关无量纲参数,并在解存在且唯一等适当条件下比较。
例如 Logistic 取 \(u=N/K,\ \tau=rt\),得到 \(du/d\tau=u(1-u)\),方程中的 \(r,K\) 消失,初值 \(u(0)=N_0/K\) 仍然保留。\(0<u_0<1/2\) 会在之后经过拐点;\(1/2<u_0<1\) 从一开始就向下凹;\(u_0>1\) 则递减趋向 \(1\)。不能把所有初值都称为同一条 S 形曲线。
对近似点爆炸,若只保留能量 \(E\)、环境密度 \(\rho\)、时间 \(t\) 与半径 \(R\),量纲平衡给 \(R=C(Et^2/\rho)^{1/5}\)。系数仍可依赖绝热指数等无量纲材料参数;有限初始尺度、环境压力或能量损失若不可忽略,就会引入新的组合。变量清单本身是待检验的建模假设。
5. 选模型时,保留目标与边界
| 选择 | 能得到什么 | 仍需检查什么 |
|---|---|---|
| 机理模型 | 显式状态、守恒和机制解释 | 机制是否适用,参数和边界是否正确 |
| 数据模型 | 从观测学习预测关系 | 数据覆盖、偏差、分布变化与泄漏 |
| 确定性模型 | 给定条件下的单一演化 | 忽略波动是否影响目标决策 |
| 随机模型 | 分布、风险与随机事件 | 噪声分布和依赖假设能否支持 |
| 混合模型 | 用机制限制结构,再用数据定参 | 各部分误差是否可区分和验证 |
机理模型并不天然保证可靠外推,黑箱模型也不天然不能用于决策;关键在于证据是否覆盖当前用途。特征标准化主要改变数值尺度和条件数,不自动等同于物理无量纲化,更不自动建立相似定律。
6. 练习与推导
练习 1:量纲名称多,秩一定大吗?
只列位置 \(x\)、速度 \(v\)、时间 \(t\),却把基本量纲写成质量、长度、时间。独立无量纲组合有几个?
展开推导
量纲矩阵为 \(D=\begin{pmatrix}0&0&0\\1&1&0\\0&-1&1\end{pmatrix}\),秩为 \(2\),不是 \(3\)。 因此有 \(3-2=1\) 个独立组合,可取 \(x/(vt)\)(\(v,t\ne0\))。若存在加速度、初始位置或其他相关量却漏写,不能据此断言所有运动都满足同一个 \(x/(vt)\) 常数。
练习 2:更小训练误差为什么不是胜利?
前三点校准时,容量搜索上限 \(728\) 与 \(2184\) 都成为最优候选,后者训练 RMSE 更小。是否应该直接选择后者?
展开推导
不能仅凭训练误差选择。两次结果都触边,说明容量选择受搜索域影响;后者在这组数据上的留出 RMSE 约 \(113.13\) 人,明显高于前者约 \(28.94\) 人。应检查目标、验证误差、残差形状和搜索范围。用留出结果选择之后,还需新测试数据来评估所选方案,不能重复把同一留出集当未使用证据。
练习 3:去掉方程参数,是否去掉了全部差别?
两条 Logistic 曲线有不同 \(r,K,N_0\)。无量纲化后方程相同,是否意味着从 \(\tau=0\) 开始的轨迹相同?
展开推导
只有初始比例也相同,才由同一初值问题得到同一条无量纲轨迹: \(u(\tau)=1/[1+(u_0^{-1}-1)e^{-\tau}]\),适用于 \(u_0>0\);\(u_0=0\) 则恒为零。 例如 \(u_0=.1\) 与 \(.8\) 虽然都趋向 \(1\),初始位置、是否在未来经过拐点以及达到指定比例的时间都不同。尺度变换不应抹掉初值。
下一页:经典模型把这些检查应用到增长、SIR、捕食与排队。需要数据误差模型时,可回到回归;需要算法误差时,可回到数值积分与 ODE。