幾何平均について

[OS] ALL
[リリース] ALL
[キーワード] GEOMETRIC, MEAN

[質問]

幾何平均を求めるには、どのような方法がありますか?

[回答]

SAS 9.2 からは、TTEST プロシジャを利用して幾何平均の点推定値とその信頼区間が得られます。PROC TTEST ステートメントで、DIST=LOGNORMAL を指定してください。

一方、SAS9.1 では GEOMEAN 関数と GEOMEANZ 関数がサポートされており、DATA ステップでそれらを使用できます。

なお SAS 9.1 とそれ以前のリリースでは、変数に対して幾何平均を求めるプロシジャは存在しません。以下のように DATA ステップで変数値の対数を求めてから、続いて MEANS プロシジャなどで算術平均を計算し、再び DATA ステップでその算術平均に対して指数関数 EXP を適用してください。


                                          /* サンプルデータ作成 */
DATA test;
  INPUT value;
CARDS;
1.2
4.3
0.8
3.2
4.1
;
RUN;

                  /* SAS 9.2 以降では TTEST プロシジャが利用可能 */
PROC TTEST DATA=test DIST=LOGNORMAL;
  VAR value;
RUN;


 /* SAS 9.1 やそれ以前のリリースで変数値に対して幾何平均計算する */

                                                   /* 対数を計算 */
DATA _temp;
  SET test;
  log_value=LOG(value);
RUN;
                        /* 変数log_valueに対して算術平均を求める */
PROC MEANS DATA=_temp NOPRINT;
  VAR log_value;
  OUTPUT OUT=_out LCLM=lcl MEAN=mean UCLM=ucl;
RUN;

DATA _NULL_;                                   /* 幾何平均を出力 */
  SET _out;
  lcl_gm = EXP(lcl);                             /* 下側信頼限界 */
  geomean = EXP(mean);                               /* 幾何平均 */
  ucl_gm = EXP(ucl);                             /* 上側信頼限界 */
  PUT lcl_gm geomean= ucl_gm=;
RUN;

なお、米国 SAS Institute 社の Web サイトでも、同様のサンプルプログラムが公開されています。