数据处理与误差估计¶
Monte Carlo 的输出不是普通确定性程序的输出。每个观测量都带有统计误差,而且相邻样本通常相关。因此数据处理不能只做简单平均,还要判断热化、相关性、误差棒和不同随机种子的合并方式。
一个常见流程是:
热化¶
Markov chain 通常不是从平衡分布开始的。前面一段样本主要反映初始构型,而不是目标分布,需要丢掉。这段过程称为热化。
如果观测量序列为
热化后只使用
判断热化可以看几个信号:
- 不同初始构型的观测量是否收敛到同一区间。
- 能量、磁化率等慢变量是否已经没有系统漂移。
- 增加热化步数后,最终平均值是否在误差范围内稳定。
临界点附近自关联时间会变长,热化步数也要相应增加。
样本平均与简单误差¶
若样本近似独立,均值估计为
误差估计为
但 Monte Carlo 样本通常来自同一条 Markov chain,相邻样本存在相关性。此时上式会低估误差。
自关联时间¶
定义归一化自关联函数
积分自关联时间可写为
有效独立样本数大约是
这说明采样次数 \(N\) 很大并不自动代表误差很小。如果更新算法移动很慢,样本之间高度相关,真正有效的样本数会少很多。
Blocking¶
blocking 是处理相关样本的实用方法。把样本按连续区间分成大小为 \(B\) 的 block:
然后把这些 block average 当作新的样本来估计误差。随着 \(B\) 增大,block 之间的相关性降低,误差估计会逐渐进入平台。这个平台值通常比逐点误差更可信。
实际使用中可以画出误差随 block size 的变化。如果误差没有平台,说明样本长度可能还不够。
多随机种子合并¶
实际模拟常用多个随机种子并行计算。假设第 \(i\) 组数据给出平均值 \(Q_i\) 和误差 \(E_i\)。如果各组统计独立,可以用反方差加权平均:
同时可以检查一致性:
如果 \(\chi^2\) 明显异常,通常说明某些随机种子没有充分热化、误差被低估,或者程序参数并不完全一致。
Reweighting¶
如果模拟在参数 \(K_0\) 下采样,而目标是附近的 \(K\),可以使用 reweighting。设构型能量相关量为 \(E(s)\),权重变化为
则观测量可估计为
reweighting 的有效范围取决于两个分布的重叠程度。离采样点太远时,估计会被少数样本支配,误差迅速变差。
拟合与画图¶
Monte Carlo 数据最终通常用于拟合临界点、临界指数或有限尺寸标度函数。拟合前要确认三件事:
- 误差棒是否包含自关联和多随机种子合并的不确定性。
- 不同系统尺寸、参数点的采样质量是否相近。
- 拟合区间是否避开明显的有限尺寸修正或非渐近区域。
图像展示时,平均值和误差棒同样重要。没有误差棒的 Monte Carlo 图通常不能支持定量结论。