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 番目の値は、前の 3 つの期間の平均を表します。
- 移動平均 = (7+12+14) / 3 = 11.0000
value_ma3列の 4 番目の値も、前の 3 つの期間の平均を表します。
- 移動平均 = (12+14+12) / 3 = 12.6667
等々。
異なる期間数の移動平均を計算するには、コード内で移動した後で値を変更するだけです。
たとえば、次のコードを使用して、値列の 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;
value_my4という新しい列には、値列の 4 期間の移動平均が表示されます。
追加リソース
次の記事では、SAS で他の一般的なタスクを実行する方法について説明します。