谱分析
这个方法是做什么的
把序列的方差分解到各个频率上,回答“它到底有几个周期、周期多长”。频率与周期互为倒数,谱功率最高的那个频率就是主导频率。计算前模块已默认做线性去趋势,否则能量会全部堆在最低频。方法可选周期图或 Welch(分段平均),采样间隔、Welch 窗口长度、输出主峰个数都在控件里。
谱图上的峰高不能直接当结论——纯白噪声的理论谱是平的,但任何一次抽样都会冒出几个看着挺高的峰。判据是 Fisher's g = max(I_k)/ΣI_k 的精确检验,原假设就是“序列为高斯白噪声”。卡④ 再用 Shimshoni 序贯法逐峰剔除重做检验,首次不显著即停止,因此“显著峰数”天然已经控制了多重比较,不需要再加 Bonferroni。同卡还给归一化谱熵与谱平坦度两个无量纲的能量集中度指标。读这份报告的着眼点是:先确认 Fisher 检验拒绝了白噪声,再去读主导周期,顺序反了就是在解释噪声。
需要准备什么数据
- 放入时间序列变量:1 个,定量变量(数值)
- 放入时间变量(可选)(可选):0~1 个
数据要求
- 数据表至少 16 行。
- 单列缺失率不超过 20%。
- 不接受取值全都一样的列(零方差列没有可分析的变异)。
以上条目由系统从该方法的校验规则直接生成,与上传数据时的实际拦截规则一致。
什么时候用它
- 周期长度未知,需要先找出来再去填「季节分解模型」或「季节性ARIMA模型」的周期参数
- 怀疑序列里同时存在几个不同长度的周期,想知道各占多少方差
- 振动、声学、脑电这类天然以频域描述的信号
- 需要一个正式的周期性检验,而不是靠肉眼看图说“好像有周期”
前提是等间隔采样并已按时间排序。序列长度决定频率分辨率 Δf=1/(nΔt),n 小于 16 时傅里叶频率不足 8 个、无法辨识周期,因此下限是 16 行,15 行会被直接拦下。Welch 法另有一层讲究:窗口长度默认 32,序列不到两倍窗长时模块既不拦也不提示(实测 50 行照跑,卡① 的“有效段长”仍是 32),可供平均的分段数因此很少——窗口越长频率分辨率越好、能平均的段越少,卡① 的“有效段长”与傅里叶频率个数两行就是看这个权衡的。拖入“时间变量”后模块会按它排序:把演示数据行序打乱重跑,输出逐字不变。
什么时候不要用它
- 周期已知,你要的是每个相位高多少低多少:用「季节分解模型」,它给逐相位季节指数与置信区间。
- 你要的是预测值:谱分析只做频域描述、不外推,用「季节性ARIMA模型」。
- 关心的是各阶滞后的自相关结构、要给 ARIMA 定阶:用「(偏)自相关分析」。
- 只想把某个频带压掉或留下:那是处理不是识别,用「信号滤波」。
- 周期长度本身随时间变化:谱分析假定周期恒定,这种情形需要时频分析,产品未提供,可先用「突变点检测(Pettitt)」分段后再各自做谱分析。
- 中间缺了几期、时间轴出现空档:频率轴会失去意义,先用「多重插补」把缺口补齐再来;采样本身就不规则时本方法不适用。
容易误读的地方
- 切到 Welch 之后,周期性显著性检验整个不做了。 卡② 的 Fisher's g 与卡④ 的序贯 Fisher 都会标成“未做”,原因逐字写在那一行里:“Welch 法输出的是分段平均后的平滑谱,Fisher 检验的精确分布只对未平滑的周期图纵坐标成立”,并直接建议切回周期图。此时报告只剩一个描述性的最大谱峰功率占比,不构成显著性检验。要判断周期性成不成立,必须切回周期图。
- Welch 的频率格点由窗口长度决定,主导周期会跟着变,而这不是数据变了。 同一份月度演示数据:周期图给主导频率 0.083333、周期 12.0000,g=0.6212、p<0.001;切到 Welch(默认窗口 32)后主导频率变成 0.093750、周期 10.6667,前五个主峰的频率全部是 1/32 的整数倍。卡① 的“频率分辨率 Δf=fs/n”那一行是按整条序列长度算的,Welch 下真正起作用的是同表的“有效段长”,两行必须一起看。
- 非平稳序列的低频端能量不可解释。 演示的 ADF 给 p=0.948,未能拒绝非平稳。模块只做了线性去趋势,对随机趋势无能为力,残余的趋势会把能量堆到最低几个频率上,让人误以为发现了一个“超长周期”。看到 ADF 不显著,主峰若恰好落在最低几个频率上就要格外警惕,稳妥的做法是先差分再做谱分析。
- “可分辨的最长周期等于序列总时长”,比这更长的周期看不到,也不该硬报。 演示 n=120,最长可分辨周期就是 120。一个真实周期若接近或超过序列长度,它在谱上表现为最低频处的一根高柱,与残余趋势无法区分。想识别十年周期,至少要有二三十年的数据,这是分辨率的硬约束,换方法也绕不过去。
- 谱峰显著只说明该频率的能量突出,不解释生成机制。 卡⑤ 的解释边界写明:这里识别的是线性、平稳、等间隔采样意义下的周期成分,对非线性振荡与时变周期都不适用。一条序列的主导周期是 12,可能来自真实的年度季节性,也可能来自采样方式或数据整理流程的人为节律,两者在谱图上长得一模一样。
报告里有什么
- 输出结果一:数据概览与前提检验
- 输出结果二:主峰频率与周期性检验
- 输出结果三:时域与频域可视化
- 输出结果四:效应量与事后分析
- 输出结果五:结论与学术表述
上图为原始序列的时域走势,下图为其功率谱:横轴频率、纵轴该频率成分携带的能量。两图可通过右上角切换器在「折线/柱状/表格」之间互切,切换后的数据与图形完全同源。