19980503 Version 4.0

UNIXとUNIX版SASの基本的使用法

 

立教大学社会学部産業関係学科  村瀬 洋一


 

 これは、コンピューターにさほど慣れていない初学者に、UNIXとUNIX版SASの操作法を解説するための資料です。コンピューターの操作にある程度慣れている人は、2.2.から2.5.と市川他(1993)を読むだけで、SASの基本的な使い方は把握できると思います。

 UNIX版SASの使い方を覚えれば、身近なパソコンからUNIXに接続して統計分析をすることができます。自分でソフトを買う必要もありません。データ分析に興味がある人は、ぜひ使い方を修得してください。

 

 

0.コンピューターの基礎知識

0.1.ハードウェアとソフトウェアの種類

 コンピューターのハードウェア(機械)は、処理能力の大きさによって、パソコン、ワークステーション、ミニコン、汎用大型計算機、スーパーコンピューターに分類される。

 ハードウェアだけでは何もできず、ソフトウェア(人間が書いたプログラム)があって、はじめてコンピューターを使うことができる。ソフトウェアは、基本ソフト(オペレーションシステム:OS)と応用ソフト(アプリケーション)に大別できる。コンピューターのスイッチを入れると、まず、Windowsなどの基本ソフトが動き、その上で、ワープロや表計算、画像処理ソフト、通信ソフトなどの応用ソフトが動くのである。パソコン用の基本ソフトとしてWindowsやMacOSが存在する。ワークステーション用の基本ソフトとしては、UNIXが最も普及している。

 ふつうの人がふだんよく使うのはパソコンだが、上記の通り、これはコンピューターのハードの中でも最も能力は低い。しかし、最近はパソコンの能力向上が急激なので、ワークステーションとほとんど変わらないか、場合によってはそれ以上の計算速度を持つことがある。低価格のより小さなコンピューターの能力向上はとても急激なため、以前は高価な大型計算機でやっていた仕事がパソコンでできることもある。そのため、社会全体でダウンサイジング(より小型のコンピューターへの移行)がおこっている。

 

0.2.情報の保存場所とファイルの種類

 自分が作った文書や表などの情報は、フロッピーディスクやハードディスクに保存することができる。これらは、カセットテープに音楽を保存するのと同じように、磁気的に情報を記録している。

 コンピューターの頭脳部分の部品をCPU(central processing unit: 中央演算回路)というが、CPUは、フロッピーディスクドライブ(FDD)やハードディスクドライブ(HDD)を認識し、必要ならば情報を書き込む。IBM互換機のパソコン(DOS/V、Windows95マシン)の多くは、FDDをAドライブ、HDDをCドライブとして扱う。フロッピーに情報を保存したい場合は、保存場所の部分をクリックするといくつかのドライブが表示されるので、Aドライブを指定すればよい。

 書類箱の中に小さい箱を入れて区切るのと同じように、フロッピーやハードディスクの中を区切って使うことができる。区切りのことをフォルダー(またはディレクトリ)という。ハードディスクの中には、多くのフォルダーがあり、その中に複数のファイル(文書や表計算用ワークシートなど)が入っている。

 UNIXのディレクトリも基本的にパソコンと同じである。muraseというユーザーがUNIXにログイン(パスワードを打ち込んでUNIX使用可能な状態になる)すると、muraseという名前のディレクトリがまず見えて、使えるようになる。ただし、UNIXではドライブという概念がなく、FDDなどをひとつのディレクトリとして扱うが、初心者はUNIX上のFDDのことを理解していなくても、まず問題はない。

 

 ファイルの名前はふつう、以下のようになっている。後半の3文字のことを「拡張子」と言い、ファイルの種類を表す。ファイルには、文字情報だけのテキストファイルや、実行用プログラムのファイルなど、いくつかの種類がある。

 

 filename.txt filename.doc 97data.xls Cdplayer.exe

97sendai.dat prog1.sas prog2.sps index.html

 

・txt  テキストファイル。文字情報のみのファイル

・doc  ワード用の文書ファイル。文字情報、書式、文字飾り等の情報が入っている

・xls  エクセル用のワークシートファイル

・exe  実行用プログラムファイル

・dat, sas, sps  どれもテキストファイルだが、データやSAS、SPSSの

           命令文が入っている

・html  テキストファイルだが、ホームページ用言語の命令文が入っている

