プログラムの解説、デバッグ、データ転送

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

 前回は SAS を使うための操作方法やコマンドを中心に説明を行った。 今回は、SAS のプログラムについてその構成(構造)を解説する。 また、データをファイルから読み込んで実行する方法の下準備も行う。
  1. プログラムの構成とその出力結果 : 前回 の演習内容
    1. プログラムの読み込み :
      Program Editorエリアのコマンド行で : [入力] INClude 'les0201.sas'

    2. プログラム : Program Editorエリア : les0201.sas
      • はじめてのプログラム : 右側は説明用。プログラムは左側のみ。
      • 3つのパート : コメント部、データの定義(data部)、緒処理の実行(proc部)
      • コメントは後々のために入れる習慣を付けよう
      • ブランク(段下げ)や空行は無視されるが見易さのために入れよう
      • 各行は(基本的に)セミコロンで終わる
      • (基本的には) proc コマンド(procedure)ごとに出力が得られる

      • [注意] データ名や変量名は 8文字以内の英数字で 判り易い/解り易い名前を付けること。以下の例で言えば、 データ名とは「kenshin」のことであり、 変量名とは「name, shintyou, taijyuu」のことである。
     /* Lesson 2-1 */                             : コメント、実行に無関係
     /*    File Name = les0201.sas  10/10/07   */ : 後々の記録のためのメモ
                                                  : 見易さのための空行
    data kenshin;                                 : データ名の定義
      input name $ shintyou taijyuu;              : 読み込む変量名、型($は文字型を示す)
    cards;                                        : データの始まりを示す
      Hara        181  88                         : Case 1
      Ochiai      178  80                         : Case 2
      Okada       175  77                         : Case 3
      Ohya        172  84                         : Case 4
      Brown       183  96                         : Case 5
      Furuta      180  80                         : Case 6
    ;                                             : データの終りを示す
    proc print data=kenshin;                      : 読み込んだデータの表示
    run;                                          : 上記の実行
    proc means data=kenshin;                      : 平均値等の算出
    run;                                          : 上記の実行
    
    1. 実行してみよう
      Program Editor エリアの「コマンド =>」の右にカーソルを移動させて「SUB」

    2. 出力結果 : Output エリア : les0201.lst
                                    SAS システム                             1
                                                14:56 Tuesday, October 9, 2007
      
                        OBS     NAME     SHINTYOU    TAIJYUU
      
                         1     Hara         181         88  
                         2     Ochiai       178         80  
                         3     Okada        175         77  
                         4     Ohya         172         84  
                         5     Brown        183         96  
                         6     Furuta       180         80  
      
                                    SAS システム                             2
                                                14:56 Tuesday, October 9, 2007
      
        Variable  N          Mean       Std Dev       Minimum       Maximum
        -------------------------------------------------------------------
        SHINTYOU  6   178.1666667     4.0702170   172.0000000   183.0000000
        TAIJYUU   6    84.1666667     6.9402209    77.0000000    96.0000000
        -------------------------------------------------------------------
      
    3. 計算結果 :
      1. 読み込んだデータの表示 : proc print
        • 縦方向にケース、横方向に変量
        • 左端にケース番号(Observation)
        • 入力が期待通りかを確認 : 数値のずれ、異常値、...
      2. 平均値等の算出 : proc means
        • 各変量ごとのサンプル数、平均、標準偏差、最小値、最大値
        • 小サンプル時の注意 : 各統計量に意味があるか?
      3. 有効桁数に注意せよ : どこまでが「意味ある桁」か?
        [重要な注意] 統計ソフトは単なる道具。使いこなすのは各自。
        [例1] 四捨五入の数値で考えてみれば : 精度(正確さ)が異なることに注意
            12.3 <=== 12.25〜12.34
            12  <=== 11.5 〜12.4

            67.8 <=== 67.75〜67.84
            68  <=== 67.5 〜68.4

        [例2] 日本の観測史上の 最高気温は、2007(平成19)年8月16日に熊谷市と多治見市で観測された40.9度であり、 最低気温は、1902(明治35)年1月25日に北海道旭川市の-41度であった。===> -41.0度
        [例3] 2001年のイチロー選手の打率は3割5分であった。 2006年は3割3分1厘であった。===> 3割5分0厘

    4. デバッグ : 実行時にエラーが出なければ良いのだが...
      • Outputエリアに期待した結果が表示されているのなら正常だろう
      • エラーがあれば Logエリア(les0201.log)に表示される
      • 綴りミスはある程度修正されるが、致命的なミスの時は実行が中断される
        1. 画面が三種類ある : Program Editor, Log, Output
          必要に応じて各エリアを行き来する。コマンド行で。
          1. Program Editorエリアへ : PGM : プログラムの作成
          2. Logエリアへ : LOG : 実行過程の記録(ログ)
          3. Outputエリアへ : OUTput : 計算結果、出力
        2. プログラムのエラー個所を Logエリアで確認
        3. Program Editorエリアに移って該当個所を修正
        4. 再実行しエラーがなくなるまで修正を繰り返す
      • エラーの例 : Logエリアに実行結果が表示される
        1. セミコロン忘れ
        2. コメントの終了ミス : /* ... */
        3. つづりミス : plint, ran, ...
        4. 変量名の順や個数、タイプ($ マークの位置)
        5. データファイルの内容が記述(or 予想)と異なる : 出力で確認
        6. マウスを使ったことによるノイズの混入
        7. ...

    5. 入力したものを有効活用しよう : 修正したら。完成したら。
      • 保存 : 自分のホームディレクトリに判りやすいファイル名で保存。
         Program Editor エリアのコマンド行で。
         [例] file 'les0301.sas'
      • 注意 : 既に同名のファイルがあったら、警告が発せられる。
        「上書き(REPLACE)」、「追加(APPEND)」、「中止(CANCEL)」の中から一つを選ぶ。

    6. [利用のまとめ] SAS を使う上での基本
      • マウスは使えない : stat システム上に SAS がある
      • 3つのエリア : それぞれに目的や使い方がある
      • エラーがあれば Log エリアで確認する
      • 保存と読み出し : プログラムの有効利用

  2. データをファイルから読み込んで使うには? 作業の流れ : プログラムとデータの分離
    1. データを電子化する : Excel 等で ===> 前回 第7節と次節
    2. ファイルを stat システムに転送する : WinSCP 等で ===> 第4節
    3. 転送が期待通り行なわれたかを確認する ===> 第5節
    4. データをファイルから読み込むように SAS プログラムを記述する ===> 次回 第1節?
    5. SAS プログラムを改良する ===> 次回 第2節?、第3節?
    6. レポートを作成するには ===> 次回 第4節?、第5節?

  3. データの電子化 : 詳細は前回の配布資料 第7節を参照
    取り扱うデータが長方形(表形式)をしているので、表計算ソフトと呼ばれるアプリケーションを利用するのが便利である。 ここでは、Microsoft Excel を例に実際に電子化の手順を説明する。 なお、Excel のより詳しい使い方については、 「PC・ネットワーク利用ガイド」や市販の書籍を参考にしてほしい。
    なお、データは縦方向にケース(サンプル)が、横方向に変量が、 並んでいるとして、説明を進める。
    1. Excel の起動
    2. データの入力
    3. データの保存(その1: Excel の標準形式で)
    4. 項目の右揃え
    5. データの保存(その2: テキスト形式で)
    6. Excel の終了
    7. データのバックアップ

  4. データ転送(送信) : WinSCP を使ったファイルの送受信
    MNC では、ファイルの送受信ツールとして WinSCP を用意しているので、このソフトウェアの使い方を説明する。 なお、これはフリーソフトウェアであるので、自宅から使うような場合は 各自のパソコンにインストールしておくとよいであろう。

    1. 転送プログラム(WinSCP)の起動
      「スタート」→「プログラム(P)」→「telnet & ftp」→ 「WinSCP」→選択欄のstat11(または stat12)をダブルクリックする。
    2. ユーザ名欄にユーザID、パスワード欄にパスワードを入力する。
    3. 「ログイン」をクリックする。
    4. 画面の左半分は Windows 側を、 右半分は stat システム側のファイルを表示している。
    5. 転送したいファイルを画面から選び反対側のドライブに ドラッグ & ドロップする。
      • 送信(アップロード) : Windows から stat システムへコピー
      • 受信(ダウンロード) : stat システムから Winodws へコピー
    6. 「コピー」と言うウインドウが開く。右下の「コピー」ボタンを押すと、 コピーされるのだが、これが曲者であり、 そのまま「コピー」ボタンを押すのは避けた方が良い。
    7. 中央下の「詳細(M)>>」ボタンを押して、 転送モードを細かく指定する画面を表示する。
    8. 「転送モード」が「自動」になっていると思うが、 転送モードはこちらから“陽”に指定する。 「解析用データ(*.prn)」や「SAS の出力(*.lst)」はテキスト形式と言って、 文字だけで構成されており、これらは「転送モード」に「テキスト」を 指定してやらないといけない。一方、「Excel ファイル(*.xls)」や 「圧縮されたファイル(*.exe, *.lha, *.zip 等)」は内部コードで記述されているので 「転送モード」に「バイナリ」を指定してやらないといけない。
      • テキストモード : 解析用データ(*.prn), SAS の出力(*.lst)等
      • バイナリモード : Excel ファイル(*.xls)等
    9. 転送モードを指定後、「コピー」ボタンを押して転送する。

    10. 終了は「セッション(Session)」→「切断(Disconnect)」をクリックし、 「閉じる」をクリックする。

     ・参考になるWebページ

    [Lesson 3-1] : ファイルの転送: Windows ===> stat システム(UNIX)

    [参考] PC・ネットワーク利用ガイド2007年度版 の「 第6章 その他のサービス 」に stat システムを使う際の説明が若干載っているのではないかと思う (アクセスは学内限定か?)。

  5. 転送されたデータの表示 : 確認のため。簡単な UNIX コマンド
    1. stat システムにログイン。stat システムは UNIX パソコンである。
      「スタート」→「プログラム(P)」→「telnet & ftp」→「PuTTY」→「stat11」とクリックする。
    2. 「login as:」、「password:」と表示されるので、 それぞれ個人のIDとパスワードを入力する。 なお、パスワードはセキュリティの都合上、画面には表示されない。
    3. UNIX の初歩的なコマンド
      • ファイル名一覧の表示 : ls
      • ファイルの内容の表示 : less [filename]
        [操作方法] スペースキーで次ページ、b で前ページ、q で終了
      • ログアウト : logout

      • ( コマンドラインの入力支援 : tcsh
        • exit で終了
        • ログイン後、最初に1回だけ実行しておくと exit を実行するまで利用できる。 )

    [Lesson 3-2] : 転送されたファイルの確認
    転送したファイルが実際に存在し、ファイル内容も正しいことを確認せよ。

  6. 次回は、... : 10月24日 : 自習

  7. 次々回は、... : 10月31日 13:10
[DIR]講義のホームページへ戻ります