より細かなグルーピングと分布形状の把握

情報処理H : 第5回目(11/08/96)


前回までに、データの基礎統計量や平均を算出する方法を修得した。また、 データをファイルから読み込んだり、出力をファイルに保存することによって、 電子情報を有効に活用する方法も判った。つまり、データを収集して(入り口)、 レポートを作成するまで(出口)の一連の作業に、データ解析ツールとして SAS を利用すること(真ん中)を体験した。

今回からは、データをより詳しく解析する手法を中心に説明する。

なお、プログラムを作成してデバッグするまでの手順も修得したものとして 説明を進める。つまり、プログラムの入力前にあらかじめプログラムウインド ウを消去しておくこと(clear コマンド)や、3 つのウインドウ間を行き来し (pgm、out、log コマンド)状況を把握すること、拡大/縮小したりすること (zoom コマンド)等の使い方を説明文の中に書いたりはしない。特に、プログ ラムや出力をファイルに保存すること(file コマンド)についても、個々に指 示は出さないので、各自の判断で保存してたい場合はその作業を行ってほしい。

  1. より細かなグルーピング : Lesson 4-7、4_8 の解答例
    ・ある大学の学生のデータから、何か興味深い事項(知見)が得られないか?
    ・男性/女性、自宅生/下宿生、...。特性を絞ることによって...。
    1. Lesson 4-7 の解答例 : 各変量の平均 : まず全体を見渡す
      • プログラム : seibe01.sas

         /* Lesson 5-1 */
         /*    File Name = seibe01.sas   11/08/96   */
        
        data arudai;
          infile 'some.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc print data=arudai(obs=10);            : 最初の10ケースの表示
        run;                                       :
        proc means data=arudai;                    : 平均の算出
        run;                                       :
        
      • 出力結果 : seibe01.out

    2. Lesson 4-8 の解答例 1 : 身長は性別によって異なるのであろうか?
      • プログラム : seibe02.sas

         /* Lesson 5-2 */
         /*    File Name = seibe02.sas   11/08/96   */
        
        data arudai;
          infile 'some.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc print data=arudai(obs=10);
        run;
        proc means data=arudai;
           var shintyou;
        run;
        proc sort data=arudai;                     : 並べ替え
           by seibetsu;                            : 性別について
        run;                                       :
        proc means data=arudai;                    : 平均の算出
           var shintyou;                           : 身長について
           by seibetsu;                            : 性別ごとの
        run;                                       :
        
      • 出力結果 : seibe02.out

    3. Lesson 4-8 の解答例 2 : 小遣いは自宅生/下宿生によって異なるのであろうか?
      • プログラム : seibe04.sas

         /* Lesson 5-4 */
         /*    File Name = seibe04.sas   11/08/96   */
        
        data arudai;
          infile 'some.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc print data=arudai(obs=10);
        run;
        proc means data=arudai;
           var kozukai;
        run;
        proc sort data=arudai;                     : 並べ替え
           by jitaku;                              : 自宅特性について
        run;                                       :
        proc means data=arudai;                    : 平均の算出
           var kozukai;                            : 小遣いについて
           by jitaku;                              : 自宅特性ごとに
        run;                                       :
        
      • 出力結果 : seibe04.out

    4. Lesson 4-8 の解答例 3 : 小遣いは自宅生/下宿生、性別によって異なるのであろうか?
      • プログラム : seibe05.sas

         /* Lesson 5-5 */
         /*    File Name = seibe05.sas   11/08/96   */
        
        data arudai;
          infile 'some.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc print data=arudai(obs=10);
        run;
        proc means data=arudai;
           var kozukai;
        run;
        proc sort data=arudai;                     : 並べ替え
           by jitaku seibetsu;                     : 自宅別、性別に
        run;                                       :
        proc means data=arudai;                    : 平均の算出
           var kozukai;                            : 小遣いについて
           by jitaku seibetsu;                     : 自宅別、性別ごとに
        run;                                       :
        
      • 出力結果 : seibe05.out

    5. まとめ
      • まず、全体を見渡すことが大切
      • 特性を絞ることによって小グループの性質がはっきりする : 男性/女性、自宅生/下宿生、...。
      • より細かなグリーピング、小分類ごとの特性 : そのグループの特性が顕著になる
      • 細かくしすぎると各グループのサンプルサイズが小さくなって しまう
      • 適切なグルーピングをしないと無意味なこともある : 自宅生/下宿生の身長差、大学ごとの体重差、...

  2. 分布を見てみよう : 平均や基礎統計量から知れる情報とのマッチング

    1. 棒グラフ : 横方向、縦方向 : 若干表現が異なる ===> 利用目的 に合わせて選択
      • プログラム : hist01.sas

         /* Lesson 5-6 */
         /*    File Name = hist01.sas   11/08/96   */
        
        data arudai;
          infile 'some.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc print data=arudai(obs=10);
        run;
        proc means data=arudai;
        run;
        proc chart data=arudai;                    : 図示
          hbar kozukai;                            : 小遣い額を水平棒グラフで
        run;                                       :
        proc chart data=arudai;                    : 図示
          vbar kozukai;                            : 小遣い額を垂直棒グラフで
        run;                                       :
        
      • 出力結果 : hist01.out

    2. 棒グラフ : 特性変数の場合は頻度が図示される
      • プログラム : hist02.sas

         /* Lesson 5-7 */
         /*    File Name = hist02.sas   11/08/96   */
        
        data arudai;
          infile 'some.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc print data=arudai(obs=10);
        run;
        proc means data=arudai;
        run;
        proc chart data=arudai;                    : 図示
          hbar shintyou kozukai seibetsu jitaku;   : 各変量を水平棒グラフで
        run;                                       :
        
      • 出力結果 : hist02.out

    3. 棒グラフ : グループごと : 自宅生/下宿生による小遣い額の分布
      • プログラム : hist03.sas

         /* Lesson 5-8 */
         /*    File Name = hist03.sas   11/08/96   */
        
        data arudai;
          infile 'some.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc print data=arudai(obs=10);
        run;
        proc means data=arudai;
        run;
        proc chart data=arudai;                    : 図示
          hbar kozukai;                            : 小遣い額を水平棒グラフで
        run;                                       :
        proc chart data=arudai;                    : 図示
          hbar kozukai/group=jitaku;               : 自宅特性ごとに
        run;                                       :
        proc chart data=arudai;                    : 図示
          vbar kozukai;                            : 小遣い額を垂直棒グラフで
        run;                                       :
        proc chart data=arudai;                    : 図示
          vbar kozukai/group=jitaku;               : 自宅特性ごとに
        run;                                       :
        
      • 出力結果 : hist03.out

    4. 箱髭図 : 25%点、中央値、75%点等の図示
      • プログラム : box01.sas

         /* Lesson 5-9 */
         /*    File Name = box01.sas   11/08/96   */
        
        data arudai;
          infile 'some.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc print data=arudai(obs=10);
        run;
        proc means data=arudai;
        run;
        proc univariate data=arudai plot;          : 基礎統計量の算出
        run;                                       : plot オプションを付けて
        
      • 出力結果 : box01.out

      • 出力の見方
        • 箱の下端 : 25%点 = Q1
        • 箱の中線 : 中央値(50%点、メディアン) =Q2
        • 箱の上端 : 75%点 = Q3
        • 箱の中程の + マーク : 平均
        • 箱の中央付近の * マーク : 最頻値(モード)
        • 髭の長さ : (Q3-Q1)x1.5
        • 髭の外側の 0 マーク : (Q3-Q1)x3.0 までの観測値
        • 髭の外側の * マーク : (Q3-Q1)x3.0 より外側の観測値

  3. Lesson 5-10 : レポートの作成

  4. 注意 : プログラムの「目的と内容」を理解・修得して帰ってくださいね。

    困った例:

  5. 次回は、...
[DIR]講義のホームページへ戻ります