・*.jt?, *.j?w  一太郎用の文書ファイル。jtd, jtt, jfw, jbw, jxwなどがある

 

 テキストファイルやワープロソフトの文書ファイルは、ワードや一太郎などのワープロソフトで読みこみ、編集することができる。ただし、ファイルメニューで「開く」を選択しても、「ファイルの種類」がtxtと指定されていると、拡張子がtxtのものしか表示されない。様々なファイルを扱いたければ、「ファイルの種類」の部分をクリックして「すべてのファイル」を選択すること。

 拡張子がtxtのすべてのファイルを指定する時、*.txt と書くことがある。*をワイルドカードという。

 OSがMS-DOS(エムエス・ドスと読む。Windowsの前身の、パソコン用の古いOS)の時代、ファイル名は半角8文字、拡張子3文字以内という制約があった。Windows95の時代となり、そのような制約ははずれており、長いファイル名も可能。しかし拡張子は、混乱がないよう、以前と同様に上記の3文字で表されることが多い。

 UNIXのファイルも基本的にパソコンと同様である。パソコンのテキストファイルをUNIXに転送すると、そのままUNIXのテキストファイルとして使える。

 

 

1.UNIXの基本的使用法

 UNIXとは、ワークステーション(パソコンより1クラス上のコンピューター)用のOS(オペレーションシステム:基本ソフト)である。

 パソコンは、一人が1台を使用するが、UNIXは同時に数百名以上で使用していることも多い。パソコンを端末(ターミナル)として使用し、TELNETソフト(複数のコンピューターをつなぐ通信ソフト)によって、端末とUNIXマシンを接続し、以下のようなコマンドを入力すると使用できる。Windows95付属のtelnet.exeを起動し、「接続」をクリックし、リモートシステムでUNIXマシンの名前を入力すれば、接続可能。立教のUNIXでsasを使う場合は、ax251.rikkyo.ac.jp を入力。

 なお、うまく接続できたのに文字化けする場合が時々ある。このときは、「ターミナル」をクリックし、漢字コードの設定を変えるとうまくいく。多くの場合、漢字コードはシフトJISでよい。

 

1.1.UNIXの基本コマンドについて

1)ログインとログアウト

ログインする (パスワードを入力してUNIXを使える状態にする)

ユーザ名とパスワードを入力して Enter(実行、改行)キーを押す

ログアウトする

logoutと入力, あるいはexit

パスワードを変更する

passwd

 

2)ディレクトリ(フォルダ)の操作

現時点で自分が使用している作業ディレクトリを表示する

pwd

作業ディレクトリを変更する

cd dir-name

ホームディレクトリに移動する

cd

 

3)ファイル一覧 ls の使い方 (ふつうはllかls -aと打てばよい)

ファイル一覧を表示する

ls

詳しい情報付きで(MS-DOS のような形式で)表示する

ll (ls -lと等価), ls -lg, ls -an

あるディレクトリのファイル一覧を表示する

ls dir-name

ピリオドで始まるファイル名も表示する

ls -a ...

ファイルの種類を表す印つきで表示する

ls -F ...

サブディレクトリまで再帰的に検索する

ls -R ...

ディレクトリそのものの情報を表示する

ls -d dir-name

 

4)ファイル内容の閲覧 less の使い方

ファイルの中身を見る

less filename

ファイル名の入力を簡略化(初めの一文字のみ入力してタブキーを押す)

less f + tab

 

5)その他のコマンド

ファイルの削除

rm filename

マニュアルを読む  終了はq

man key-word

コマンドの連続実行

command1 ; command2 ; ...

画面をクリアする

clear

画面サイズの変更

resize

 

1.2.UNIX上のエディタ ミュール(mule NEmacs)の使い方

 エディターにより、UNIX上のファイルの編集ができる。エディターとは、印刷機能を省略して編集機能に徹したワープロソフトのようなもので、高速で編集機能が豊富なのが特徴である。

記号説明

C- → コントロールキーと同時に押す

M- → エスケープキーを押してからの操作

 

起動

mule filename

filenameの部分には、自分が編集したいファイルの名前を入れる

存在しないファイル名を入れると、新規にファイルを作成して編集

ファイルの呼出し

C-x C-f

終了

C-x C-c

保存

カーソルのあるファイルの保存 → C-x C-s

ファイル名を指定して保存 → C-x C-w

直前の操作のやり直し (Undo)

C-x u

コマンド操作の取消

C-g

カーソル移動

上下左右 → カーソルキーで行う

1ページずつ進む → C-v

1ページずつ戻る → M-v

行頭 → C-a

行末 → C-e

ファイル先頭 → M-<

ファイル末 → M->

バッファとウィンドウ操作

バッファの切替え → C-x b

バッファリストの表示 → C-x C-b

現ウィンドウを消去 → C-x 0

現ウィンドウ以外を消去 → C-x 1

ウィンドウの分割 → C-x 2

ウィンドウ間の移動 → C-x o

検索

前方増進 → C-s

後方増進 → C-r

シェルの呼び出し

M-x shell

プログラミング

makefileの実行 → M-x compile

