如何在 sas 中计算移动平均值


在统计学中,移动平均值表示数据集中前n个值的平均值。

在 SAS 中计算移动平均值的最简单方法是使用proc Expand语句。

下面的例子展示了如何在实践中使用这个语句。

示例:在 SAS 中计算移动平均值

假设我们在 SAS 中创建以下数据集:

 /*create dataset*/
data original_data;
    input time values;
    datalines ;
1 7
2 12
3 14
4 12
5 16
6 18
7 11
8 10
9 14
10 17
;
run ;

/*view dataset*/
proc print data = original_data;

现在假设我们要计算列的 3 周期移动平均值。

我们可以使用proc Expand来做到这一点:

 /*calculate 3-period moving average for values*/
proc expand data =original_data out =out_data method=none;
    idtime ;
    convert values = values_ma3 / transout = (movave 3 );
run ;

/*view results*/
proc print data =out_data; 

名为my3_values的新列显示列的 3 周期移动平均值。

例如, values_my3列的第三个值表示前 3 个周期的平均值:

  • 移动平均线 = (7+12+14) / 3 = 11.0000

Values_ma3列的第四个值也表示前 3 个周期的平均值:

  • 移动平均线 = (12+14+12) / 3 = 12.6667

等等。

要计算不同周期数的移动平均值,只需在代码中移动后更改值即可。

例如,我们可以使用以下代码来计算values列的4周期移动平均值:

 /*calculate 4-period moving average for values*/
proc expand data =original_data out =out_data method=none;
    idtime ;
    convert values = values_ma4 / transout = (movave 4 );
run ;

/*view results*/
proc print data =out_data; 

名为values_my4的新列显示values列的4 周期移动平均值。

其他资源

以下文章介绍了如何在 SAS 中执行其他常见任务:

如何识别 SAS 中的异常值
如何在 SAS 中计算百分位数
如何在SAS中计算均值、中位数和众数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注