各統計手法のproc、クラスター分析、グループ毎集計、まとめ

統計モデル解析特論I/II : 第13回 (01/29/19)

 最終回の今回は、Q3 で紹介した統計手法について、SASでの実行方法を示すと共に、 その他 SAS を利用する上で参考になるサイトを紹介する。 最後にまとめとレポート課題を提示する。
  1. 重回帰分析

  2. 主成分分析

  3. 因子分析

  4. 実験計画法:

  5. クラスター分析

  6. ファイルへの書き出し
     第1節の重回帰分析(outreg)や第2節の主成分分析(outprin)、 また前節のクラスター分析(outclust)では、 前のproc で生成したデータを後ろのproc に引き継いで利用しているが、 SAS 以外のプログラムで計算結果を利用する場合は、 データをファイルに書き出す必要がある。

    data _null_;                              : ファイルに書き出す
      set outclust;                           : 書き出すデータセットを指定
      file 'Kougi/les1301_out.txt';           : ファイル名を指定
      put shintyou taijyuu kyoui cluster;     : 書き出す変量を指定
    run;
    

  7. 基礎統計量、頻度集計、ヒストグラム

  8. 各グループごとでの集計、基礎統計量

    1. プログラム : Lesson 13-2 : les1302.sas
       /* Lesson 13-02 */
       /*    File Name = les1302.sas  01/29/19   */
      
      options nocenter linesize=78 pagesize=30;
      proc printto print = 'Kougi/les1302_results.txt' new;
      
      data gakusei;
        infile 'Kougi/all08c_sjis.csv'
          firstobs=2 dlm=',';
        input sex $ shintyou taijyuu kyoui 
              jitaku $ kodukai carryer $ tsuuwa;
      
      proc format;
        value clshint  low-<150='   -149'
                       150-<160='150-159'
                       160-<170='160-169'
                       170-<180='170-179'
                       180-high='180-   '
                       other   ='missing';
      run;
      
      proc print data=gakusei(obs=5);
      run;
      
      proc tabulate data=gakusei;                  : 要約統計量の表の作成
        class sex jitaku;                          : 特性変数であることの宣言
        var kodukai;                               : 集計する変量名
        tables kodukai*(n mean std),sex*jitaku;    : 表示内容、分類変量名
      run;                                         :
      
      proc tabulate data=gakusei;                  :
        class shintyou sex;                        :
        var taijyuu;                               :
        tables taijyuu*(n mean std),shintyou*sex;  :
        format shintyou clshint.;                  : 連続変量をグループ化することの指定
      run;                                         :
      

    2. 出力
                                     2019年 1月29日 火曜日 13時12分14秒  24
      -----------------------------------------------------------------------
      |                 |                        sex                        |
      |                 |---------------------------------------------------|
      |                 |            F            |            M            |
      |                 |-------------------------+-------------------------|
      |                 |         jitaku          |         jitaku          |
      |                 |-------------------------+-------------------------|
      |                 |     G      |     J      |     G      |     J      |
      |-----------------+------------+------------+------------+------------|
      |kodukai |N       |       38.00|       73.00|       88.00|      136.00|
      |        |--------+------------+------------+------------+------------|
      |        |Mean    |    75710.53|    34897.26|    87988.64|    26970.59|
      |        |--------+------------+------------+------------+------------|
      |        |Std     |    57382.03|    30640.72|    73705.14|    33083.05|
      -----------------------------------------------------------------------
      
                                     2019年 1月29日 火曜日 13時12分14秒  25
      -----------------------------------------------------------------------
      |                 |                     shintyou                      |
      |                 |---------------------------------------------------|
      |                 |    -149    |         150-159         |  160-169   |
      |                 |------------+-------------------------+------------|
      |                 |    sex     |           sex           |    sex     |
      |                 |------------+-------------------------+------------|
      |                 |     F      |     F      |     M      |     F      |
      |-----------------+------------+------------+------------+------------|
      |taijyuu |N       |        5.00|       42.00|        3.00|       41.00|
      |        |--------+------------+------------+------------+------------|
      |        |Mean    |       41.80|       47.42|       53.40|       51.16|
      |        |--------+------------+------------+------------+------------|
      |        |Std     |        2.59|        4.52|        6.77|        3.68|
      -----------------------------------------------------------------------
      (Continued)
      
                                     2019年 1月29日 火曜日 13時12分14秒  26
      -----------------------------------------------------------------------
      |                 |                     shintyou                      |
      |                 |---------------------------------------------------|
      |                 |  160-169   |         170-179         |    180-    |
      |                 |------------+-------------------------+------------|
      |                 |    sex     |           sex           |    sex     |
      |                 |------------+-------------------------+------------|
      |                 |     M      |     F      |     M      |     M      |
      |-----------------+------------+------------+------------+------------|
      |taijyuu |N       |       69.00|        0.00|      161.00|       28.00|
      |        |--------+------------+------------+------------+------------|
      |        |Mean    |       58.72|           .|       63.13|       67.88|
      |        |--------+------------+------------+------------+------------|
      |        |Std     |        7.31|           .|        7.60|        7.87|
      -----------------------------------------------------------------------
      

  9. [おまけ: Tips] データをファイルから読み込む際に便利なコマンド: デリミタの指定等
     Excel 等で入力したデータを SAS に読み込ませる方法として、 csv 形式で保存してからSASで読み込む方法を紹介した。 これ以外にタブ区切り(*.txt)の形式のファイルも読み込むことができ、 その場合を含めて、幾つかの便利なコマンドをまとめて紹介しておく。

    1. カンマ区切り(csv 形式)のファイルを読む場合 : *.csv
        CSV 形式のファイルを読み込む場合、文字列の長さを指定しないと、 8文字(8バイト)しか読み込んでくれない。しかし、かと言って、input 文に 単に文字数を指定すると、カンマを超えて読み込もうとする。 また、欠損値が続くとそれ等を一つの欠損値として読み込んでしまう。 それらの欠点を一挙に解決するには以下の様式のプログラムを用いる。 続く欠損値を個々にバラして読ませ(infile 中の dsd)、 デリミタが出現するところまでの任意の長さの文字列を読み込む(input 中の : )ように指定する。
      data example2018;
        infile 'Kougi/foo1.csv'
          dlm=',';
          firstobs=2
          truncover
          missover
          dsd
      ;
        input No $ Univ : $30. SName : $40. Faculty : $50. Dept : $50.
              Center1 : $8. Center2 : $8. Sel1 : $8. Sel2 : $8.
              Book1 : $10. Book2 : $10.
              Vol0  VolS  VolT
              ZenKou $ ScoreS  ScoreT  KoKouSi
      ;
      

    2. タブ区切りのファイルを読む場合 : *.txt
      data example2018;
        infile 'Kougi/foo2.txt'
          dlm='09'x 
          firstobs=2
          truncover 
          missover;
      

    3. 1レコード(1行)のレコード長が長い場合 : 一行の長さの指定、例えば 230バイトだと
      data math;
        infile 'Kougi/foo3.csv' lrecl=230;
      

    4. 行末がそろってないデータの読み込み : 一行の長さを指定し、揃ってないことを明示
      data math;
        infile 'Kougi/foo4.csv' lrecl=230 truncover;
      

    5. 固定長データの読み込み : カラム位置を指定して読み込む
      input
            UketsukeID     1-  6
            JyukenID       7- 11
            BirthDay      13- 20
            Area       $  32- 41
            s_scor01     103-104
            s_scor02     105-106
            s_scor03     107-108
      ;
      

  10. 全体を通してのデータ分析の手順
     データを分析する際の、全体的な流れについて紹介しておく。

    1. 取り組む問題の理解
    2. データ採取計画の立案
    3. データ収集
      • 試しに採ってみる
      • 正式に大規模に採取
    4. データクリーニング
    5. 基礎統計量
    6. 各種分析: 多変量解析等
    7. 考察
    8. 報告

  11. お役立ちサイト: マニュアル、サンプルデータ

  12. 課題提出(レポート): 詳細は 第12回 第9節 を参照下さい。
    提出期限は「02月12日(火)」です。 また、02月09日14時から 10日14時(JST)までシステムの定期保守があるようですので、 ご注意ください。

  13. まとめ: 講義を終えるにあたって
     この講義を通して、「データとの接し方」や「統計の考え方」が 多少なりとも理解できたであろうか? 大量の数値群からその中に内在する構造を見つけることが 「解析」であり「統計の面白味」でもあると思う。 そのためには、理論や目的を知っている必要があるのは勿論だが、 対象とするデータの背景を知っておくことや、 統計ソフトを"道具"として使いこなす必要もあろう。
     統計手法については、数式よりもその手法の考え方や利用目的に重点をおいて 説明したつもりである。
     今後、各自の実験や修論をまとめる際は勿論のこと、 日頃目にする新聞や雑誌と言った生活等のいろいろな場面で、 種々のデータに出会うことになると思うが、 提示された数値にはどの様な意味(と意図)があり、 どう理解して、個々人としてどうアクションを起すかの、 一つの判断手段として活用してもらえれば幸いである。
     今後、もし統計に関して何か疑問に出会い、 私に連絡・相談してみたいと思った時は、遠慮無くご連絡ください。

     皆さんのご期待にどこまで応えられか心許無い部分もありますが、 Q3、Q4を通して13回の講義、お疲れ様でした。 ご健康には留意されてお過ごしください。お元気で。

[DIR]講義のホームページへ戻ります