エラー対応行に飛ぶ → M-x next-error

 

文字列の補完機能

ファイル名や "M-x" の後のコマンドなどの文字列入力の途中でスペースキーを押すことにより残りの文字列 (ファイルやディレクトリ名も) を補完する機能。該当文字列がいくつかある場合は、専用ウィンドウにリストアップする。この機能により、emacs特有の長いコマンド入力も実際にはそれほど苦にならない。

 

   例 ファイル読み込みの簡略化

C-x C-f の後にファイル名の初めの一文字のみ入力してタブキーを押す)

 

 上記の1.1.と1.2.は、鳥居・西野研UNIX関連マニュアル http://leo.tori.me.ynu.ac.jp/people/kita/manual/editor.html#mule を参考に、村瀬が一部改編して作成しました。引用をお許しくださった北川様に深く感謝いたします。

 

1.3.インターネットニュースを読む  −ミニニュースリーダーの使い方

 インターネットニュースとは、インターネット上にある無料で全世界規模の電子掲示板のようなものである。もともとは、UNIXのネットワークシステムを用いた電子掲示板システムである。UNIXに慣れるために、初心者は、まずはunixでのニュース閲覧ソフトを使用してみるとよいだろう。

 初心者は、fjニュースグループ(from japanのニュースのカテゴリー)を読むとよい。最初はfj.news.announceやfj.jokesなどのカテゴリーを読み、その後、自分の趣味にあったグループを見つけていくとよいだろう。

 ワークステーション上のニュース閲覧ソフトとしては、ミニニュースリーダーがよく使われている。うまく表示されないときは、resizeコマンド入力後にmnewsを起動するか、端末ソフトの設定を変えるとうまくいくことがある。コンピューターセンターの担当者などに相談してみるとよい。

 コンピューターをうまく使いこなすには、コンピューター担当者と良好な人間関係を築くことこそが重要である。某大学のコンピューター担当者は、かわいい女子学生が質問に行くと、極めて細かく具体的に説明してくれるそうなので、各自で対人関係能力をみがいて工夫すること。

 

ニュースリーダーソフト(ミニニュースリーダー)の起動

mnews

読みたいニュースグループの選択

矢印キーによりカーソルを任意の行にあわせて、スペースキーをおして選択

ニュースグループから抜ける、終了

q を押す

 

1.4.ファイル転送ソフトftpの使い方

 ftpソフトを使うと、自分のパソコン上のファイルを他のコンピューターに送ったり、逆に受け取ったりすることが簡単にできる。これは画期的なことである。なぜなら、自分のパソコン上でプログラムや文書のファイルを作り、それをUNIXマシンに転送すれば、UNIXの使い方を知らなくても、UNIX上でファイルを作った場合と同じことができるのである。

 ftpソフトにはさまざまなものがあり、UNIX上で動くものもあるが、最近はパソコン用のものが普及し操作も簡単なのでこちらを使った方がよいだろう。Windows用のソフトで有名なのはWS FTPやCUTE ftp、マック用ではフェッチなどがある。WS FTPの機能限定版はフリーソフトであり、無料で使える。

 WS FTPの操作法は簡単である。ソフトを起動後、接続先としてax251.rikkyo.ac.jpなどを選び、IDとパスワードを入力すると、画面左半分に自分のパソコンのハードディスク内容が表示され、右半分には相手のコンピューターのハードディスク内容が表示される。あとは、送信したいファイルを選んで「>>」ボタンを押すと、左から右へ転送される。

 SASを使いたい時は、まず、パソコン上で、SASプログラムとデータのファイル(どちらもテキストファイル)を作ってしまうと良い。UNIX上でファイルを作ることもできるが、その方が初心者には簡単である。2つのファイルができたら、ftpソフトを使って、パソコンからUNIXマシンにファイルを転送する。UNIX上の自分のディレクトリに2つのファイルができたら、SAS使用の準備完了である。

 

 

2.UNIX版のSASの簡単な使い方(バッチモードでの使用法)

 SAS(Statistical Analysis System)は、統計分析ソフトとしてSPSSと並んで有名なものである。数千人分の調査データなどの大量のデータを扱うのに優れている。UNIX版の他、Windows版、汎用計算機版などさまざまなものが存在する。

 UNIX版SASには、バッチモード、疑似スクリーンモード、X-Windowモードの、3つの使用法が存在するが、まず初めに、もっとも簡単で高速なバッチモードでの使用法について解説する。

 

1)事前に準備するもの

  SASプログラムファイル、データファイル(いずれもテキストファイル)

 

