SAS を使ってみよう

統計処理 01 クラス : 第3回(04/25/02)

電子メールをメーリングリスト経由で送った。 同じ文は「連絡事項のページ(04/18/02)」にも掲載しておいたが、各々のアドレスに届いたであろうか?
今週は、まず先週の途中から復習を含めて行った後、 いよいよお待たせの SAS を使ってみよう。 特に知っておくべきコマンドを中心に解説する。
  1. SAS を使うには? 終るには? : stat システムにログインする
    1. SAS は stat システム上に存在
      「スタート」→「プログラム(P)」→「stat システム」→「stat1」とクリックする。
      (stat1 と 2, 3 はどれでも対等。混み具合いによって選択してよい。 ただ、講義中は一つのマシンに集中する可能性があるので、座席位置で指定する)。
      [重要な注意] stat システム内ではマウスは使えない。 以後の入力はキーボードからのみ行う。 また、画面サイズも変更しないこと。
    2. 「login:」、「Password:」と表示されるので、 それぞれ stat システム用の IDとパスワードを入力する。 なお、パスワードはセキュリティの都合上、画面には表示されない (盗み見られることを防止するため)。
    3. SAS を起動するには「vtsas」と入力してリターンキーを押す。
      画面が区切られたような領域に分割されて表示される。
    4. SAS を終了するには「コマンド =>」 の右側にカーソルをカーソル移動キー(矢印キー)で移動させ「bye」と入力して リターンキーを押す。大なり記号の直後に空白() が一つ必要なので注意せよ。
    5. stat システムから戻るには「logout」と入力してリターンキーを押す。

  2. UNIX の初歩のコマンド : 「 第2回 」の「第7節」にある Lesson 2-4 も参照のこと

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

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

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

    4. 何はともあれプログラムを入力してみよう : les0301.sas
      • Program エリアに入力していく : PGM
        [注意] リスト中、コロン(:)以降は解説用なので入力しないように。
      • 領域を大きくしたい : ZOOM
      • テンキーは使えない。キーボード上部の数値キーで入力。
      • 講義内では日本語入力は取り扱わない。入力は全て半角英数字のみ。
      • ブランクはいくつあっても一つと見なされる。読み易さのために段下げを
      • カーソルの移動には「←」「→」「↑」「↓」キーを利用。
      • プログラムはセミコロン(;)で終わる。
      • コロン(:)とセミコロン(;)を間違えないように。

       /* Lesson 3-1 */                             : コメント、実行に無関係
       /*    File Name = les0301.sas  04/25/02   */ : 後々の記録のためのメモ
                                                    : 見易さのための空行
      data kenshin;                                 : データ名の定義
        input name $ height weight;                 : 読み込む変量名、型($は文字型を示す)
      cards;                                        : データの始まりを示す
        koizumi     156  44                         : Case 1
        Mori        165  58                         :      2
        Obuchi      157  43                         :      3
        Hasimoto    159  44                         :      4
        Murayama    162  44                         :      5
        Hada        159  59                         :      6
      ;                                             : データの終りを示す
      proc print data=kenshin;                      : 読み込んだデータの表示
      run;                                          : 上記の実行
      proc means data=kenshin;                      : 平均値等の算出
      run;                                          : 上記の実行
      

    5. 実行してみよう
      Program エリアの「コマンド =>」の右にカーソルを移動させて「SUB」

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

      2. 平均値等の算出
        • 各変量ごとのサンプル数、平均、標準偏差、最小値、最大値
                                    SAS システム                             1
                                               12:14 Wednesday, April 24, 2002
      
                        OBS    NAME        HEIGHT    WEIGHT
      
                         1     Koizumi       156       44  
                         2     Mori          165       58  
                         3     Obuchi        157       43  
                         4     Hasimoto      159       44  
                         5     Murayama      162       44  
                         6     Hada          159       59  
      
                                    SAS システム                             2
                                               12:14 Wednesday, April 24, 2002
      
        Variable  N          Mean       Std Dev       Minimum       Maximum
        -------------------------------------------------------------------
        HEIGHT    6   159.6666667     3.3266600   156.0000000   165.0000000
        WEIGHT    6    48.6666667     7.6332606    43.0000000    59.0000000
        -------------------------------------------------------------------
      

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

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

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

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

      3. 知っておくと便利なコマンド一覧
        • コマンドは大文字でも小文字でもよい。 ここでは大文字で表記しているが、それは省略形でもある。 SAS は識別可能な先頭の数文字で認識しているため全てを入力する必要はない。

        • PGM : Program エリアへの移動 : プログラムの編集。
        • RECall : プログラムの呼び戻し : Program エリアで。
        • [Ctrl]+[X] : インサートモード : プログラムの修正に。
        • [Ctrl]+[U] : コマンド行へ移動 : すばやく移動。
        • SUBmit : 実行や継続実行 : 画面右上に[停止中]と出ているときにも。
        • D, I, C, ... : 編集用のコマンド : より高度な編集機能。
        • Zoom : エリアの拡大・縮小 : 領域を大きく。
        • CLEAR : エリアの内容消去 : 不要な情報を消去。 <=== 要注意
        • LOG : エラー等の確認は Log エリアで : Log エリアにメッセージ。
        • OUTput : 出力の確認 : 計算結果。
        • TOP : 先頭 : 画面の先頭に移動。
        • BOTtom : 末尾 : 画面の末尾に移動。
        • FORWard : 前進 : 複数画面にまたがっている場合。
        • BACKward : 後退 : 複数画面にまたがっている場合。
        • FILE : ファイルへの保存。
        • INClude : ファイルからの読み込み。
        • BYE : SAS の終了

      4. プログラムや出力の印刷 : レポートの作成等に
        • stat システムにはプリンタがないので 第2回 で説明した転送方法で Win 側に持ってくる。 転送モードを「ASCII」にすることを忘れないように。
        • 印刷するだけなら、「H:」ドライブ辺りに転送して メモ帳や MS-Word (や秀丸等のエディタ等)に読みこんで印刷。
          ファイル名の拡張子(.sas、.lst等)に注意しないと見つけられない。
        • 印刷の仕方等については、「PC・ネットワーク利用ガイド」を参照のこと。
        • 手元に保存しておきたいのなら、FD や MO にバックアップを取る。

      5. 次回は... : 5月9日 14:45
        • データをファイルから読み込んで解析するには?
        • 出力内容の説明

        • [再掲] 連休中に興味あるデータを 2つ以上集めておくこと。 5月16日に先日配布した皆さんのデータも含めて、全てを電子化してもらう予定である。
          電子化と stat システムへの転送が完了していないと、 以後の演習時に支障となるので注意すること(自業自得と言われないように注意)。

      6. [おまけ] スペースが余っているようなので、思いつくままに埋めておく。
        1. stat システムのパスワード変更方法 : 割り当てられたパスワードは覚えにくい
          1. stat システムにログインし、passwd コマンドを使う
          2. 「Current password:」とプロンプトが表示されるので、 現在のパスワードを入力する
          3. 「New password (? for help):」に対して、 新しいパスワードを入力する。短すぎたり、破られ易いものは受け付けられない。
          4. 「New password (again):」に対して、 再度同じ新しいパスワードを入力し、タイプミスがなかったか確認してもらう
          5. いずれの入力時にも、入力文字は画面に表示されないので注意すること (盗み見られることを防止するため)
          6. エラーメッセージが表示されなければ、変更完了

        2. 学外からのアクセスについて : telnet stat1.comp.waseda.ac.jp
          • stat システムも学外からアクセスできる。しかし、 個々人で環境が異なるため具体的な方法については講義の中では取り扱わない。 必要な者は「PC・ネットワーク利用ガイド」を参照せよ。「2001年度版」であれば、 「6.3 ダイアルアップIPサービス経由で接続する」に掲載されている。
          • Windows OS としては Win95/98 しか使ったことがないので、 この範囲では、DOS コマンドの telnet で 漢字コードやエミュレーション設定に注意すれば利用可能であった。
          • 昨年の質問から想像するに、WinMe(や 2000, XP?)に付属の telnet コマンドは漢字コードの変更設定ができないようで、 文字化けを起し満足に使えないようである(未確認)。
          • ターミナルエミュレーターソフトとして、パワフルでかつフリーのソフトに「 Tera Term 」と言うものがある。これは MNC コンピュータ教室にもインストールされており、 講義で使っているのも、実はこれである。
          • Tera Term 」を各自の Win パソコンにインストールして使うことをお勧めする。 設定としては、「漢字(受信)を JIS に」、「漢字(送信)を JIS に」、 「端末 ID を VT100」にしておくとよさそうである。
          • Mac 系については、全く未知なので不明。UNIX 系はそのまま使えるはず。

        3. [発展] 次回紹介予定のプログラムを掲載しておく : プログラム : les0302.sas
          ゴールデンウイークで 1週飛ぶことでもあり、 興味があれば実行してみて、どうなっているか探ってみてほしい。 出力結果 : les0302.lst
           /* Lesson 3-2 */
           /*    File Name = les0302.sas   04/25/02   */
          
          data gakusei;
            infile 'les0201.prn';
            input sex $ shintyou taijyuu kyoui jitaku $ kodukai carrier $ tsuuwa;
          
          proc print data=gakusei(obs=5);
          run;
          proc means data=gakusei;
          run;
          
      [DIR]講義のホームページへ戻ります