REGプロシジャで解析に使用されたオブザベーション数をSASデータセットへ出力する方法

[OS] ALL
[リリース] 6.12 以降
[キーワード] ODS OUTPUT, OUTEST=, EDF

[質問]

REGプロシジャを実行した際、分析で使用されたオブザベーション数をデータセットへ出力するにはどうしたらよいでしょうか?

[回答]

SAS 9.1以降では、ODS OUTPUT ステートメントを使用してオブザベーション数のテーブル(Nobsテーブル)をデータセットへ出力できます。NObsテーブルには、分析において読み込まれたオブザベーション数と、使用されたオブザベーション数が含まれています。FREQステートメントが指定された場合、使用されたオブザベーション数は度数の合計となり、この情報もNobsテーブルで得られます。たとえば以下のようにステートメントを記述すると、numobsという名前のデータセットにNobsテーブルは書き込まれます。


ODS OUTPUT NOBS=numobs;
PROC REG DATA=in;
  MODEL y=x;
RUN;
QUIT;

NObsテーブルは、数多くのプロシジャで利用できることに留意してください。

SAS 8 以降では、ODS OUTPUTステートメントを利用して、分散分析表(ANOVAテーブル)をデータセットに出力することができます。


ODS OUTPUT ANOVA=outds; /* データセットoutdsに出力 */
PROC REG DATA=in;
  MODEL y=x;
RUN;
QUIT;

このデータセット(上記ではoutds)には、切片を含むモデルの場合には修正された総自由度(Corrected Total degrees of freedom)が出力されます。切片がモデルに含まれていない場合には、無修正の総自由度(Uncorrected Total degrees of freedom)が含まれます。分析に用いられたオブザベーション数は、それぞれ修正された総自由度に1を加えた値、または無修正の総自由度と等しくなります。

SAS 6.12以降では、PROC REGステートメントでOUTEST=、およびEDFオプション(またはRSQUAREオプション)を用いると、変数_P_ (推定されたパラメータの数)と_EDF_ (誤差項の自由度)がデータセットに出力されます。 この2つの変数の合計は、分析で使われたオブザベーション数と等しくなります。

上記の内容は、米国SAS本社のWEBページに記載されているFAQに基づいて作成されています。

http://support.sas.com/kb/22/914.html