2)大まかな手順

  ・上記2つのファイルを(パソコン上で)準備する

    ほんとはパソコン上でなくてもよいが、初心者にはその方が簡単

  ・ftpソフトにより、パソコンからunixに2つのファイルを転送する

  ・SASプログラムを実行する

  ・分析結果の出力ファイル(*.lisという名前)ができるので、中身を見てみる

 

2.1.データ行列とは何か

 上記1)で説明したデータファイルは、行が個人、列が変数となる数字の行列である。例えば、1人のデータが1行とすると、1000人分のデータならば1000行あり、行として個人、列(カラム、けた)として変数が並んでいることになる。

 具体例として、以下に、3人分のデータ行列の例を示す。1行目は、5カラム目までがサンプル番号で、空白をおいて、7カラム以降が問1、問2、問3・・・・の回答となる。つまり、00101番の人が、問1で2、問2で1、問3で4と答えている。大規模な調査の結果を分析する際には、まず、個々人の回答を、このような数字からなるデータ行列にする作業(データインプット)から開始する。データファイルのミスを直し(データクリーニング)、データファイルが完成した後、分析を行うことになる。

 調査データの多変量解析は、このような、行が個人、列が変数となるデータ行列を分析の対象とする。なお、問の数が多いと1人分のデータが2行以上になることもあるが、基本的なデータの形はとくに変わらない。

 データ行列の具体例(3人分のデータ)

00101 21412508 2421111111 3333313 34331322 133212454 2333343232 2146
00102 21611402 1221213132 1213131 24121422 132324543 1244444344 4148
00103 12714806 1222212121 2223122 43132331 233324454 2232233444 3922

 

 通例、データファイルの初めの部分は個人のサンプル番号であることが多い。サンプル番号は、初めの3けたが地点番号、次の2桁が個人番号、などのように規則的に作ってあると、分析の際に便利である。例えば、第23地点の1番目の人は、02301番というサンプル番号になる。調査を150地点で行い、1地点では20人を対象に調査した場合(調査対象者は150×20人で合計3000人)、00101番から15020番までの人が存在することになる。

 

2.2.SASプログラムの実行法(SASバッチモード)

 いくつかの実行法があるが、SASバッチモードは高速である。SASバッチモードで使用するには、UNIX上で、以下のようなコマンドを入力する。

 すでに、SASのプログラムファイル pro1.sasは別途作成済みで、プログラムとデータファイルがUNIXの同じディレクトリ上にあるとする。

 

sas pro1.sas

 

 sasの後、スペースを空けてプログラムファイル名を入力すると、SASが実行され、ログファイルpro1.logと、出力ファイルpro1.lisが作られる。

 ログファイルには処理経過が記入されており、プログラムにエラーがあった場合はエラー内容が表示される。プログラムにエラーがなかった場合、出力ファイル内に分析結果が表示される。

 pro1.sasを入力するのが面倒な場合は、sas pまで入力してからタブキーかスペースキーを押すと、unixが補完して入力してくれる。

 ファイル名を忘れたときは、UNIX上でlsと打ってみよう。現在のフォルダ(カレントディレクトリ)にあるファイルの一覧が表示される。

 出力ファイル pro1.lis の中身を見たいときは

      mule pro1.lis

と打ってみよう。UNIX上のエディターのミュールが立ち上がり、ファイルの内容が表示される。終了は、CTRL+X, CTRL+Cを打ち、yes, yesと答える。もっとも、ftpで、出力ファイルpro1.lisをパソコン上に転送し、パソコン上のワープロソフトなどで見た方が見やすいかもしれない。

 

2.3.UNIX上のSASプログラムの例

 以下がプログラムの例である。分析プログラムに慣れている人は、解説を読むよりも具体的な文例を見て真似した方が早く理解できるだろう。なお、SASによる多変量解析については多くの参考文献があるが、市川他(1993)が分かりやすくて詳しい入門書である。山際・田中(1997)も、簡潔でさまざまな分析法に触れており、比較的分かりやすい。

 

 

filename mydata 'da95.txt';

