ごく稀に必要になることがあるのですが、どこにあったっけ・・・と探すのがめんどくさいので、アップロードしてしまうことにしました。
全国学力・学習状況調査の都道府県別平均正答率csvファイルです。ただし、文字コードがutf-8なので、Windowsの人はごめんなさい。変数名は半角英数を利用しているので大丈夫ですが、都道府県名が文字化けします。MacかLinuxに乗り換えるか、文字コードを変換するかしてくださいませ。
上から順に、小学校国語、小学校算数・理科、中学校国語、中学校数学・理科です。元ネタは、国立教育政策研究所のHPにある、「平成27年度 全国学力・学習状況調査調査結果のポイント[pdf]」です。96ページあたりからのデータをcsvにしています。
ついでに、Rで各年度の変動係数を計算します。
27年度の全国学力調査では、成績下位の都道府県の成績が向上し、「学力の底上げが図られている」という解釈がなされています(たとえば、この報告書[pdf]の2頁を参照)。
ただ、その時提示されるデータは、なぜか上位3県・下位3県だけで、データの選択が恣意的な印象を受けます。文科省に都合の良いデータを見せているだけなのではないか?という疑問があったので、変動係数を計算し、全体として都道府県間の学力差がどのように変動しているのか検討してみましょう。
# 変動係数を計算する関数の作成。一応、分散の関数も定義してみる SD <- function(x) sqrt((sum((x - mean(x)) ^ 2)) / length(x)) CV <- function(x) SD(x) / mean(x) # データの読み込み g6j <- read.csv("g6japa.csv") g6m <- read.csv("g6math.csv") g9j <- read.csv("g9japa.csv") g9m <- read.csv("g9math.csv") # 変動係数を計算。 apply(g6j[-1], 2, CV) apply(g6m[-1], 2, CV) apply(g9j[-1], 2, CV) apply(g9m[-1], 2, CV)
出力を含めた場合のものは下記です。
# 出力結果込の場合 apply(g6j[-1], 2, CV) # A27 A26 A25 A24max A24min A22max A22min #0.03035015 0.02716501 0.04388600 0.02170122 0.02039575 0.02078143 0.01946399 # A21 A20 A18 B27 B26 B25 B24max #0.02920276 0.04202581 0.01943854 0.04237551 0.05169878 0.05083449 0.04265994 # B24min B22max B22min B21 B20 B19 0.04096120 0.02592489 0.02485219 0.05048079 0.06265173 0.04798661 apply(g6m[-1], 2, CV) # A27 A26 A25 A24max A24min A22max A22min #0.02633024 0.02441978 0.02397960 0.03187358 0.02985067 0.03177038 0.03063641 # A21 A20 A18 B27 B26 B25 B24max #0.02679996 0.03437819 0.02629692 0.04861922 0.03860205 0.04603811 0.03948109 # B24min B22max B22min B21 B20 B19 S27 #0.03779742 0.04943471 0.04974736 0.04405179 0.04659913 0.03726005 0.03924703 # S24max S24min #0.04268645 0.04076932 apply(g9j[-1], 2, CV) # A27 A26 A25 A24max A24min A22max A22min #0.02193855 0.02011710 0.02360754 0.02397136 0.02343497 0.02633097 0.02508061 # A21 A20 A18 B27 B26 B25 B24max #0.02778759 0.02570158 0.02208402 0.02706877 0.04112233 0.03202416 0.03444355 # B24min B22max B22min B21 B20 B19 #0.03373192 0.03884508 0.03692167 0.03614300 0.04435290 0.04093524 apply(g9m[-1], 2, CV) # A27 A26 A25 A24max A24min A22max A22min #0.03716194 0.03899558 0.04037950 0.04421551 0.04198069 0.05060532 0.04729690 # A21 A20 A18 B27 B26 B25 B24max #0.04873707 0.05761874 0.04969135 0.06187230 0.04867016 0.07490082 0.06069064 # B24min B22max B22min B21 B20 B19 S27 #0.05864231 0.08102809 0.07613631 0.05808973 0.06546134 0.05696434 0.05348336 # S24max S24min #0.05276048 0.05142272
結果を見ると、確かに変動係数が小さくなってきている教科もあります(たとえば中学校数学A)。
ですが、それ以外の教科は、大きくなったり小さくなったりで、一概に減少傾向にあるとは言えない気がします。
結論としては、文科省の「全体の底上げが図られている」という主張には、やや無理があるんじゃないか?ということです。データが公開されていると、こういう再分析が可能になるところがいいですね。