ラベル プロシジャ: UNIVARIATE の投稿を表示しています。 すべての投稿を表示
ラベル プロシジャ: UNIVARIATE の投稿を表示しています。 すべての投稿を表示

2018年12月5日水曜日

【PROC UNIVARIATE】OUTPUTステートメントでの出力変数の指定方法




PROC UNIVARIATE の「OUTPUTステートメント」で統計量をデータセットに出力することが出来ますが、「統計量を出力する際の変数の指定方法がよく分からない!」って方がいたので、まとめておきます。




例① 分析変数が1つの場合

proc univariate data=SASHELP.CLASS noprint;
   var HEIGHT;
   output out=OUT1  min=MIN_HEI  max=MAX_HEI;
run;

・分析変数HEIGHTの最小値をMIN_HEI、最大値をMAX_HEIに格納してます。




例② 分析変数が2つ以上の場合

proc univariate data=SASHELP.CLASS noprint;
   var HEIGHT WEIGHT;
   output out=OUT2  min=MIN_HEI  MIN_WEI
                               max=MAX_HEI  MAX_WEI;
run;

または

proc univariate data=SASHELP.CLASS noprint;
   var HEIGHT WEIGHT;
   output out=OUT3  min=MIN_HEI  min=MIN_WEI
                               max=MAX_HEI  max=MAX_WEI;
run;



・分析変数HEIGHTとWEIGHTの最小値をそれぞれMIN_HEI、MIN_WEIに格納
・分析変数HEIGHTとWEIGHTの最大値をそれぞれMAX_HEI、MAX_WEIに格納



ちなみに指定出来る統計量は、、
  統計量   内容
    N
  NMISS  欠損値の数 
  SUM  合計
  MEAN  平均値
  MIN  最小値
  MEDIAN   中央値
  MAX   最大値   
  RANGE  範囲
  MODE  最頻値   
  STDDEV  標準偏差   
  STDERR  標準誤差   
  Q1  下側四分位点 
  Q3  上側四分位点  
  QRANGE  四分位範囲  
  KURT  尖度
  SKEW  歪度
  …etc

その他あわせて40~50個程度の統計量を豊富に取り揃えています。詳細はリファレンスを参照ください。


2015年2月3日火曜日

UNIVARIATEプロシジャの結果をデータセットに出力する方法のひとつ「OUTTABLE=」




UNIVARIATEプロシジャは、1変数に対する様々な統計量を求めることが出来ます。

結果をデータセットに出力する方法として、以下の方法が用意されています。
 ・OUTPUTステートメント
 ・ODS OUTPUT
 ・OUTTABLE=

この中で、OUTTABLE=で出力する方法は便利だけどあまり知られてないので、紹介したいと思います。


* 適当なサンプル ;
data DT1;
input A B C;
cards;
10 10 10
20 30 10
30 20 20
;

* UNIVARIATEプロシジャ ;
* (記事の下に注意点を記載してるので参照下さい) ;

proc univariate data=DT1 outtable=OUT1;
   var A B C;
run;


・・・





統計量として、40個くらいの変数が出来ます。

基本統計量や検定などの結果が、分析変数毎に1行で出力されるので、
他の出力方法と比較して、その後の加工がしやすいです。


注意点

「OUTTABLE=」による出力と「OUTPUTステートメント」による出力で、以下の差異を見つけました。
  • 「OUTTABLE=」でデータセットに出力される変数「_NOBS_」は分析変数が非欠損値のオブザベーション数
  • 「OUTPUT OUT=OUT2 NOBS=OBS」のように書いたときの「NOBS=」は全オブザベーション数(分析変数が欠損値のオブザベーションも含む)