見出し画像

文科省の情報Ⅰ教員研修用教材第4章を検討する(4)量的データの分析

学習22は「量的データの分析」

画像1

ぱっと見,高校1年生には難しそう。このあといろいろ用語が出てくるが,用語だけで生徒は参ってしまいそうだ。たとえば

上記の気象データ(図表 1-A)は時点が対象となり,その系列に沿って得られる時系列データといい,中古住宅の取引価格等データ(図表 1-B)は時点が固定されて同質の対象(中古住宅)が複数観測されるクロスセクションデータという。どちらも,対象を大量に観察することで対象の傾向を分析することができる。時系列データは 時間軸に沿った傾向(トレンド)の分析も行うことができる。

 時系列・同質の対象・クロスセクションデータ・対象の傾向・トレンド 
すんなり頭に入ってくるだろうか。高校生ですよ。2年生ならまだよさそう。これらは序の口。このあと,

質的データとして 1 名義尺度,2 順序尺度,量的データとして 3 間隔尺度,4 比例尺度などがある。

それぞれ説明はあるものの,実際にやっていることを考えるとこれらの用語をあえて使う必要はなさそうだ。

演習問題を見てみよう。

画像2

■具体的な手順
1)気象庁のサイトから,2017 年および 2018 年の 7 月 1 日から 8 月 31 日の熊谷の日最高気温のデータをダウンロードする。
2)表計算ソフトウェアでダウンロードしたデータを開く。表計算ソフトウェアを用いて,最小・第 1 四分位数・ 中央値・第 3 四分位数・最大値・平均値・分散・標準偏差を求める。これらを求める関数は,図表 3 である。
これらを求める関数を,図表 3 に示す。
3)求めたデータをもとに分析する。2 年間の統計量を比較すると,最高気温だけでなく,第 1 四分位数・中央値・第 3 四分位数・平均値のいずれも 2018 年の方が高くなっている。このことから,2017 年と 2018 年 の熊谷の気温を比較すると,全般的に気温が高い傾向にあったと考えられる。

画像3

気象庁の「過去の気象データ・ダウンロード」のページから該当のデータを取得するのは難しくない。生徒実習でできる。データはCSVで提供されるのでそのまま表計算ソフトで開ける。

画像4

これをそのまま表計算ソフトで処理していってもよいし,Rで統計量を求めてもよい。実際にはRのほうが簡単だ。筆者はRでやらせた。範囲選択など不要で,コマンド一発。箱ひげ図も簡単に描ける。「え?R?」と思われるかもしれないが,基本的なことだけできればいいので難しくはない。もちろん,Pythonでもよい。

(2)量的データ間の関係
次に,(x,y)の関係性を数学Iで学習する散布図・相関係数によって分析する。

これも,そのまま表計算ソフトでもいいが,Rでも簡単。プログラミング練習をかねてPythonでやるのもありだろう。

(3)単回帰分析を用いた値の推測
中古住宅の例では,住宅の価格の違いを住宅が持つ土地や床面積などの属性の違いで説明する予測式を導くことが分析の目的となる。

単回帰分析は,現行の教育課程では扱っていない。情報はもちろん,数学でも扱っていない。とはいえ,このテキストにも説明があるし,やるなら教科書にも説明があるだろう,難しい概念ではないから意味はわかると思う。しかし,実際に最小2乗法を使うとか,分析ということになってくるとそう簡単ではないかもしれない。

(4)量的データの統計的仮説検定

仮説検定は新しい学習指導要領で数学に入ってくる。これも教科書がまだだが,数学との連携でやっていくことになるだろう。ただし,数学Bなので,1年生ではもちろん未習。また学習指導要領解説を読む限り,この教員研修用教材に書かれているような正規検定,t検定,カイ2乗検定などには踏み込んでいない。情報の教科書に載るとしても簡単なものだけだろう。

画像5

■手順1 データ収集
政府統計の総合窓口(e-Stat)の,次の URL にある平成 29 年度体力・運動能力調査のテスト項目の年次推移のデー タをダウンロードする。 https://www.e-stat.go.jp/stat-search/files?page=1&layout=datalist&toukei=00402102&tstat=00000108887 5&cycle=0&tclass1=000001119456&second=1&second2=1

