日々の記録簿

日々のできごとの記録

日記

全国学力・学習状況調査の都道府県別平均正答率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になってしま …

systemdを245にアップデートすると、netctlが動かない?

焦ったけど、バグレポートが出ていた上に、末尾に修正方法が書いてあった。 sudo netctl reenable <your-profile-name> を実行すればok。ログを見ると、s …

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

Nexus 6にCyanogenmod 13.0をインストールしたメモです。軽く考えていたら、まさかの一日作業になってしまいました・・・。 以下、経緯を簡単に。 まず、通常のアップデートを行ったのです …

サイトをSSLへ移行してみた!

今、話題のLet’s Encryptを利用して、このサイトをSSLに移行してみました。 参考にしたのは、次のページです。 Arch Wiki Let’s Encrypt さくらのレンタルサ …

awstatsでアイコンが表示されない

私は、アクセス解析にawstatsを利用しています。 なかなか便利なのですが、一つだけ気になっていたのが、アイコン画像が表示されないことです。ほとんど実害はないので半年ほど放置していましたが、この度、 …