2変量の関係

情報処理H : 第6回目(11/15/96)


前回は、1変量(単変量)のデータの把握方法と視覚化について説明した。 今回は、2変量についての視覚化と関連を測る尺度を説明する。

  1. 2変量の関係 : 2変量の視覚化 : 連続変数
    1. 早稲田大学とある大学のデータを合わせたものを使おう (男女比が片寄っているので、一緒にして利用する)。まずは、データの把握。
      • プログラム : scat01.sas

         /* Lesson 6-1 */
         /*    File Name = scat01.sas   11/15/96   */
        
        data zenin;
          infile 'all.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc print data=zenin(obs=10);        : (以後は表示部を省略する)
        run;                                  :
        proc means data=zenin;                : 各変量の平均値を求める
        run;                                  :
        proc chart data=zenin;                : 各変量の横棒グラフを描く
           hbar seibetsu shintyou taijyuu kyoui kozukai jitaku daigaku;
        run;
        
      • 出力結果 : scat01.out

    2. 身長と体重の関係 : どのように表現すれば良いのだろうか? : 散布図
      • プログラム : scat02.sas

         /* Lesson 6-2 */
         /*    File Name = scat02.sas   11/15/96   */
        
        data zenin;
          infile 'all.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc means data=zenin;
        run;
        proc plot data=zenin;
           plot shintyou*taijyuu;
        run;
        
      • 出力結果 : scat02.out
        • 縦軸と横軸の該当部分が交差したところに付置
        • データが1つなら「Aマーク」、2つなら「Bマーク」、...
        • データ全体がどこに分布しているかが判る
        • 各変量の平均値との比較

    3. グループごとの2変量の関係 : 性別ごとの散布図
      男性、女性ごとの散布図を見てみよう。
      プログラム的に 2 通りの実現方法がある(他にもあるかも)。
      • プログラム : scat03.sas

         /* Lesson 6-3 */
         /*    File Name = scat03.sas   11/15/96   */
        
        data zenin;
          infile 'all.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc means data=zenin;
        run;
        proc sort data=zenin;
          by seibetsu;
        proc means data=zenin;
          var shintyou taijyuu;
          by seibetsu;
        run;
        
        proc plot data=zenin;
          plot shintyou*taijyuu;
          by seibetsu;
        run;
        
        proc plot data=zenin;
          plot shintyou*taijyuu;
          where seibetsu='F';
        run;
        proc plot data=zenin;
          plot shintyou*taijyuu;
          where seibetsu='M';
        run;
        
      • 出力結果 : scat03.out
        • より詳細に分布が判る
        • 表示結果は変わらない : 当然
        • 各グループごとの平均値との比較

    4. 同じ図に2グループを表示 : グループごとのマーク、軸ラベル
      同じ図の中に付置することによって、グループの違いが理解しやすい
      • プログラム : scat04.sas

         /* Lesson 6-4 */
         /*    File Name = scat04.sas   11/15/96   */
        
        data zenin;
          infile 'all.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc means data=zenin;
        run;
        proc plot data=zenin;
          plot shintyou*taijyuu=seibetsu/ vaxis=140 to 180 by 10
                                          haxis=30 to 90 by 10;
        run;
        
      • 出力結果 : scat04.out
        • 女性が左下に、男性が右上に集まっていることが判る
        • 軸の範囲を明示的に指定する方法も便利である

  2. 2変量ごとの関係 : 相関係数 : 全体と性別ごと

  3. 2変量の関係 : 連続変量 : 回帰(単回帰) : 予測等に使う
    身長を体重で説明したい。
    [身長]=a[体重]+b : 回帰係数

  4. 2変量の関係 : 特性変量の場合 : 集計表、クロス集計 : 頻度を見る
    1. 単純集計
      • プログラム : freq01.sas

         /* Lesson 6-7 */
         /*    File Name = freq01.sas   11/15/96   */
        
        data zenin;
          infile 'all.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc freq data=zenin;
          tables seibetsu;
        run;
        proc freq data=zenin;
          tables seibetsu*jitaku;
        run;
        
      • 出力結果 : freq01.out

    2. 連続量をカテゴリー化 : 2重、3重クロス集計
      • プログラム : freq02.sas

         /* Lesson 6-8 */
         /*    File Name = freq02.sas   11/15/96   */
        
        data zenin;
          infile 'all.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc format;                           : 新しい階級(変数名:class)を作る
          value class low-<150='   -149'       :
                      150-<160='150-159'       :
                      160-<170='160-169'       :
                      170-high='170-   '       :
                      other   ='missing';      :
        run;                                   :
        proc freq data=zenin;                  :
          tables shintyou;                     : (一重クロス)集計
          format shintyou class.;              :
        run;                                   :
                                               :
        proc freq data=zenin;                  :
          tables shintyou*seibetsu;            : 二重クロス集計
          format shintyou class.;              :
        run;                                   :
                                               :
        proc freq data=zenin;                  :
          tables shintyou*seibetsu*jitaku;     : 三重クロス集計
          format shintyou class.;              :
        run;                                   :
        
      • 出力結果 : freq02.out

        • 何重でも細かく見ることはできるが細分化され過ぎに注意

    3. 各グループごとでの集計、基礎統計量
      • プログラム : freq03.sas

         /* Lesson 6-9 */
         /*    File Name = freq03.sas   11/15/96   */
        
        data zenin;
          infile 'all.dat';
          input seibetsu $ shintyou taijyuu kyoui kozukai jitaku $ daigaku $;
        
        proc format;
          value class low-<150='   -149'
                      150-<160='150-159'
                      160-<170='160-169'
                      170-high='170-   '
                      other   ='missing';
        run;
        proc tabulate data=zenin;
          class shintyou seibetsu;
          var taijyuu;
          tables taijyuu*(n mean std),shintyou*seibetsu;
          format shintyou class.;
        run;
        
      • 出力結果 : freq03.out

        • 身長と性別の区分による体重の傾向をつかむ

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