SAS を使ってみよう

統計解析 02 クラス : 第02回 (04/21/05)

 電子メールをメーリングリストに送った。 同じ文は「連絡事項のページ (10/13/04)」にも掲載しておいたが、各々のアドレスに届いたであろうか? 今後は連絡用に用いる予定である。質問などもここに投稿してほしい。
 さて、今週は、何はともあれ SAS を使ってみよう。 特に知っておくべきコマンドを中心に解説する。
  1. アンケートの回答

  2. SAS を使うには? 終るには? : stat システムにログインする
     以下では各システム/プログラムの入れ子構造を段下げを用いて明確に示す (この節のみ)。
    1. SAS は stat システム上に存在
      「スタート」→「プログラム(P)」→「stat システム」→「PuTTY」→「stat11」とクリックする。
      (stat11 と 12 はどちらでも対等。混み具合いによって選択してよい。 ただ、講義中は一つのマシンに集中する可能性があるので、座席位置で指定する)。
      [重要な注意] stat システム内ではマウスは使えない。 以後の入力はキーボードからのみ行う。
      [補足1] PuTTY では画面サイズの変更も可能なようだが、当面は変更させずに実習を行なう。
      [補足2] デフォルトのログイン画面は「黒地に白文字」のようである。見難いと感じる場合は、 「白地に黒文字」にする方法があるようだ。その一つの方法として以下を挙げておく。
      「PuTTY のウインドウの上の枠で右クリック」→ 現われたメニュー中の「設定の変更」を選択→ 「ウインドウ」-「色」の「システムカラーを使う」にチェックを入れる→ 「反映する」をクリック。

      1. 「login as:」、「password:」と表示されるので、 それぞれ stat システム用の IDとパスワードを入力する。 なお、パスワードはセキュリティの都合上、画面には表示されない (盗み見られることを防止するため)。

        1. SAS を起動するには「vtsas」と入力してリターンキーを押す。
          画面が区切られたような領域に分割されて表示される。
        2. SAS を終了するには「コマンド =>」 の右側にカーソルをカーソル移動キー(矢印キー)で移動させ「bye」と入力して リターンキーを押す。大なり記号の直後に空白() が一つ必要なので注意せよ。

      1. stat システムを終了するには「logout」と入力してリターンキーを押す。

  3. SAS を操作してみよう : Lesson 2-1 :
    1. まずは stat システムにログインする。 : 前節を参照

    2. 「vtsas」と入力してリターンキーを押す。
      [注意] 次回以降、この状態から講義をスタートする。 今後 stat システムのログイン方法等はいちいち説明しないので、習得しておくこと。

    3. 領域が三種類ある : Program Editor, Output, Log : 役割はおいおい説明する。
      各ウインドウを行き来しよう。コマンド行に以下のコマンドを入力する。
      • Program Editor エリアへ移動 : PGM
      • Log エリアへ移動 : LOG
      • Output エリアへ移動 : OUTput

    4. 何はともあれプログラムを入力してみよう : les0201.sas
      • Program Editor エリアに入力していく : PGM
        [注意] リスト中、コロン(:)以降は解説用なので入力しないように。
      • 当該領域を大きくしたい : Zoom
      • テンキーは使えない。数字はキーボード上部の数値キーで入力。
      • 講義内では日本語入力は取り扱わない。入力は全て半角英数字のみ。
      • ブランクはいくつあっても一つと見なされる。読み易さのために段下げを
      • カーソルの移動には「←」「→」「↑」「↓」キーを利用。
      • プログラムはセミコロン(;)で終わる。
      • コロン(:)とセミコロン(;)を間違えないように。
     /* Lesson 2-1 */                             : コメント、実行に無関係
     /*    File Name = les0201.sas  04/21/05   */ : 後々の記録のためのメモ
                                                  : 見易さのための空行
    data kenshin;                                 : データ名の定義
      input name $ shintyou taijyuu;              : 読み込む変量名、型($は文字型を示す)
    cards;                                        : データの始まりを示す
      Oh          176  85                         : Case 1
      Itoh        181  84                         : Case 2
      Hillman     178  81                         : Case 3
      Valentine   178  84                         : Case 4
      Ohgi        171  71                         : Case 5
      Tao         174  77                         : Case 6
    ;                                             : データの終りを示す
    proc print data=kenshin;                      : 読み込んだデータの表示
    run;                                          : 上記の実行
    proc means data=kenshin;                      : 平均値等の算出
    run;                                          : 上記の実行
    
    1. 実行してみよう
      Program Editor エリアの「コマンド =>」の右にカーソルを移動させて「SUBmit」

    2. 出力結果 : Output エリア : les0201.lst
      1. 読み込んだデータの表示
        • 縦方向にケース、横方向に変量
        • 左端にケース番号
        • 入力が期待通りかを確認 : 数値のずれ、入力ミス、異常値、...

      2. 平均値等の算出
        • 各変量ごとのサンプル数、平均、標準偏差、最小値、最大値
        • [注意] 有効桁数 : 統計ソフトは単なる道具。使いこなすのは各自。
                                    SAS システム                             1
                                               21:08 Wednesday, April 20, 2005
      
                       OBS    NAME        SHINTYOU    TAIJYUU
      
                        1     Oh             176         85  
                        2     Itoh           181         84  
                        3     Hillman        178         81  
                        4     Valentin       178         84  
                        5     Ohgi           171         71  
                        6     Tao            174         77  
      
                                    SAS システム                             2
                                               21:08 Wednesday, April 20, 2005
      
        Variable  N          Mean       Std Dev       Minimum       Maximum
        -------------------------------------------------------------------
        SHINTYOU  6   176.3333333     3.5023801   171.0000000   181.0000000
        TAIJYUU   6    80.3333333     5.4283208    71.0000000    85.0000000
        -------------------------------------------------------------------
      

    3. 特に知っておくべきコマンド :
      • 実行 : SUBmit : プログラムの実行。
      • 前進 : FORWard : 複数画面にまたがっている場合。
      • 後退 : BACKward : 複数画面にまたがっている場合。

    4. 期待通りの出力が得られなかったら... : Log エリア : les0201.log
      • プログラムのミスが一番に考えられる: スペルやスペースの場所等
      • マウスを使ってスクロールさせようとはしないこと
      • データはきちんと読み込まれているか?
      • エラーメッセージは Log エリアに表示される。 各行ごとにメッセージが表示されるので、エラー個所が特定し易い。
      • エラーを除去する作業 : Debug と言う
      • Debug も経験を積むことによって、要領よく作業できるようになる

    5. 一旦実行したプログラムの呼び戻し :
      • 実行したら Program Editor エリアから消える : そう言うものと理解しよう
      • RECall : プログラムの呼び戻し : Program Editor エリアで

  4. プログラムを有効活用しよう
    1. 保存 : 自分のホームディレクトリに判りやすいファイル名で保存。
      • Program Editor エリアのコマンド行で : FILE 'filename.sas'
      • Output エリアのコマンド行で : FILE 'filename.lst'
      • Log エリアのコマンド行で : FILE 'filename.log'
    2. 読み込み : 自分のホームディレクトリから
      • Program Editor エリアのコマンド行で : INClude 'filename.sas'

    3. [Lesson 2-2] : プログラムを保存しておこう。 Program Editor エリアのコマンド行で。
      [例] file 'les0201.sas'

  5. 知っておくと便利なコマンド一覧 : 講義期間中を通して使うコマンド

  6. [補足] UNIX の初歩のコマンド : 詳しくは書籍等を参考に

  7. データの電子化 : 今後の講義時に使用するデータの生成
    次回以降に解析対象とするデータを、事前に電子化しておいてもらう。 講義中にデータを入力する演習を設けると時間が有効に使えないので、 自分の自由になる時間を見つけて、事前にファイルを作成し、持参してもらいたい。

    取り扱うデータは長方形(表形式)をしているので、Windows 上の 表計算ソフトと呼ばれるアプリケーションを利用するのが便利であり、 かつ機能的である。 ここでは、Microsoft Excel を例に実際に電子化の手順を説明する。 なお、Excel のより詳しい使い方については、 「PC・ネットワーク利用ガイド」や市販の書籍を参考にしてほしい。
    また、データは縦方向にケース(サンプル)が、横方向に変量が、 並んでいるとして、説明を進める。

    1. Excel の起動
      「スタート」→「プログラム(P)」→「Microsoft Office」→「Microsoft Excel」とクリックする。

    2. データの入力
      表示された枠に「表形式」と呼ばれる並び(縦:ケース、横:変量) で順にデータをキー入力していく。 なお、実習では半角英数字のみを取り扱うことにする。
      カーソルの移動には、「Tab」キー(右方向へ移動)や 「Enter」キー(下方向へ移動)が便利である。 矢印キーやマウスで移動させることもできるが、次変量の入力のための移動に これらを使うと入力スピードが遅くなるので得策ではない。

      [Lesson 2-3] : データの電子化 : 小泉内閣の資産公開資料のデータを電子化せよ。氏名は姓だけでよい。 [PDF File] .

      • [注意1] 各項目内に空白は入れないこと : SAS は空白を区切り記号と判断するため
          (今回の例ではあまり起らないと思うが)
      • [注意2] データの電子化時に、「コード化」を平行して行う必要があるかも。
        • 欠測値(欠損値、不明)データには「.(ピりオド)」を入力。 : データ採取は難しい!! (今回の例にはない)
        • 氏名はローマ字(アルファベット)に書き換える。姓だけでよい。
        • 「男/女」を「M/F」等と記号化して入力する。配布資料では既に変換してある。
      • [注意3] 担当省庁は入力しなくてもよい。

      [補足] SAS は漢字を含むデータを読み込むことができる。 しかし、日本語入力のための作業時間がかかる点や、 ファイル転送時の指定を厳密に行う必要がある点等を考慮して、 講義の中では取り扱わず、半角英数字のみを用いる。

      [データ] 第2次小泉内閣の閣僚資産データ(2003年10月24日発表) [部分]

      Name Position Sex Tochi Yotyokin Total Honnin Kasituke Kariire
      Koizumi Kakuryou M 10743 2360 13103 13103 0 0
      Aso Kakuryou M 37772 7750 45522 40273 20100 2000
      Nozawa Kakuryou M 2315 2114 4429 2912 0 0
      Kawaguchi Kakuryou F 2266 14330 16596 11344 0 0
      Kawamura Kakuryou M 6268 2228 8496 5872 0 1000
      Sakaguchi Kakuryou M 451 2150 2601 2601 0 140
      Nakagawa Kakuryou M 2915 4072 6987 4257 0 8324
      Ishihara Kakuryou M 2346 4840 7186 4715 0 1000
      Koike Kakuryou F 1393 576 1969 1969 0 0
      Fukuda Kakuryou M 6036 480 6516 6336 600 6750
      Ono Kakuryou F 2005 5254 7259 5267 0 0
      Mogi Kakuryou M 688 711 1399 551 0 0
      Takenaka Kakuryou M 3122 671 3793 1273 6065 4647
      Kaneko Kakuryou M 2859 3400 6259 4159 0 2000
      Inoue Kakuryou M 5464 45 5509 4594 0 0

      [入力画面]
      入力画面(拡大)

    3. データの保存 :
      Excel にはいくつかの保存形式があるが、 今回は Excel の標準形式(*.xls)で保存する。 「ファイル(F)」→「名前を付けて保存(A)」で保存できる。 ドライブ名やファイル名を指定し、「保存」をクリックする。 なお、「ファイルの種類」の項は「Microsoft Excel ブック(*.xls)」と なっていることを確認しておく。
      [補足1] stat システム(UNIX)では、 漢字のファイル名や空白を含むファイル名は取り扱いが面倒なので、 「スペースを含まない英数字で」ファイル名を付けることを勧める。
      [補足2] 実は、SAS では Excel の標準形式のファイルを そのままでは利用できないので、ちょっと工夫が必要である。 そのことは次回説明するが、今後とも標準形式でも保存しておくことを勧める。

      [Lesson 2-4] : データの保存 : 演習で入力したデータを保存せよ。
      今後の説明を簡単にするために、ここでは、ドライブ名に「H:」、 ファイル名に「naikaku0310」を指定したとして説明を進める。 この例の指定を行なえば、H ドライブに「naikaku0310.xls」と言うファイルが 作成されているはずである。確認せよ。

    4. Excel の終了
    5. データのバックアップ
      H: ドライブは電源を切ると内容が消されてしまう。 保存用に FD や MO, USBメモリーを利用すること。
      [参考1(裏技?)] メールに添付したり、stat システムに転送してしまうという手もある。
      [参考2] データの電子化。私の場合。
      1. Excel on Windows : データ入力とスクリーニング(点検・修正)
      2. エディタ(emacs) on UNIX : 微修正。手慣れた文字入力環境。

    [演習 : データの電子化] 本節を参考に、各自が収集したデータを電子化せよ。 ファイル名や入力した変量を忘れないように。

  8. 次回は... : 04月28日 14:45

  9. [おまけ] stat システムのパスワード変更方法 : 割り当てられたパスワードは覚えにくい
     [参照] パスワードを変更する : WASEDA UNIVERSITY statシステム
     [変更方法]
    1. stat システムにログインし、「passwd」と入力する。
    2. 「Enter existing login password:」とプロンプトが表示されるので、 現在のパスワードを入力する。
    3. 「New Password:」に対して、 新しいパスワードを入力する。
    4. 「Re-enter new Password:」に対して、 再度同じ新しいパスワードを入力する。
    5. エラーメッセージが表示されなければ、変更完了。忘れないように。
[DIR]講義のホームページへ戻ります