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 で他の一般的なタスクを実行する方法について説明します。

SAS で外れ値を特定する方法
SAS でパーセンタイルを計算する方法
SAS で平均値、中央値、最頻値を計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です