data da1;
infile mydata;
input
#1 ID 1-2 Q1 4 q2 5 Q3 6 Q4A 7-8 Q4B 9-10 Q4C 11-12 Q4D 13-14 Q4E 15-16
Q5AIMP 18 Q5BIMP 19 Q5CIMP 20 Q5DIMP 21 Q5EIMP 22 Q5FIMP 23 Q5GIMP 24
Q5ASTS 25 Q5BSTS 26 Q5CSTS 27 Q5DSTS 28 Q5ESTS 29 Q5FSTS 30 Q5GSTS 31
Q6A 33 Q6B 34 Q6C 35 Q6D 36 Q6E 37 Q6F 38 Q6G 39 Q6H 40 Q6I 41 Q6J 42
Q6K 43 Q6L 44 Q6M 45 Q6N 46 Q7A 47 Q7B 48 Q7C 49
Q8A 51 Q8B 52 Q8C 53 Q8D 54 Q8E 55 Q8F 56 Q8G 57
Q9A 58 Q9B 59 Q9C 60 Q9D 61
Q10 62 Q11 63-64
#2 Q12 6 Q14S01 11 Q14S02 12 Q14S03 13 Q14S04 14 Q14S05 15 Q14S06 16 Q14S07 17
Q14S08 18 Q14S09 19 Q14S10 20 Q14S11 21 Q14S12 22 Q14S13 23 Q14S14 24
Q14S15 25 Q14S16 26 Q15 27-28 Q16 30
Q17ASEX 31 Q17AAGE 32-33 Q17AEDU 34 Q17AEMPL 35 Q17ACOMP 36 Q17AJOB 37
Q17BSEX 38 Q17BAGE 39-40 Q17BEDU 41 Q17BEMPL 42 Q17BCOMP 43 Q17BJOB 44
Q17CSEX 45 Q17CAGE 46-47 Q17CEDU 48 Q17CEMPL 49 Q17CCOMP 50 Q17CJOB 51
Q17DSEX 52 Q17DAGE 53-54 Q17DEDU 55 Q17DEMPL 56 Q17DCOMP 57 Q17DJOB 58
Q18AB 59 Q18AC 60 Q18AD 61 Q18BC 62 Q18BD 63 Q18CD 64
Q19A 66 Q19BS1 67 Q19BS2 68 AREA 69 SEX 70 AGE 71-72 OPINION 73;
 
/**** 欠損値処理 Q6AからQ6Jまでの10変数について、 ****/
/****  9ならば欠損値に変換している。SASの欠損値はピリオドで表す ****/
ARRAY MISS{10}
Q6A--Q6J ;
DO I=1 TO 10;
IF MISS{I}=9 THEN MISS{I}=.;
END;
/**** 欠損値処理 Q1からQ2までの2変数を配置し、 ****/
/****  99ならば欠損値に変換している。      ****/
ARRAY MI2{2}
Q1 Q2 ;
DO J=1 TO 2;
IF MI2{J}=99 THEN MI2{J}=.;
END;
 
********** データの加工 **********;
********** 新変数の作成 **********;
IF Q6A =1 THEN N6A =0;
IF Q6A =2 THEN N6A =1;
N4A=5-Q4A;
 
********** ある変数の値によって他の変数の値を変える **********;
IF Q6D =1 THEN Q8A =5;
IF Q6D =2 THEN Q8A =6;
 
********** 1から5の値を100から0に変更 **********;
ARRAY X(I) Q14S01-Q14S15;
ARRAY ISIN(I) N14S01-N14S15;
DO I=1 TO 15;
SELECT;
WHEN ( X=1 ) ISIN= 100;
WHEN ( X=2 ) ISIN= 75;
WHEN ( X=3 ) ISIN= 50;
WHEN ( X=4 ) ISIN= 25;
WHEN ( X=5 ) ISIN= 0;
OTHERWISE ISIN= . ;
END;
END;
 
******** この行以降がプロック・ステップ *******;
proc means;
var q6a--q6c;
 
run;
 

2.4.SASプログラムの構成の解説

 上記の文例の1行目は、データファイルとしてda95.txtを使うことを意味している。UNIXのファイル名は、大文字と小文字を区別するので注意。1行目は、da95.txtを、2行目以降のSASプログラム内でmydata(任意の名前でよい)という名前で呼ぶ、ということを表している。

 SASプログラムは、data step と proc step の大きく2つの部分に分かれる。

 上記の例の2行目以降がデータステップであり、データの内容を示す。1行目でmydataと名付けたデータファイルの内容を示しているのである。

 2行目は、データステップ開始の宣言である。データステップの名前(SASの世界ではこの名前をSASデータセット名と呼ぶ)として、任意の名前(この場合da1)をつけている。3行目は、da1の内容として、mydataと名付けたデータファイルを持ってくることを意味する。4行目以降は、データ内容の指定である。

 この例の5行目以降は、1人分のデータが2行であり、1行目の1-2けた目が個人番号(ID)、4けた目が問1、5けた目が問2の回答であることを示している。

 外部のデータファイルを、何段階かを経てSASデータセットとして指定しているので、3行目までは多少分かりにくい。しかし、データが大量で外部データファイルを使う場合、外部のファイル名の指定のために、多くの場合この3行を書くことになる。4行目以降は、unix版もパソコン版SASも同じである。

 proc 以下が分析のための procステップである。この例(MEANプロシジャー)では、q6a、q6B、q6cの3変数の基本統計量を出力する。この例ではprocステップは1つしかないが、procステップは複数あってもよい。

 社会調査データを扱う際、多くの場合、無回答のデータがあるので、欠損値処理を行う。社会調査においては、無回答を9か99という値にしているので、これをSASでの欠損値であるピリオドに置き換える。一度に複数の変数を処理する際は、array文を用いるとよい。

 

