SAS を使ってみよう

統計解析 06 クラス : 第03回 (10/14/04)

 電子メールをメーリングリストに送った。 同じ文は「連絡事項のページ (10/13/04)」にも掲載しておいたが、各々のアドレスに届いたであろうか? 今後は連絡用に用いる予定である。質問などもここに投稿してほしい。
 さて、今週は、何はともあれ SAS を使ってみよう。 特に知っておくべきコマンドを中心に解説する。
  1. 講義用ホームページ URL の変更 : 都合により変更します。新しい URL は以下の通りです。
     http://peter.rd.dnc.ac.jp/ice/kougi/sas/

  2. アンケートの回答

  3. SAS を使うには? 終るには? : stat システムにログインする
     以下では各システム/プログラムの入れ子構造を段下げを用いて明確に示す(今回のみ)。
    1. SAS は stat システム上に存在
      「スタート」→「プログラム(P)」→「stat システム」→「stat1」とクリックする。
      (stat1 と 2, 3 はどれでも対等。混み具合いによって選択してよい。 ただ、講義中は一つのマシンに集中する可能性があるので、座席位置で指定する)。
      [重要な注意] stat システム内ではマウスは使えない。 以後の入力はキーボードからのみ行う。 また、画面サイズも変更しないこと。
    2. Service に「telnet」を選択して「OK」をクリックする。

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

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

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

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

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

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

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

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

      2. 平均値等の算出
        • 各変量ごとのサンプル数、平均、標準偏差、最小値、最大値
        • [注意] 有効桁数 : 統計ソフトは単なる道具。使いこなすのは各自。
                                    SAS システム                             1
                                              09:58 Thursday, October 14, 2004
      
                       OBS    NAME        SHINTYOU    TAIJYUU
      
                        1     Ochiai         178         80  
                        2     Wakamats       168         76  
                        3     Horiuchi       177         72  
                        4     Okada          175         77  
                        5     Yamamoto       183         92  
                        6     Yamashit       175         90  
      
                                    SAS システム                             2
                                              09:58 Thursday, October 14, 2004
      
        Variable  N          Mean       Std Dev       Minimum       Maximum
        -------------------------------------------------------------------
        SHINTYOU  6   176.0000000     4.8989795   168.0000000   183.0000000
        TAIJYUU   6    81.1666667     8.0601902    72.0000000    92.0000000
        -------------------------------------------------------------------
      

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

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

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

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

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

  6. 知っておくと便利なコマンド一覧

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

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

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

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

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

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

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

    4. Excel の終了
    5. データのバックアップ
      H: ドライブは電源を切ると内容が消されてしまう。 保存用に FD や MO, USBメモリーを利用すること。
      [参考] メールに添付したり、stat システムに転送してしまうという手もある。

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

  9. 次回は... : 10月28日 14:45

  10. [おまけ] スペースが余っているようなので、思いつくままに埋めておく。
    1. stat システムのパスワード変更方法 : 割り当てられたパスワードは覚えにくい
       [参照] パスワードを変更する : WASEDA UNIVERSITY statシステム
      • stat システムにログインし、passwd コマンドを使う。
      • 新しいパスワードとして、短すぎたり、破られ易いものは受け付けられない。
      • 新しいパスワードを二回入力するのは、タイプミスがなかったか確認するため。
      • いずれの入力時にも、入力文字は画面に表示されないので注意すること (盗み見られることを防止するため)。
    2. 学外から stat システムへのアクセスについて : telnet stat3.comp.waseda.ac.jp
       [参照] 自宅からstatシステムへ接続する : WASEDA UNIVERSITY statシステム
      • stat システムも学外からアクセスできる。しかし、 個々人で環境が異なるため具体的な方法については講義の中では取り扱わない。 必要な者は「PC・ネットワーク利用ガイド」を参照せよ。 「個人所有 PC からの早稲田大学ネットワークの利用」の項に 掲載されているのではないかと思う
      • WinMe, Win2000 や WinXP に付属の telnet コマンドは漢字コードの変更設定ができないようで、 文字化けを起し満足に使えないようである。 (Win95/98 の場合は利用可能であった)。
      • ターミナルエミュレーターソフトとして、パワフルでかつフリーのソフトに「 Tera Term 」と言うものがある。これは MNC コンピュータ教室にもインストールされており、 講義で使っているのも、実はこれである。
      • Tera Term 」を各自の Win パソコンにインストールして使うことをお勧めする。 設定としては、「漢字(受信)を JIS に」、「漢字(送信)を JIS に」、 「端末 ID を VT100」にしておくとよさそうである。
      • Mac 系については、全く未知なので不明。UNIX 系はそのまま使えるはず。
[DIR]講義のホームページへ戻ります