SAS を使ってみよう、データの電子化

統計解析 02 クラス : 第02回 (04/20/06)

 電子メールをメーリングリストに送った。 同じ文は「連絡事項のページ (04/14/06)」にも掲載しておいたが、各々のアドレスに届いたであろうか? 今後は連絡用に用いる予定である。質問などもここに投稿してほしい。
 さて、今週は、何はともあれ 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/20/06   */ : 後々の記録のためのメモ
                                                  : 見易さのための空行
    data kenshin;                                 : データ名の定義
      input name $ shintyou taijyuu;              : 読み込む変量名、型($は文字型を示す)
    cards;                                        : データの始まりを示す
      Valentine   178  84                         : Case 1
      Oh          176  85                         : Case 2
      Itoh        181  84                         : Case 3
      Nakamura    173  73                         : Case 4
      Hillman     178  81                         : Case 5
      Nomura      175  85                         : Case 6
    ;                                             : データの終りを示す
    proc print data=kenshin;                      : 読み込んだデータの表示
    run;                                          : 上記の実行
    proc means data=kenshin;                      : 平均値等の算出
    run;                                          : 上記の実行
    
    1. 実行してみよう
      Program Editor エリアの「コマンド =>」の右にカーソルを移動させて「SUBmit」

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

      2. 平均値等の算出
        • 各変量ごとのサンプル数、平均、標準偏差、最小値、最大値
        • [注意] 有効桁数 : 統計ソフトは単なる道具。使いこなすのは各自。
                                    SAS システム                             1
                                               22:00 Wednesday, April 19, 2006
      
                       OBS    NAME        SHINTYOU    TAIJYUU
      
                        1     Valentin       178         84  
                        2     Oh             176         85  
                        3     Itoh           181         84  
                        4     Nakamura       173         73  
                        5     Hillman        178         81  
                        6     Nomura         175         85  
      
                                    SAS システム                             2
                                               22:00 Wednesday, April 19, 2006
      
        Variable  N          Mean       Std Dev       Minimum       Maximum
        -------------------------------------------------------------------
        SHINTYOU  6   176.8333333     2.7868740   173.0000000   181.0000000
        TAIJYUU   6    82.0000000     4.6475800    73.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. データの電子化 : SASで使用するデータの生成
    取り扱うデータが長方形(表形式)をしているので、表計算ソフトと呼ばれるアプリケーションを利用するのが便利である。 ここでは、Microsoft Excel を例に実際に電子化の手順を説明する。 なお、Excel のより詳しい使い方については、 「PC・ネットワーク利用ガイド」や市販の書籍を参考にしてほしい。
    また、データは縦方向にケース(サンプル)が、横方向に変量が、 並んでいるとして、説明を進める。
    1. Excel の起動
      「スタート」→「プログラム(P)」→「Microsoft Office」→「Microsoft Excel」とクリックする。

    2. データの入力
      表示された枠に「表形式」と呼ばれる並び(縦:ケース、横:変量) で順にデータをキー入力していく。なお、実習では半角英数字のみを取り扱うことにする。
      • カーソルの移動には、「Tab」キーが便利である(右方向へ移動)。 縦方向の移動には「Enter」キー。矢印キーやマウスで移動させることもできるが、 次変量の入力のための移動にこれらのキーを使うと入力スピードが遅くなるので得策ではない。
      • データの電子化のためには、コード化も必要になることがある。
        • 「男/女」を「M/F」等と置き換える等。
        • 欠測値(欠損値、不明)データには「.(ピりオド)」を入力。 : データ採取は難しい!!

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

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

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

      [データ] 第2次小泉内閣の閣僚資産データ(2005年12月09日発表) [部分]
      Name Position Sex Tochi Yotyokin Total Honnin Kasituke Kariire
      Koizumi Kakuryou M 10743 2360 13103 13103 0 0
      Takenaka Kakuryou M 3002 1071 4073 1213 6065 1681
      Sugiura Kakuryou M 1755 796 2551 2071 0 0
      Aso Kakuryou M 37779 7850 45629 40379 20100 2000
      Kosaka Kakuryou M 5596 1300 6896 5224 0 0
      Kawasaki Kakuryou M 4978 100 5078 4978 6709 0
      Nikai Kakuryou M 7417 3600 11017 4701 0 0
      Kitagawa Kakuryou M 1231 0 1231 1231 0 4915
      Tanigaki Kakuryou M 2582 3075 5657 4707 0 0
      Nakagawa Kakuryou M 2962 4072 7034 4304 0 6488
      Koike Kakuryou F 1220 696 1916 1916 0 0
      Abe Kakuryou M 9796 5030 14826 14026 0 0
      Kutsukake Kakuryou M 4973 4060 9033 6113 0 0
      Nukaga Kakuryou M 5272 200 5472 4055 0 10000
      Yosano Kakuryou M 6828 9803 16631 11173 0 4157
      Tyuuma Kakuryou M 3400 1900 5300 4500 0 0
      Matsuda Kakuryou M 4414 2713 7127 6156 0 5105
      Inokuchi Kakuryou F 4307 177 4484 2461 0 12571

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

    3. データの保存(その1: Excel の標準形式で) :
      Excel にはいくつかの保存形式があるが、 今回は Excel の標準形式(*.xls)で保存する。 「ファイル(F)」→「名前を付けて保存(A)」で保存できる。 ドライブ名やファイル名を指定し、「保存」をクリックする。 なお、「ファイルの種類」の項は「Microsoft Excel ブック(*.xls)」と なっていることを確認しておく。

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

    4. 項目の右揃え
      SAS は空白(スペース)を区切り文字として、 テキストファイル(文字で記録されたファイル)からデータを読み込むことができる。 つまり各項目間には空白を入れておく必要がある。 しかし、氏名や性別、また欠損値を示す「.」 は Excel 内では 「文字型」と判断されてデフォルトでは「左寄せ」で出力されてしまい 左隣の項目(数値)と引っ付いてしまう。 そこでこの現象を回避するために全ての項目を「右揃え」してから 保存するようにしておく。
      表の左上の何も書いていないボタンをクリックすると「表全体」 が選択されて反転表示されるので、この状態で「右揃え」ボタンを押す。
      また、今回の例では発生しないかもしれないが、 項目一つあたりの入力文字数の多い(つまり長い)項目の場合、 隣のセルの項目とくっついて表示されてしまうことがある。 そのような場合は、列の幅を余裕を持って大きくして隙間を空けておく。

    5. データの保存(その2: テキスト形式で) :
      Excel の標準形式(*.xls)で保存すると、SAS では利用できないので、 テキスト形式で保存する。 「ファイル(F)」→「名前を付けて保存(A)」で保存ができる。 ドライブ名やファイル名を指定後、 「ファイルの種類」の項に対して「テキスト(スペース区切り)(*.prn)」を指定する。
      保存を指定後に、「選択したファイルの種類は複数のシートを含むブックを サポートしていません」等のメッセーが出る場合があるが、無視してよい。

      [補足2] stat システム(UNIX)では、 漢字のファイル名や空白を含むファイル名は取り扱いが面倒なので、 「スペースを含まない英数字で」ファイル名を付けることを勧める。

      [Lesson 2-5] : データの保存 : 演習で入力したデータを SAS で使うことを考慮して テキスト形式で保存せよ。
      この後の説明を簡単にするために、ここでは、ドライブ名に「H:」、 ファイル名に「naikaku0512」を指定したとして説明を進める (naikaku0512.prn)。

    6. Excel の終了
      • 終了する際に警告が出るが、無視して良い。
      • この警告は、最後に保存した形式が Excel 標準形式でなかった場合に 「データ全部を保存していない」と認識され表示されるものである。 上記のような手順で保存した場合は、警告を無視しても実害はない。

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

    [補足3] 上記ではExcel の標準形式(*.xls)と テキスト形式(*.prn)の 2通りの保存方法を紹介したが、 今後とも両方の形式で保存しておくことを勧める。
    上記で指摘したように、列幅が足らない状態でテキスト形式の保存を行なうと、 ファイル上で隣同士のセルがくっついてしまい、 以後手作業を行わないと分離できなくなってしまうからである。 Excel の標準形式で保存してあれば、 このファイルを使って幅を再修正し、テキスト形式で再保存することが可能となる。 逆に、テキスト形式だけだと、このような再修正は不可能である。
    [補足4] テキスト形式(*.prn)で保存後に、 これを直接編集したい場合は、Excel を使わずともテキストエディタ(秀丸、 NotePad 等)を使えば加工できる。
    [補足5] SAS に読み込ませるデータの形式として、 「スペース区切り」以外に「タブ区切り」、「カンマ区切り(CSV 形式)」等も 利用可能であるが、これらについては後日紹介する。

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

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

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

  10. [おまけ2] 学外から stat システムへのアクセス方法
     [参照] 自宅からstatシステムへ接続する : WASEDA UNIVERSITY statシステム
[DIR]講義のホームページへ戻ります