首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gretl中的加权移动平均

Gretl中的加权移动平均
EN

Stack Overflow用户
提问于 2017-11-04 17:49:48
回答 1查看 298关注 0票数 1

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

我有一个时间序列,我想要计算以5为中心的加权移动平均,其权重是:0.15,0.2,0.3,0.2,0.15

在gretl的主页中,我们有一个Variabile窗口,我可以在其中选择Filter,但是对于我想要做的事情没有选择,例如,简单的移动avarage。

R中,我会这样做:

代码语言:javascript
复制
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. 如果不是,在控制台中做这件事的最好方法是什么?它有特定的功能吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-12 00:28:41

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

代码语言:javascript
复制
series weighma =  0.15 * x(+2) + 0.2 * x(+1) + 0.3 * x + 0.2 * x(-1) + 0.15 * x(-2)

(您也可以键入“genr”或省略它,而不是“series”,但我建议使用这个显式的变体。括号内的+符号也是这样,以指示引线而不是滞后。)“体重”这个名字当然是任意的。

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

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

代码语言:javascript
复制
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的假设下,从权向量的长度也可以推断出正确的最大引线值,但我把它留在这里。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47113711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档