2.5.SASプログラムの注意点

 SASプログラムは、コマンドの最後に;がつく。また、最後に必ずrun;(実行の意味)を書く。

 /* と */ でかこまれた文字、あるいは*で始まる行は、コメント文となり、プログラムとして実行されない。

 SASプログラムは、MSワードなどのパソコン上のソフトで作っても、もちろんかまわないが、保存時の形式はテキストファイルを選択して保存すること。保存時の名前は好きな名前でよいが、半角英数字で、なるべく分かりやすいものにする。例えば、問5の平均値を出すときは、q5mean1.sasなどとするとよい。また、「 .sas」の前は半角8文字以内に納めるほうが無難である。

 パソコン上で作ったプログラムやデータファイルは、ftpソフト(ファイル転送用のプログラム)によってワークステーションに転送すると、そのままワークステーション上のテキストファイルとして使用可能である。

 

2.6.プロック・ステップ(SASプログラムの分析命令文)の例

 代表的な分析文の例を示す。以下を理解し市川他(1993)を適宜参照すれば、通常よく使われる多変量解析法を用いた分析は充分にできる。これ以外にも多くの分析手法を用いることができる。既存のソフトの中でも、SASはもっとも分析手法が豊富であり、新しい分析法の導入も早い。私見ではSPSSの方が初心者には扱いやすいし、値段は確実に安い。しかし、SASはプログラミング言語としてもかなり高度なことができ、データの加工などについて複雑な操作が可能である。他の分析手法について詳しくは、市川他(1993)、前川(1997)や、SASのマニュアルなどを参照されたい。

 

1)基本統計量

 q6a、q6b、q6cの3変数の、平均、標準偏差などの基本統計量を出す

 

proc means;

var q6a--q6c;

 

2)単純集計

 q1 q2 q4 q5 q6 q7の単純集計を行う

 

proc freq; tables q1 q2 q4--q7;

 

3)クロス集計

 q1とq2のクロス集計を行う。2行目は、セル内のよけいな情報をなくして見やすくし、カイ二乗値を出す。3行目以降は3重クロス集計の例。

 

proc freq;

tables q1*q2;

tables q1*q2/nopercent nocol chisq;

tables q1*q2*q3;

tables (q1*q2)*q4;

 

4)相関係数

 S31からS36までの6変数の相関係数を出す。

 

PROC CORR;

VAR S31--S36;

 

5)正準相関分析

 BY Q1S1; をつけると、Q1S1の値ごとに分析する。つけなくてもよい。後述のように、BYを使うときは、PROC SORT文によって、事前にデータを並べ替える必要がある。

 

PROC CANCORR;

VAR SC301--SC356;

WITH Q4A--Q4K;

BY Q1S1;

 

6)データの並べ替え

 BY 文をつけて Q1S1ごとに分析する場合、事前にQ1S1によって並べ替えておく必要がある。

 

PROC SORT; BY Q1S1;

 

7)回帰分析

 下記の最初のモデルだと、q8を被説明変数、q1 q2 q3を説明変数としたモデルで分析が行われる。モデルを複数書くと、全モデルで欠損値がないケースに関して分析される。つまり、モデル文中にあるいずれかの変数が欠損値となっている人のデータは、除いて分析される。/stbオプションをつけると標準偏回帰係数が出力される。dataオプションは書かなくてもよい。書かなければ、直前のデータステップのデータを用いて分析を行う。

 なお、回帰分析は分かりやすく有効な分析法だが、多重共線性の恐れがある。重回帰分析の考え方を十分に理解した上で、事前に説明変数間の相関を見て多重共線性の可能性をよく検討すること。

 

proc reg data=da1;

model q8 = q1 q2 q3/stb;

model q8 = q1 q2 q4--q7/stb;

 

8)分散分析

 q8を被説明変数、q1 q2 と、q1 q2の交互作用項を説明変数としたモデルで分析が行われる。2元配置の分散分析である。ss2オプションにより、アンバランスデータにおける分散分析のtypeUの平方和が出力されるが、これについて詳しくはマニュアルなどを参照。glmプロシジャーはGeneralized Linear Modelの考え方にもとづいたプログラムで、高度な計算を行っている。

 

proc glm data=da1;

class q1 q2;

model q5 = q1 q2 q1*q2/ss2;

means q1 q2 q1*q2 ;

 

