You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何确定WaveletComp::analyze.wavelet的上下周期?(NO₂分钟数据)

确定WaveletComp::analyze.wavelet的lowerPeriod和upperPeriod参数取值

参数含义回顾

  • lowerPeriod:小波分析的最小周期,单位与dt一致(这里dt=1,即分钟)
  • upperPeriod:小波分析的最大周期,单位同样为分钟

基于5个月分钟级NO₂数据的取值建议

1. lowerPeriod的选择

你的数据采样间隔为1分钟,结合小波分析的Nyquist准则(最小可靠周期通常为2倍采样间隔),可根据研究目标调整:

  • 若需捕捉超短期波动(如分钟级突发排放、设备噪声):设为2,避免1分钟周期的结果不可靠性
  • 若聚焦小时级及以上的周期(如早晚高峰、日变化规律):设为60(1小时),过滤无意义的短周期噪声

2. upperPeriod的选择

5个月分钟级数据总长度约为5*30*24*60=216000分钟,小波分析中最大可靠周期建议不超过数据长度的1/2(避免边界效应导致偏差),即最大约108000分钟(75天)。结合NO₂的常见周期特征:

  • 关注日/周尺度周期(工作日与周末差异):设为10080(7天,即10080分钟)
  • 覆盖月尺度周期(月度排放规律):设为43200(30天,即43200分钟)
  • 探索更长周期:最多设为108000(75天),但需注意边界区域的结果可靠性

额外代码修正提示

你的代码存在两处需调整的问题:

  • 参数名错误:my series应改为my.series(下划线连接,而非空格)
  • dj取值不合理:dj=1/length(Messbox$no2)会导致频率分辨率过高,计算量爆炸,通常建议设为0.25或0.5(平衡分辨率与计算效率)

修正后的示例代码:

library(WaveletComp)

# 示例:聚焦小时到月尺度周期
wave <- analyze.wavelet(
  my.data = Messbox[, c("date", "no2")], 
  my.series = "no2", 
  loess.span = 0.75, 
  dt = 1, 
  dj = 0.25, 
  lowerPeriod = 60, 
  upperPeriod = 43200, 
  make.pval = TRUE, 
  method = "white.noise", 
  n.sim = 100, 
  date.format = "%Y-%m-%d", 
  date.tz = "UTC", 
  verbose = TRUE
)

内容的提问来源于stack exchange,提问作者Lara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 18:17:35