【问题标题】:Simple moving average for random related time values随机相关时间值的简单移动平均值
【发布时间】:2017-09-02 20:38:01
【问题描述】:

我是初学者,正在寻求简单移动平均线 SMA 方面的帮助。我正在使用列文件,其中第一个与时间有关,第二个与值有关。时间间隔是随机的,值也是随机的。通常文件不大,但过程是长时间收集数据。最后文件看起来类似于:

+-----------+--------+
|时间 |价值 |
+-----------+-------+
| 10 | 3 |
|第1345章50 |
| 1390 | 4 |
| 2902 | 10 |
| 34057 | 13 |
| (...) | |
| 898975456 | 10 |
+-----------+-------+

整个进程后的行数在 60k-100k 左右。

然后我尝试在某个时间窗口内“平滑”数据。为此,我使用 SMA。 [AWK_method]

awk 'BEGIN{size=$timewindow} {mod=NR%size; if(NR<=size){count++}else{sum-=array[mod]};sum+=$1;array[mod]=$1;print sum/count}' file.dat

为了使用预定义的$timewindow 实现 SMA 的正常工作,我创建了填充零的线性增量。接下来,我使用不同的$timewindow 运行脚本并观察结果。

+-----------+-------+ |时间 |价值 | +-----------+-------+ | 1 | 0 | | 2 | 0 | | 3 | 0 | | (...) | | | 10 | 3 | | 11 | 0 | | 12 | 0 | | (...) | | |第1343章0 | | (...) | | | 898975456 | 10 | +-----------+-------+

对于小数据来说还是比较舒服的,但是现在比较费时间,而且创建的文件也开始太大了。我对 Gnuplot 也很熟悉,但 SMA 是地狱......

所以这是我的问题:

  • 是否可以更改 awk 解决方案以绕过用零填充数据?
  • 您是否推荐任何其他使用 bash 的解决方案?
  • 我也考虑过学习python,因为在学习了6个月的bash之后,我知道了它的局限性。我能否在不创建大数据的情况下在 python 中解决这个问题?

我会很高兴得到任何形式的帮助或建议。

最好的问候!

[AWK_method]http://www.commandlinefu.com/commands/view/2319/awk-perform-a-rolling-average-on-a-column-of-data

【问题讨论】:

  • 该样本随机数据的预期输出是什么?

标签: python bash awk gnuplot


【解决方案1】:

你包含了一个python标签,检查痕迹:

http://traces.readthedocs.io/en/latest/

以下是其他一些见解:

Moving average for time series with not-equal intervls

http://www.eckner.com/research.html

https://stats.stackexchange.com/questions/28528/moving-average-of-irregular-time-series-data-using-r

https://en.wikipedia.org/wiki/Unevenly_spaced_time_series

以粗体表示的关键短语以进行更多研究:

在统计学、信号处理和计量经济学中,不均匀(或不等或不规则)间隔的时间序列是观察时间和值对 (tn, Xn) 的序列,观察时间严格递增。与等间隔的时间序列相反,观察时间的间隔不是恒定的。

【讨论】:

    【解决方案2】:
    awk '{Q=$2-last;if(Q>0){while(Q>1){print "| "++i"        |     0 |";Q--};print;last=$2;next};last=$2;print}'   Input_file
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-28
      • 1970-01-01
      • 2011-04-15
      • 2014-02-17
      • 1970-01-01
      • 2018-02-17
      • 2020-03-07
      • 2013-07-05
      相关资源
      最近更新 更多