統計の初歩(度数の計算)


階級に分ける

 まずは,このデータ(xlsxファイル,17kb)をダウンロードして,Excelで開いてみよう.左側に並ぶデータは,環境社会基盤工学専攻のあるクラスの身長と体重を調べたものである.このデータを一望して,クラスの身長と体重に関する特長を掴むことはできるだろうか.実際は,データが並んでいるだけで,特長を掴むどころか目がくらくらして疲れるだけである.

 特長を掴むために行う統計処理は,調査の対象となるデータの集合体である母集団を,クラス分けするところからはじまる.早速,身長のデータを次に示す階級に分けて,そこに含まれるデータの個数を意味する度数と,それに関連するパラメーターをVBAで求めてみよう.

@クラス分けはExcelシートに示したように,下記の六つの階級とする.
Aここで作成するマクロは下記3つの統計データを一つのプログラムにまとめることが目的である.
 Excelの関数は使わずに,50人分の身長データを基に,ボタンをワンクリックした瞬間に計算できるようにすること.
Bプログラム注意点
  1. おさらいで行ったように,標準モジュールを作成してプログラミングを行うこと.ここからは,ファイル(xlsm形式)をこまめに保存することを忘れずに行うこと.
  2. 作成したVBAプログラムは,[身長の統計]ボタンに登録すること.計算した度数,階級値,相対度数はエクセルのシート中のJ5〜J10,K5〜K10,L5〜L10のセルにそれぞれ出力すること.
  3. 計算の結果は,次に示した図の通りとなる.結果が異なる場合は,条件判断のステートメントを確認すること.

    イラスト3


Cクラス分けのアルゴリズムに関するヒント
  1. (上級者向け)クラス分けプログラムのフローチャートは左下の図の通りである.おおまかな流れは,データを一つ一つ条件に照らして,該当する場合だけカウントアップするシンプルなもので良い.なお,条件判断のステートメントでは,if then else 文以外を用いてコーディングしても良い.カウントアップのアルゴリズムは,右下の図(図は1を5回足した例)で示す,情報処理の分野でお馴染みの合計値を求めるものを参考にすると便利である.

    イラスト2 イラスト2

    参考資料:「条件分岐について」

  2. (初心者向け)シンプルなプログラムは,For〜Next文(50回計算を回す)中にif〜elseif〜endifを記述して,条件判断させ,条件に適合した時に用意(この場合6個用意)した変数に合計値(右図中のsum=sum+1の考え方)を溜め,For文が終了した段階で6個の合計値を出力する方式である.
  3. 条件判断は次のように記述するとスピーディーである.例えば,If セルの値 >= 155 And セルの値 < 160 Then ・・・

スペシャル問題

  1. 身長のプログラム Sub ○○○() 〜 End subの下側にそれ自体をコピーして,体重を計算するプログラムを作成してみよう.作成したVBAプログラムは,[体重の統計]ボタンに登録し,出力値はシート中のT5〜V9のセルに出力すること.当然の事ながらSub以降のプログラム名は異なるものとする.(難易度:★)

トップページに戻る