この長いURLをコピーしてアドレス欄にはれば,e-Stat  の体力運動能力調査のページにいける。Excelのデータがダウンロードできる。

画像6

ただし,すべての種目が入っているのではなく,「握力,上体起こし,長座体前屈」「反復横跳び,20mシャトルラン,持久走,急歩」・・と分類されているので,それぞれダウンロードして結合する必要がある。
もう一つ,

「科学の道具箱」の中から「データライブラリ-」のページから,「体力測定データ」を選択,その中の「02. 高 等学校体力測定データ」をダウンロードする。 https://rika-net.com/contents/cp0530/contents/04-03-01.html

というのがある。拡張子が .xls.xlw になっているから,古い Excelではそのままでは開けないかもしれない。.xlw を切って,.xls にすればよい。

画像7

ただし,この2つはデータのタイプが異なる。e-STATのものは時系列データ,科学の道具箱のものは136人の男女別個人データだ。

これを開いて適当にデータを整形する。問題はその次だ。

■手順3-1 散布図行列を用いて散布図や相関係数から関係を読み取る
表計算ソフトウェアの Excel では,2 つの項目間の関係を散布図で表したり,相関係数を求めたりすることができる。しかし,一度に複数の項目間の散布図を描くことはできない。複数の2項目間の散布図を行と列に対応させて並べて描画したものを散布図行列,同様に相関係数を行列で表したものを相関係数行列という。散布図行列を描画できる Excel のマクロを用意した。

Excelのマクロ? どこに?
Python を使えば,CSVファイルの読み込みとデータの整形の手間は若干あるものの,相関係数行列はコマンド1つだし,散布図行列も比較的簡単に描ける。
次のようなCSVファイルを作っておく。

50m走,6.6,7,6.9,6.9,6.8,・・・・・
立ち幅跳び,251,250,267,240,251,・・・・・
ハンドボール投げ,35,30,30,27,28,・・・・

これを読み込んで相関係数行列と散布図行列を作る。

import numpy as np
import matplotlib.pyplot as plt
f = open('sports.csv')
data = f.read().splitlines()
f.close()
data = [d.split(',') for d in data]
# 種目を切り出す
shumoku = [d[0] for d in data]
# データだけ切り出し,文字列を数値化
kiroku = [d[1:] for d in data]
for s in kiroku:
   for i in range(len(s)):
       s[i] = float(s[i])
# 相関係数行列
coef = np.corrcoef(kiroku)
print(np.round(coef, 2)) 
# 散布図行列
plt.figure(figsize=(10, 10))
for i in range(8):
   for j in range(8):
       if i < j:
           plt.subplot(8, 8, i*8+j+1)
           plt.scatter(kiroku[i], kiroku[j], s=5)

画像8

 教員研修用教材にあるものもそうだが,散布図行列はかなり図が小さくなってしまう。相関係数行列を見て,特徴のあるものだけを散布図にするのが現実的ではないだろうか。
 筆者は,Rを使ってこの実習を行った。(そのときはPythonをやっていなかった)Rなら範囲指定など不要で,相関係数は cor(x1,x2),散布図は plot(x1,x2)で簡単に出るので,手作業で相関係数行列を作ってもたいしたことはない。実習では,相関係数行列を作って,相関が最も強い2種目についてその散布図を描いてレポートを作る,ということをやった。

次は単回帰分析。

■手順3-2 単回帰分析による予測モデル構築
上記の 2 種類のデータそれぞれに,単回帰モデルを当てはめ,予測モデルを構築する。

やり方は書いてあるので,取得したデータを整形してやればよさそうだ。筆者は個人的にはExcelは持っていないので,追試はしなかった。(持っているのは互換ソフトとLibreOffice。これらでやってもよいが面倒なのでパス)
 次の演習3は,仮説検定。使うのはExcelのデータ分析のt検定だ。

以上,回帰分析,仮説検定は現行の学習指導要領では数学でも,情報でも扱っていない。新学習指導要領で入ってくる内容だ。したがって,教科書にどう載ってくるかによるが,とにかく1年生では無理。2年生でもどうかという内容だ。このあたりは,様子見という他はない。