統計の初歩(度数の計算)
階級に分ける
まずは,この
データ(xlsxファイル,17kb)をダウンロードして,Excelで開いてみよう.左側に並ぶデータは,環境社会基盤工学専攻のあるクラスの身長と体重を調べたものである.このデータを一望して,クラスの身長と体重に関する特長を掴むことはできるだろうか.実際は,データが並んでいるだけで,特長を掴むどころか目がくらくらして疲れるだけである.
特長を掴むために行う統計処理は,調査の対象となるデータの集合体である母集団を,クラス分けするところからはじまる.早速,身長のデータを次に示す階級に分けて,そこに含まれるデータの個数を意味する度数と,それに関連するパラメーターをVBAで求めてみよう.
@クラス分けはExcelシートに示したように,下記の六つの階級とする.
- 階級1‥‥155cm以上160cm未満
- 階級2‥‥160cm以上165cm未満
- 階級3‥‥165cm以上170cm未満
- 階級4‥‥170cm以上175cm未満
- 階級5‥‥175cm以上180cm未満
- 階級6‥‥180cm以上185cm未満
Aここで作成するマクロは下記3つの統計データを一つのプログラムにまとめることが目的である.
Excelの関数は使わずに,50人分の身長データを基に,ボタンをワンクリックした瞬間に計算できるようにすること.
- 階級値‥‥各階級の中央値のこと, (上記○○cm以上の○○ + 上記□□cm未満の□□)/2 で計算
- 度 数‥‥階級に含まれる数,含まれる人数の意
- 相対度数(%)‥‥総度数に対する各階級の度数の割合のこと,度数/全員の数*100 で計算
※この値は,総度数で正規化してあるため,データ個数の異なるグループを比較するときに便利である.
Bプログラム注意点
- おさらいで行ったように,標準モジュールを作成してプログラミングを行うこと.ここからは,ファイル(xlsm形式)をこまめに保存することを忘れずに行うこと.
- 作成したVBAプログラムは,[身長の統計]ボタンに登録すること.計算した度数,階級値,相対度数はエクセルのシート中のJ5〜J10,K5〜K10,L5〜L10のセルにそれぞれ出力すること.
- 計算の結果は,次に示した図の通りとなる.結果が異なる場合は,条件判断のステートメントを確認すること.
Cクラス分けのアルゴリズムに関するヒント
- (上級者向け)クラス分けプログラムのフローチャートは左下の図の通りである.おおまかな流れは,データを一つ一つ条件に照らして,該当する場合だけカウントアップするシンプルなもので良い.なお,条件判断のステートメントでは,if then else 文以外を用いてコーディングしても良い.カウントアップのアルゴリズムは,右下の図(図は1を5回足した例)で示す,情報処理の分野でお馴染みの合計値を求めるものを参考にすると便利である.
参考資料:「条件分岐について」
- (初心者向け)シンプルなプログラムは,For〜Next文(50回計算を回す)中にif〜elseif〜endifを記述して,条件判断させ,条件に適合した時に用意(この場合6個用意)した変数に合計値(右図中のsum=sum+1の考え方)を溜め,For文が終了した段階で6個の合計値を出力する方式である.
- 条件判断は次のように記述するとスピーディーである.例えば,If セルの値 >= 155 And セルの値 < 160 Then ・・・
スペシャル問題
- 身長のプログラム Sub ○○○() 〜 End subの下側にそれ自体をコピーして,体重を計算するプログラムを作成してみよう.作成したVBAプログラムは,[体重の統計]ボタンに登録し,出力値はシート中のT5〜V9のセルに出力すること.当然の事ながらSub以降のプログラム名は異なるものとする.(難易度:★)
トップページに戻る