Eric's color bar icon

under construction icon

このページは、平成11年6月28日に開設した。
このページは、令和2年5月8日に一部変更した。


 第3.3節 永久 sas ファイルを用いた proc ステップの実行

 5.1節で述べたように、一般にsasプログラムは、data ステップと proc ステッ プから成り、これらを組合せることにより、各種のデータ解析を行える。

 データの性質や解析の目的により、一般にはこれら2つのステップをどのように 組合せるかが決まるが、dataステップによるデータの加工を最小限にし、proc ス テップによるデータ解析を中心に考える時には、5.1節の Figure 5.1の3つの例 のうちのA方式で、まずデータに変数情報を加え、一旦半永久的に使用するファ イル、すなわち永久 sas ファイルを作成し、その後C方式のプログラムを1つ又は それ以上作成し、データ解析を進めるとよい。 既に示した2つの sas プログラム例は、共に永久 sas ファイルの作成が中心のプロ グラムである。このようにして、一旦永久sasファイルを作成すると、次の例3のよ うに、sasプログラムは data ステップを飛ばし、すぐ proc ステップの実行に入るこ とになる。

00001 *------------------------------------------*
00002 |                                 June 28, 1999
00003 | sas program--prinfact.exam6--
00004 |  example 6 of a sas program for principal factor analysis
00005 | and subsequent multiple regression using factor scores extracted.
00006 |
00007 | file name: a:¥sasprog¥prinfact.ex6
00008 |
00009 *------------------------------------------*;
00010 libname sasfile 'a:¥sasset';
00011 options pagesize=66;
00012 *------------------------------------------*
00013 |
00014 | Execute principal factor analysis for the sas Fujii raw data,
00015 | compute factor scores of each subject, store them to a temporal
00016 | sas file.
00017 |
00018 *------------------------------------------*;
00019 proc factor data=sasfile.Fujiiraw
00020  /* method options */ method=p priors=max n=5 rotate=v
00021  /* output options */ score outstat=factout;
00022  var img1-img29;
00023 title 'principal FA for the Fujii data with five factors';
00024 run;
00025 proc score data=sasfile.Fujiiraw score=factout out=scores;
00026 run;
00027 *------------------------------------------*
00028 |
00029 | Execute multiple regression with criterion variable, each of
00030 | the factors, and predictor variables, five inv-personality scales
00031 | and 12 YG-personality scales.
00032 |
00033 *------------------------------------------*;
00034 proc reg data=scores simple corr;
00035  model factor1-factor5=inv1-inv5 yg1-yg12;
00036  title 'multiple regression for the Fujii data with 5 factors';
00037 run;

 このプログラムについて説明する前に、永久 sas ファイルと一時 sas ファイルの違 い及びその作成方法についてふれなければなるまい。 永久 sas ファイルが、それを定義した sas セッション(当該 sas プログラムの実行時 )のみでなく、異なる sas セッションでも使えるのに対して、一時 sas ファイルは 当該 sas セッションでしか使えず sas セッションが終ると自動的に消されるファイ ルをいう。

 永久 sas ファイルと一時 sas ファイルの違いは、5.2.1で既に説明した sas ファイルの第1レベル名(別名ライブラリ参照名)を省略するかどうかによる。 既述の sas プログラム例1及び例2の場合、共にdata文の sas/ds 名は第1レベルと第 2レベルから成り立っており、作成される sas ファイルは、永久 sas ファイルとな る。 ただしこれらの場合、第1レベル名は、data文の前に libname 文を用いて第1レベ ル名が外部記憶装置のいかなるディレクトリ(2つの例共、絶対パスを用いている )にあたるかを定義しておかねばならない。 さらにこれを異なる sas セッションで再度使うためには、例3のコメント欄を除く 最初に出ているように、libname 文により第1レベル名を再定義しておく必要があ る。

 もし第1レベル名を省略するならば、sas は第1レベル名としてWORKというライブ ラリ参照名が指定されたとして、当該 sas セッションの間だけ有効なファイルを 作成し、セッションが終るとこれを消去する。

 例3のプログラム名は、あらかじめ永久 sas ファイルが、aドライブの ¥sasset と いう絶対パスによるディレクトリの下の Fujiiraw というファイルに例1や例2のよ うなやり方で作成済みであることが前提となっている。 その上で、このプログラムでは、それを呼び出しながら3つのプロシジャ factor、re、 reg(共に sas/stat のプロシジャの1つ)を次々と実行させている。

 まず factor プロシジャにより、Fujiirawなるファイルの img1 から img29 (第22行目のVAR文)の29変数のデータに対して、主因子分析、相関行列の対角要素 に各行 (列)の最大値(ただし、絶対値)を入れ、5因子の解を求め、バリマックス回転を 於し(第20行で)、因子の係数を計算し、それらを一時 sas ファイル factout に出力 させる(第21行で)。 次に、reプロシジャによりローデータ sasfile.Fujiiraw 及び直前の factor プ ロシジャで計算し factout に出力した因子の係数をもとにして、因子得点を計算 し、それをやはり一時 sas ファイル scores に出力させる(第25、26行)。 最後に、scores に出力された因子得点やローデータを使って、regプロシジャに より重回帰分析を行う(第34行)。 重回帰分析は、5因子の因子得点のそれぞれを基準変数とし、inv1 から inv5 及び yg1 から yg12 の合計17変数を説明(予測)変数として行う(第35行)。

 一旦永久 sas ファイルを作成しておけば、例4のような解析をし、得られた結果を 見て、さらに必要な解析を別の sas プログラムにより実行するなどということが 簡単にできる。もちろん、一旦作成して保存してある永久 sas ファイルを入力し、 data ステップでさらに加工し直すことも可能である。(5.2.2 の第3番目の方法)。

Eric's color bar icon