【问题标题】:Weighted Moving Avarage in GretlGretl中的加权移动平均线
【发布时间】:2017-11-04 17:49:48
【问题描述】:

我有一个关于 gretl 以及如何计算移动平均滤波器的问题。

我有一个时间序列,我想用这些权重计算以 5 为中心的加权移动平均值:0.15、0.2、0.3、0.2、0.15

在 gretl 的主页中,我们有 Varibile 窗口,我可以在其中选择 Filter,但没有我想要做的选项,只有简单的例子移动平均数。

R 中我会这样做:

c<-as.vector()
for (in in 3:(T-2)){ 
c<-rbind(c, 0.15*x[i-2]+0.2*x[i-1]+0.3*x[i]+0.2*x[i+1]+0.15*x[i+2]}

其中 x 是我的时间序列,T 是观察次数。

但我的问题是:

  1. 在 gretl 中是否存在一种用户友好的方法?
  2. 如果不是,在控制台中最好的方法是什么?是否存在特定功能?

【问题讨论】:

    标签: time-series moving-average gretl


    【解决方案1】:

    嗯,我不知道你到底怎么称呼用户友好,但既然你想拥有那些特定的权重,我想没有办法输入一些数字,对吧? 因此,如果我对您的理解正确,并且给定您的系列 x(在声明并识别为时间序列的数据集中),那么您只需输入公式:

    series weighma =  0.15 * x(+2) + 0.2 * x(+1) + 0.3 * x + 0.2 * x(-1) + 0.15 * x(-2)
    

    (您也可以输入 'genr' 或省略它,而不是 'series',但我建议使用这种显式变体。括号内的 + 符号也是如此,表示领先而不是滞后。) “weighma”这个名字当然是任意的。

    您至少可以在两个地方输入该公式:从菜单中选择添加/定义新变量,这将为您提供一个带有公式字段的对话框窗口,或者打开 gretl 控制台(或脚本编辑器窗口)。

    在脚本中可能更灵活的解决方案可以使用 gretl 变量列表和“lincomb”函数,如下所示:

    maxlead = 2
    matrix weights = {0.15, 0.2, 0.3, 0.2, 0.15}
    list xx = lags( nelem(weights), x(maxlead + 1) )
    series weighma = lincomb(xx, weights)
    

    在 MA 居中的假设下,也可以从权重向量的长度推断出正确的 maxlead 值,但我保留它。

    【讨论】:

      猜你喜欢
      • 2018-05-17
      • 2013-09-02
      • 1970-01-01
      • 2023-03-12
      • 2015-03-24
      • 2017-09-01
      • 2012-09-30
      • 1970-01-01
      • 2012-04-26
      相关资源
      最近更新 更多