日々の記録簿

日々のできごとの記録

日記

全国学力・学習状況調査の都道府県別平均正答率csvファイル

投稿日:

ごく稀に必要になることがあるのですが、どこにあったっけ・・・と探すのがめんどくさいので、アップロードしてしまうことにしました。

全国学力・学習状況調査の都道府県別平均正答率csvファイルです。ただし、文字コードがutf-8なので、Windowsの人はごめんなさい。変数名は半角英数を利用しているので大丈夫ですが、都道府県名が文字化けします。MacかLinuxに乗り換えるか、文字コードを変換するかしてくださいませ。

上から順に、小学校国語、小学校算数・理科、中学校国語、中学校数学・理科です。元ネタは、国立教育政策研究所のHPにある、「平成27年度 全国学力・学習状況調査調査結果のポイント[pdf]」です。96ページあたりからのデータをcsvにしています。

g6japa.csv

g6math.csv

g9japa.csv

g9math.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)。

ですが、それ以外の教科は、大きくなったり小さくなったりで、一概に減少傾向にあるとは言えない気がします。

結論としては、文科省の「全体の底上げが図られている」という主張には、やや無理があるんじゃないか?ということです。データが公開されていると、こういう再分析が可能になるところがいいですね。

スポンサーリンク

スポンサーリンク

-日記

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Nexus 6にCyanogenmod 12.1をインストールした!

Nexus 6に、Android 5.1.1ベースのCyanogenmod 12.1をインストールしました。 と言っても、Cyanogenmodアップデートを使っていれば、自動的に12.1になってしま …

Thinkpad X1 Carbon 2016 (4th gen)に、Arch Linuxをインストールする方法

またまた物欲に負けて、Thinkpad X1 Carbon 2016 (4th gen)を購入してしまいました。 さっそく、Arch Linuxをインストールしようとしたのですが、起動してこない・・・ …

Nexus 6を購入し、Cyanogenmod 12を導入した!

Google Playの在庫不足で、まったく入手できなかったのですが、ようやくNexus 6が手に入りました。 購入したのは32GB版です。3月11日にGoogle Playで注文し、「4〜5週間かか …

Nvim-Rの導入方法

vimからRを使う、vim-r-pluginが、Nvim-Rに変わりました。 Neovimを使う前提ですが、tmuxを使わなくてもいいなど、いろいろ設定が楽になったと思います。 インストール まず、n …

VLC3.0.4-3でTSファイルが再生できない【解決】

タイトルの通りですが、いつの間にかVLC(3.0.4-3)でTSファイルが再生できなくなっていました。OSはArch Linuxです。依存関係でダウングレードもできない模様。 ググってみると、【Mpe …