Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Stata计算时变历史均值_Stata_Mean_Rolling Average - Fatal编程技术网

如何用Stata计算时变历史均值

如何用Stata计算时变历史均值,stata,mean,rolling-average,Stata,Mean,Rolling Average,如何使用至少有四个观察值的扩展窗口计算X的平均值 下面是一个数字示例: clear input X 50.735469 48.278413 42.807671 49.247854 52.20223 49.726689 50.823169 49.099351 48.949562 47.410434 46.654168 44.924652 43.807024 45.679814 48.366395 49.883396 48.230502 49.869179 53.942757 56.167884

如何使用至少有四个观察值的扩展窗口计算
X
的平均值

下面是一个数字示例:

clear 

input X
50.735469
48.278413
42.807671
49.247854
52.20223
49.726689
50.823169
49.099351
48.949562
47.410434
46.654168
44.924652
43.807024
45.679814
48.366395
49.883396
48.230502
49.869179
53.942757
56.167884
56.226512
56.25608
58.765728
62.077038
62.780799
61.858235
61.167646
60.671859
60.480263
60.226433
61.65349
60.769882
61.497553
60.146182
60.292934
60.173739
58.60077
58.445601
60.404868
end

扩展时间窗口中的时变平均值可以使用其他措辞,以表示从记录开始到当前日期的所有值的平均值。您没有给出时间变量,所以我假设数据是有序的,并提供一个时间变量

社区贡献的命令
rangestat
(使用
SSC安装rangestat
从SSC安装)可以通过以下方式给出迄今为止所有值的平均值:

clear 
input X
50.735469
48.278413
42.807671
49.247854
52.20223
49.726689
50.823169
49.099351
48.949562
47.410434
end 

gen t = _n 

rangestat (count) X (mean) X, int(t . 0) 

list 

    +-------------------------------------+
     |        X    t   X_count      X_mean |
     |-------------------------------------|
  1. | 50.73547    1         1    50.73547 |
  2. | 48.27841    2         2   49.506941 |
  3. | 42.80767    3         3   47.273851 |
  4. | 49.24785    4         4   47.767351 |
  5. | 52.20223    5         5   48.654327 |
     |-------------------------------------|
  6. | 49.72669    6         6   48.833054 |
  7. | 50.82317    7         7   49.117356 |
  8. | 49.09935    8         8   49.115105 |
  9. | 48.94956    9         9   49.096711 |
 10. | 47.41043   10        10   48.928084 |
     +-------------------------------------+
显然,你可以随意忽略小计数的结果

rangestat
帮助
中自然地解释了语法:在这里,只需说明选项的语法,即
间隔(t.0)
,有三个方面:

  • 对于时间变量
    t
  • 和两个偏移量

  • 尽可能向后:系统缺失
    此处表示任意大

  • 只向前0

  • 用数学术语来说,平均值是从时间减去无穷大,或尽可能多地,到时间0,即现在

    count
    结果是窗口中
    X
    上无缺失值的观察数。这里,由于时间变量为1,计数与时间变量基本相同,但在实际问题中,时间变量更可能是某种日期。与其他一些命令不同,
    rangestat
    没有选项来坚持窗口中具有非缺失值的最小点数,但您可以计算有多少点数,并根据太少的数据决定忽略这些点数。这就留给这里的用户了

    顺便说一句,您可以通过计算一个累积和,然后除以到目前为止的值的数量,在这类问题上有一个良好的开端。需要注意(例如)数据间隙、不规则间隔的数据或缺失值,
    rangestat
    的优点是考虑了所有这些困难