9)因子分析

 下記の文例では、q1 q2 q5からq12の10変数を用いて分析を行っている。とくに指定をしなければ主成分法により計算される。plotの直後にmethod=prinitを加えると主因子法での分析となる。nfactにより因子数を指定している。指定しなければ、固有値が1以上の因子数を採用する。回転法としてvarimax法を指定している。因子構造の簡単なプロットも出力できる。

 out文により出力データ名を指定すると、因子得点が、factor1, factor2,...という名前で新たな変数となって新データに加わっている。その後、このデータを用いて、plot文により散布図を出力することができる。vref、href文により、散布図での軸線の通る値を指定できる。この例では、0、0が原点となって、散布図に線が引かれる。試しに、0を0.5などに変えてみると良い。

 

proc factor out=out1 nfact=2 rotate=varimax preplot plot;

var q1 q2 q5--q12;

proc plot data=out1;

plot factor2*factor1/vref=0 href=0;

 

2.7.データの加工

 SAS等のソフトは、分析法については上記のような例になれてしまえば簡単だが、カテゴリー合併、新変数の作成、2つのデータの合併などの、データ加工法の方が奥が深い。詳しくは、上記文例内のデータ加工の例文や、参考文献、SASのマニュアルなどを参照されたい。

 

 

3.疑似スクリーンモードでのUNIX版SASの使用

 SASをスクリーンモード(画面全体を使った疑似ウィンドウのモード)で使うと、2つのウィンドウが表示される。画面上半分がログ画面(処理結果やプログラムのエラーなどを表示する画面)、画面下半分が編集画面(プログラムの編集をする画面)である。

 本当は出力画面を含めて3つの画面があるが、初めは2つだけが表示される。プログラムを実行(submit)すると、2つの画面は消えて、出力画面(分析結果を表示する画面)が表示される。

 テルネットで接続し、キャラクターベースで使用していても、vt100端末のような疑似スクリーンモードでSASを使用することが可能である。

 

3.1.SASのスクリーンモードでの起動

 少しややこしいが、以下のコマンドを使うと、テルネットでつないだ画面でも、SASがvt100端末のスクリーンモードのような感じで起動する。

 sas -fsdevice ascii.vt100nav -fsdbtype jis7

 

 立教大学のUNIXでは、上記のコマンドを打ち込まなくても、「vtsas」と入力すると、同様に起動するように設定してある。

 ターミナルソフトの設定をJIS漢字(jis7)にすれば、日本語も文字化けせずに表示される。Windows付属のtelnet.exeならば、Window上のターミナルをクリックし、設定を選択してJIS漢字とする。

 

3.2.プログラムファイルの読み込み

 プログラム画面のコマンド行(画面一番上の行)で、include filenameと入力

 filenameは大文字小文字を区別するので注意

 

3.3.プログラムの実行

 submitと入力(またはf3を押すと同様に実行されるように設定してある)

 実行すると、プログラムは消えてしまい、ログ画面に実行の経過が表示される。recall(f4)と入力すると、消えたプログラムが再度表示される。ログ画面でエラーが出ていたら、プログラムのミスを修正する。

 

3.4.プログラムの編集

 プログラム画面のコマンドラインでは、以下のようなコマンドが使える。

backward(back) 画面を前スクロール

forward(forw) 画面を後スクロール

top 画面最初へ移る

bot 画面最後へ移る

save filename 編集したファイルがfilename.sasという名前で保存される

 

 行番号のところに以下の編集コマンドを打ち込むと編集が可能。ためしに、行番号のところにiと入力し、エンター(実行、改行キー リターンキー)を押してみよう。

i   1行挿入。i3とすると3行挿入

c,cc コピー。ccで囲んだ複数行のコピーも可能。

m,mm 移動

d,dd 削除

a (after) コピー先などを指定 この行の後にコピー実行。

b(before) コピー先などを指定 この行の前にコピー実行。

 

3.5.出力の表示

 プログラムにミスがなければ、実行後、アウトプット画面が表示される。

 アウトプット画面のコマンドラインでは以下のようなコマンドが使える

backward(back) 画面を前スクロール

forward(forw) 画面を後スクロール

top 画面最初へ移る

bot 画面最後へ移る

end(f3) アウトプット画面の終了。初期画面に戻る。

file filename 出力がfilename.lstという名前で保存される

 

3.6.SASの終了

 コマンド行でbyeあるいはendsasと入力

 

3.7.ヘルプ

 コマンド行でhelと入力(f1を押しても同様)。知りたい項目の部分にカーソルを移して改行キーを押すと、その項目の説明が出る。ヘルプ画面の終了はend。

 

 

