如何在 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 中执行其他常见任务: