統計データには色々な種類があります。 例えば、ある高校で健康診断を行ったとします。 すると、学年、性別、身長、体重などのデータが集まります。 また、学力テストを行った場合は、英語の得点、数学の得点などのデータが得られます。
ここでは、統計データを量的データと質的データに分類します。 量的データ ( quantitative data )とは、身長や体重など、数量で表されるデータです。 以下は、量的データの例としての、身長データです。
生徒 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
身長(cm) | 155.7 | 179.4 | 171.9 | 161.0 | 162.8 | 168.2 | 163.0 | 153.2 | 153.6 | 173.4 |
質的データ ( qualitative data )とは、学年や性別など、所属や性質を表しているデータです。 例えば、学年は1年生、2年生、または3年生です。 また、性別は、男子または女子です。 以下は、質的データの例としての、学年データです。
生徒 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
学年 | 3年生 | 1年生 | 3年生 | 3年生 | 2年生 | 2年生 | 2年生 | 1年生 | 3年生 | 3年生 |
質的データは、データを解析する前に、番号に置き換えます。 学年なら、1年生を1, 2年生を2, 3年生を3とします。 性別なら、男子を1, 女子を2とします。
生徒 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
学年 | 3 | 1 | 3 | 3 | 2 | 2 | 2 | 1 | 3 | 3 |
量的データと質的データに関連して、連続型データと離散型データという分類もあります。 連続型データ ( continuous data )は、12.345...のように、小数点以下何桁も値をとるデータです。 これに対して、1, 2, 3, ...のように、飛び飛びの値をとるデータが 離散型データ ( discrete data )です。
一般的に、量的データは連続型データで、質的データは離散型データです。 ただし、この分類は絶対的ではなく、離散型データを連続型データと見なすこともあります。
例えば、得点データは、0点、1点、…、100点のように、飛び飛びの値をとるので離散型データですが、飛び飛びといっても101種類もの値をとるので、連続型データと見なしたほうがよいです。
先ほど、健康診断では身長と体重のデータが集まると言いました。 身長のみ、あるいは体重のみに注目した場合、これを 1次元のデータ ( 1-dimensional data )と呼びます。
身長と体重の関係に注目する場合は、 2次元データ ( 2-dimensional data )と言います。
生徒 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
身長(cm) | 155.7 | 179.4 | 171.9 | 161.0 | 162.8 | 168.2 | 163.0 | 153.2 | 153.6 | 173.4 |
体重(kg) | 51.0 | 71.1 | 67.2 | 56.1 | 55.1 | 61.0 | 57.6 | 50.5 | 50.1 | 68.0 |
3種類のデータの関係性に注目した、3次元データも考えられます。 一般的に、2次元以上のデータは 多次元データ ( multi-dimensional data )と呼ばれます。
今日の授業では、1次元データを取り上げます。
統計データを集めたら、すぐに最大値、最小値、平均値などを計算したくなるかもしれません。 しかし、データ全体の傾向を把握することが、もっと重要です。 度数分布表を作成すると、データを全体的に理解できます。
度数分布表 ( frequency table )とは、データの値をいくつかの 階級 ( class )(データの範囲)に区切り、それぞれの階級の 度数 ( frequency )(データが何件あるか)をまとめた表です。
ここで、学力テストにおける、英語の得点を見てみましょう。
このままでは、全体の傾向は分かりません。 そこで、以下のように度数分布表を作成すると、分かりやすくなります。
階級 | 度数 |
---|---|
0点以上10点未満 | 0 |
10点以上20点未満 | 0 |
20点以上30点未満 | 0 |
30点以上40点未満 | 1 |
40点以上50点未満 | 0 |
50点以上60点未満 | 13 |
60点以上70点未満 | 30 |
70点以上80点未満 | 39 |
80点以上90点未満 | 14 |
90点以上100点未満 | 2 |
100点以上110点未満 | 1 |
階級の個数を 階級数 ( number of bins )と呼び、階級のきざみを 階級幅 ( bin width )と呼びます。 この場合は、階級数が11階級、階級幅が10点きざみです。
連続型データの場合、階級の境界値が問題になります。
のどちらに決める必要があります。
離散型データの場合、度数分布表は度数の多い順に並べ替えたほうが、分かりやすくなります。
度数分布表が作成できたら、次にヒストグラムを作成します。 ヒストグラム ( histogram )とは、度数分布表の階級を横軸にし、度数を縦軸にしたグラフです。 ヒストグラムは、棒グラフに似ています。
以下は、英語の得点の度数分布表をヒストグラムにしたものです。
ヒストグラムは、棒が横にくっついた棒グラフに見えるかもしれません。 確かに、連続型データでは、棒を横にくっつけますが、離散型データでは、棒を横から離します。
度数分布表やヒストグラムを作成するとき、階級数と階級幅をどう決めるかが問題になります。 階級数を減らすと階級幅が広くなり、大雑把になってきます。 逆に、階級数を増やすと階級幅が狭くなり、細かい点が目立ってきます。
先ほどの英語の得点を、階級数3, 階級幅50にすると以下のようになります。
階級数51, 階級幅2にすると、以下のようになります。
どちらも、全体の傾向を見るのには不適切です。
それでは、Excelで度数分布表を作成しましょう。 次のExcelファイルをダウンロードしてください。
student | year | gender | height | weight |
---|---|---|---|---|
1 | 3 | 2 | 155.7 | 51.0 |
2 | 1 | 1 | 179.4 | 71.1 |
3 | 3 | 1 | 171.9 | 67.2 |
... | ... | ... | ... | ... |
10 | 3 | 1 | 173.4 | 68.0 |
まず、離散型データの例として、学年の度数分布表を作成します。 離散型データの場合は、ExcelのCOUNTIF関数を使うとできます。 この関数は、
COUNTIF(範囲, 検索条件)
という形式で、範囲の中から検索条件に一致するデータの個数を数えます。
Excelシートの余白(例えばセルG2からH5まで)に、「学年」、「人数」、そして学年(1, 2, 3)を入力してください。
が入力できれば、人数が数えられます。
ここで、$B$3:$B$12やG3などのセル参照は、キー入力しなくても、セルをクリックやドラッグしても入力できます。 その際、絶対参照($B$3:$B$12)に変換するには、commandキーを押しながらTキーを押します。 (Windowsの場合はF4キーを押します。)
なお、絶対参照($B$3:$B$12)と相対参照(G3, G4, G5)を組み合わせたのは、数式をコピー・アンド・ペーストしたいからです。 実際、セルH3に入力した数式をセルH4, H5にコピー・アンド・ペーストすればでき上がります。 Excelが得意な人は、フィル・ハンドル(クリックしたセルの右下の正方形)をドラッグすると、簡単にコピー・アンド・ペーストできます。
度数分布表としてはこれでもよいですが、仕上げとして、人数の多い順に並び替え、学年を詳しく書きます。
セルG2からH5までを、J2にコピー・アンド・ペーストします。 ただし、普通のペーストではなく、「形式を選択してペースト」をクリックし、「値」をクリックします。
値をペーストすることによって、数式の再計算を避けることができます。
セルJ2からK5までをドラッグし、リボンの「データ」をクリックし、「並べ替え/フィルター」項目の「並べ替え」の三角ボタン→「並べ替えのユーザー設定」とクリックします。 (Windowsの場合は、単に「並べ替え」をクリックします。) 「先頭行を列見出しとする」チェックボックスをオンにし、「列」を「人数」にして、「順序」を「最大から最小」にします。 すると、人数の多い順に並び変わります。
最後に、学年の列を詳しく書いて、完成です。
次に、連続型データの例として、身長の度数分布表を作成します。 連続型データの場合、FREQUENCY関数というものがありますが、この関数は扱いが難しいので、代わりにCOUNTIFS関数を使います。 (この関数は、Excel 2007から追加されました。) この関数は、COUNTIF関数の範囲と検索条件を複数にしたもので、
COUNTIFS(範囲1, 検索条件1, 範囲2, 検索条件2, ...)
という形式です。 それぞれの範囲と検索条件のすべてを満たすデータの個数を数えます。 範囲を同じにすれば、すべての検索条件を満たすデータの個数となります。
Excelシートの余白(例えばセルG8からH12まで)に、「身長」、「人数」、そして境界値(150, 160, 170, 180)を入力してください。
そして、セルH9に
=COUNTIFS($D$3:$D$12, ">="&G9, $D$3:$D$12, "<"&G10)
と入力し、このセルをH10とH11にコピー・アンド・ペーストします。 ただし、H12にはペーストしません。
ここで、検索条件「">="&G9」は、「G9以上」という意味です。 「">="」で「以上」を表し、「&」で文字列を連結します。 また、検索条件「"<"&G10」は、「G10未満」という意味です。 したがって、セルH9では、身長が150以上かつ160未満の人数が数えられます。
度数分布表としてはこれでもよいですが、仕上げとして、身長を詳しく書きます。 人数の多い順には並び替えません。
セルG8からH11までを、J8にコピー・アンド・ペーストします。 学年のときと同様に、値をペーストします。 最後に、身長を詳しく書いて完成です。
度数分布表が完成したので、これをヒストグラムにします。
まず、度数分布表全体(セルJ2からK5まで)をドラッグします。 次に、リボンの「グラフ」(Windowsの場合は「挿入」)をクリックし、「グラフの挿入」項目で「縦棒」→「集合縦棒」とクリックします。 すると、棒グラフが表示されます。
上側のグラフ・タイトルの「人数」をダブル・クリックして、「学年ごとの人数のヒストグラム」に変更します。 右側の凡例の「人数」をクリックし、deleteキーを押して、削除します。
リボンの「グラフ レイアウト」をクリックし、「ラベル」項目で「軸ラベル」→「横軸ラベル」→「軸ラベルを軸の下に配置」とクリックして、「学年」と入力します。 同様に、「軸ラベル」→「縦軸ラベル」→「軸ラベルを垂直に配置」とクリックして、「人数」と入力します。
これで、ヒストグラムが完成しました。
身長のヒストグラムも、同じように作成できます。 ただし、身長は連続型データなので、棒を横にくっつける必要があります。
棒を横にくっつけるには、グラフの棒を右クリックして「データ系列の書式設定」をクリックし、「オプション」タブをクリックして、「要素の間隔」を0%にします。
同じウィンドウで「線」タブ→「線の色」タブとクリックして、(Windowsの場合は「枠線の色」タブをクリックし、「線(単色)」ラジオ・ボタンをオンにして、)「色」を黒にします。
これで、棒が横にくっつきます。
ある高校で、3年1組から3年5組までの希望者100人に対して、英語と数学の試験を実施したとします。 クラス、英語の得点、数学の得点をまとめたExcelファイルをダウンロードしてください。
student | class | English | mathematics |
---|---|---|---|
1 | 3 | 73 | 68 |
2 | 4 | 68 | 74 |
3 | 1 | 82 | 72 |
... | ... | ... | ... |
100 | 3 | 86 | 86 |
(1)Excelで、クラスごとの人数の度数分布表を作成してください。
(2)Excelで、クラスごとの人数のヒストグラムを作成してください。
(3)Excelで、数学の得点の度数分布表を作成してください。 階級幅は10点きざみとし、0点以上10点未満のようにします。
(4)Excelで、数学の得点のヒストグラムを作成してください。 階級幅は10点きざみとし、0点以上10点未満のようにします。
今日の演習2の答案(Excelファイル)をメールで提出してください。 差出人は学内のメール・アドレス(学生番号@cis.twcu.ac.jp)とし、宛先はkonishi@cis.twcu.ac.jpとします。 メールの本文には、学生番号、氏名、科目名、授業日(10月7日)を明記してください。
連続型データの度数分布表を作成するときに、上記ではCOUNTIFS関数を使いました。 Excelの分析ツールを使っても、度数分布表が作成できます。
分析ツールを起動する前に、境界値を入力しておきます。 Excelシートの余白(例えばG15からG18まで)に、身長、160, 170, 180と入力します。 これで、
という階級になります。
次に、分析ツールを起動します。 リボンの「データ」をクリックし、「分析」項目の「データ分析」をクリックします。 分析ツールのウィンドウが開いたら、「ヒストグラム」をクリックします。
「入力範囲」には、身長データの範囲($D$2:$D$12)を入力します。 右側の三角ボタンをクリックし、範囲をドラッグし、再び三角ボタンをクリックするのが簡単です。 「データ区間」には、境界値の範囲($G$15:$G$18)を入力します。 「ラベル」のチェックボックスをオンにします。 「出力先」をクリックし、Excelシートの余白(例えば$J$15)を入力します。
後は、身長を詳しく書けば、度数分布表が完成します。
StatPlusを利用すると、連続型データの度数分布表とヒストグラムが一度に作成できます。 分析ツールの場合と同様に、Excelシートの余白に、階級の境界値を入力しておきます。
StatPlusを起動し、メニューバーで「Statistics」→「Basic Statistics and Tables」→「Histogram」とクリックします。 すると、「Histogram - Advanced Option」ウィンドウが開きますが、これは「Cancel」ボタンで閉じます。
「Histogram」ウィンドウが開いているので、「Continuous Variables」入力欄に、連続型データのラベルとデータの範囲が入力されるように、右側のボタンをクリックして、Excelのシートをドラッグします。 同様に、「Bin Range」入力欄に、境界値のラベルとデータの範囲が入力されるように、右側のボタンをクリックして、Excelのシートをドラッグします。 そして、「Lables in first row」チェックボックスをオンにして、「OK」ボタンをクリックします。
すると、Excelの新しいウィンドウが開き、度数分布表とヒストグラムが表示されます。 度数分布表の「Count」列は、度数を意味します。
Rコマンダーを利用すると、連続型データのヒストグラムが作成できます。 ただし、階級の境界値は「おまかせ」になり、階級数のみ指定できます。
最初に、「Rコマンダー」ウィンドウを開きます。 MacとWindowsで開き方が違うので、前回の説明を参照してください。
「Rコマンダー」ウィンドウを開いたら、Excelシートのデータの範囲(セルB2からE12まで)をドラッグし、右クリックして「コピー」をクリックします。 「Rコマンダー」ウィンドウをアクティブにし、「データ」→「データのインポート」→「テキストファイルまたはクリップボード, URLから」とクリックします。 すると、インポート用のウィンドウが開くので、「ファイル内に変数名あり」チェックボックスをオンにし、「クリップボード」ラジオ・ボタンをオンにして、「OK」ボタンをクリックします。
「Rコマンダー」ウィンドウの「データセットを表示」ボタンをクリックすると、読み込まれたデータが確認できます。
次に、「Rコマンダー」ウィンドウで、「グラフ」→「ヒストグラム」とクリックします。 すると、「ヒストグラム」ウィンドウが開くので、「変数」選択欄でデータの名前(height)をクリックし、「区間の数」入力欄を「auto」(自動)のままにするか階級数(3)を入力し、「頻度」ラジオ・ボタンをオンにして、「OK」ボタンをクリックします。
すると、新しいウィンドウが開き、ヒストグラムが表示されます。
離散型データ(質的データ)の度数分布表を作成するには、まず、次のようにして、質的データになるように変換します。
「Rコマンダー」ウィンドウで、「データ」→「アクティブデータセット内の変数の管理」→「数値変数を因子に変換」とクリックします。 すると、「数値変数を因子に変換」ウィンドウが開くので、質的データに設定したいデータの名前(year)をクリックし、「水準名を指定」ラジオ・ボタンをオンにし、「新しい変数名...」入力欄に新しいデータの名前(year2)を入力して、「OK」ボタンをクリックします。
すると、「水準名」ウィンドウが開くので、番号に置き換える前の名前(1に対してfirst(1年生)など)を入力し、「OK」ボタンをクリックします。
念のため、「データセットを表示」ボタンをクリックして、データを確認します。
後は、次のようにすると、「出力ウィンドウ」に度数分布表が表示されます。
まず、「Rコマンダー」ウィンドウで、「統計量」→「要約」→「頻度分布」とクリックします。 すると、「頻度分布」ウィンドウが開くので、データの名前(year2)をクリックして、「OK」ボタンをクリックします。
また、次のようにすると、ヒストグラムが表示されます。
まず、「Rコマンダー」ウィンドウで、「グラフ」→「棒グラフ」とクリックします。 すると、「棒グラフ」ウィンドウが開くので、データの名前(year2)をクリックして、「OK」ボタンをクリックします。