4.X-WindowモードでのUNIX版SASの使用

 自分の使っているパソコンなどの端末にX-Windowのソフトを入れ、UNIXのホストコンピューターに接続すれば、SASをX-Windowモードで快適に使用できる。グラフィックなども使用可能である。ただし、X-Windowの設定をせねばならない。これは結構難しい。私は、自分の古いノートパソコンにフリーBSDというUNIXライクなパソコン用OSを入れ、X-Windowの設定を優秀な某助手様にしていただき、自分の部屋でのX-Window環境を実現している。X-Windowモードの設定法は、UNIX上のSASのディレクトリに入っている、マニュアルのファイルに書いてあるらしい。

 X-WindowモードでSASを起動すると、ログ画面、編集画面、出力画面の3つと、タスクバーが表示される。まず、編集画面のファイルをクリックし、オープンを選択し、プログラムファイルを開く。タスクバーの「人が走っている絵が描いてあるボタン」を押すと、プログラムが実行(submit)される。

 

 

5.OSによるSASの違いについて

 SASは、汎用機版もUNIX版もパソコン(Windows)版も、操作法やプログラムの書式はほぼ完全に同じである。ただし、プログラムの最初の3行の、データファイル名の指定法のみが、少しだけ異なる。

 

◆IBM汎用機のOS(VM-CMS)版のSAS

 x filedef コマンドを使う

   例 データファイル名が filename filetype a の場合

     1行目でデータファイルにmydataという名前(任意の名前)を付けている。

 

x filedef mydata disk filename filetype a;

data da1;

infile mydata;

input

 

◆UNIX版のSAS

 filenameコマンドを使う

   例 データファイル名が datafile.txt の場合

     UNIXの自分のディレクトリにdatafile.txtを置いておく

     1行目でデータファイルにmydataという名前(任意の名前)を付けている。

 

filename mydata 'datafile.txt';

data da1;

infile mydata;

input

 

◆Windows版のSAS

 INFILEコマンドで直接データ名を指定するので、プログラムが1行少ない

   例 データファイル名が datafile.txt の場合

     C:\DATA\など、任意のディレクトリにdatafile.txtを置いておく

 

data da1;

INFILE 'C:\DATA\datafile.txt ';

input

 

input行以下は、どの版でもすべて同じ。

 どの版でも、data da1; の行以降がデータステップであるということを宣言している。 input行以下で、データファイルの変数名の指定を行う。

 パソコン版は、ファイルのやりとりをしなくてすむので、やはり一番使いやすい。UNIX版は、ftpソフトによりファイルの送受信が可能で、最近はけっこう使いやすいのではないか。汎用機版は、分析結果のファイルを自分のパソコンに受信したりするのが、少し面倒。最近では、汎用機版を大人数で使うよりは、UNIXやパソコンの方が処理速度が速いことさえあり、汎用機版を使うメリットはもはやあまりない。UINXなどに乗り換えても、これまでと同様の使用法で使えるので、乗り換えた方が良いだろう。

 

 

参考文献

fjの歩き方編集委員会編.1995.『fjの歩き方:インターネットニュースグループの世

  界』オーム社.

芳賀敏郎・野澤昌弘・岸本淳司.1996.『SASによる回帰分析』東京大学出版会.

市川伸一他.1993.『SASによるデータ解析入門 第2版』東京大学出版会.

 ★SASの解説書としては定番。これを読めば、基本的な使用法は理解できる。

前川眞一.1997.『SASによる多変量データの解析』東京大学出版会.

 ★市川他(1993)と同様の東大出版のシリーズ。多くの多変量解析法を線形モデルによっ

  て説明しようとしている。SASの行列演算言語のPROC IMLの解説もある。

奈良久・川添良幸・金井浩.1987.『コンピューター利用入門 −SASへの招待』

  東北大学情報処理教育センター

 ★私が大学1年生だったときの、東北大教養部の情報処理科目の資料。ど初心者向けに

  汎用機版SASの解説をしたもので、それなりに分かりやすかったが、もはや絶版。

高橋行雄他.1989.『SASによる実験データの解析』東京大学出版会.

 ★GLM(General Linear Models, 一般線形モデル)を用いた分散分析について詳しい解説

  がある。LSMEANSの使用法を覚えれば有益だろうが、説明がちょっと分かりにくい。

豊田秀樹.1992.『SASによる共分散構造分析』東京大学出版会.

 ★共分散構造分析全般とPROC CALISを用いた分析法の解説。

山際勇一郎・田中敏.1997.『ユーザーのための心理データの多変量解析法』教育出版.

 ★初心者向けに、SASによるさまざまな多変量解析法を分かりやすく解説している。

 

 


あなたは1998年04月20日以来  回目のアクセスです。


村瀬の目次に戻る


All Rights Reserved, Copyright(c), MURASE,Yoichi
ご意見、お問い合わせは、お気軽にどうぞ E-mail : murase rikkyo.ac.jp