疫学系院生ブログ

統計、因果推論、プログラミングなどの備忘録です。

1変量のデータ要約(Univariateプロシジャ)

SASによる1変量の記述統計の出力方法です。

まずは正規乱数でデータを生成します。以下のような2群データを想定しています。

data bp;
 do No=1 to 200;
  if No<=100 then group="treat";
  if No>100 then group="placebo";
  if No<=100 then bp=rand("normal", 130, 10);
  if No>100 then bp=rand("normal", 140, 10);
  output;
  end;
run;


No group bp
1 treat 120.795
2 treat 121.15
3 treat 127.129
4 treat 140.005
5 treat 133.352
6 treat 135.889
7 treat 113.716
8 treat 126.45
9 treat 132.932
10 treat 118.033


今回はtreat群とplacebo群でそれぞれ記述統計を出力します。
1変量の記述統計を表示するには、Univariateプロシジャを使用します。

proc sort data=bp;
 by group;
run;

proc univariate data=bp normal plot;
 id No;
 var bp;
 by group;
 output out=out1 n=N mean=Mean std=STD median=Median qrange=Qrange;
run;

まずPROC Univariate ステートメントで解析に使用するデータ(data=)を指定します。追加のオプションとして、正規性プロット(normal)やグラフ(plot)を出力するかどうかを指定できます。

idステートメントでは対象者番号を参照し、varステートメントで要約する変数を指定します。

byステートメントでカテゴリー変数を指定することで、記述統計を群ごとに出力できます。注意点は、byステートメントで指定する場合、データが事前に昇順に並び替えられていることが必要です。今回の場合、placebo群、treat群の順にアルファベット順にソートする必要があります。そのためSORTプロシジャで事前にデータをgroup変数でソートしておきます。

またOutputステートメントでは、データセットに要約統計量を出力することができます。対象者数(n=対象者ラベル)、平均(mean=平均ラベル)、のように自由に変数にラベルを指定することができます。

f:id:MisakiF:20200903225013p:plain

f:id:MisakiF:20200903225120p:plain

ヒストグラムや箱ひげ図に加えて、正規分布に従っているかどうかを確認するためのQ-Qプロットも出力してくれます。

Univariateプロシジャは一度に多くの記述統計量を表示できるため便利ではありますが、平均や分散だけ表示したい場合もあります。
その場合は、MeansプロシジャやSummaryプロシジャを使ったほうが良いでしょう。