考査の得点予測の実装について

注意事項

・内容の正確性について
 本ノートの内容が正確であることについて、筆者は最善の努力を尽くしますが、必ずしも正確であることを保証することはできません。
 また、本ノートの内容が不正確であったために利用者が何らかの不利益を被った場合、筆者は責任を負いかねますので、各自の責任でご利用ください。
・本ノートの著作権について
 本ノートについて著作権者の許可として私の許可が必要な利用を行う場合、以下の条件を全て満たす限り、私の許可があったものとみなします。(ここで言う利用には、編集および再頒布を含みます。なお、引用その他の著作権者の許可を必要としない利用については、以下の条件に拘らず当然に可能です。)
1. (コピーレフト)
 二次著作物について、本ノートと同等の条件を満たす利用の場合、著作権者の許可があったとみなすこと。
2. (無償提供)
 二次著作物を他者に提供する場合は、無償で行うこと。
3. (不適切な編集の禁止)
 著しく不適切な編集等を行わないこと。当該編集には、明らかに誤った内容への編集や利用者に不利益を与えることを目的とした編集を含みます。
4. (盗作の禁止)
 二次著作物の提供に際して、原著作者が自身であるかのような表現を行わないこと。
5. (法令等の順守)
 原著作物が規制の対象となる各種法令や契約等について、二次著作物の提供に際しても当該法令・規則等を順守すること。これには、原著作物中の適法な引用について、二次著作物についても同様に適法な引用を行うことを含みます。

はじめに

補習所の考査では、
・平均60点を取らなければならない
・追試は1万5000円という高額(監査法人1年目の日給くらい)
という2点から、将来の点数を予測することが求められます。

一方で、これは困難な課題です。
主な理由は、
・回ごとに内容が異なるため、得点の変化が読みづらい
・絶対評価であるため、相対得点(偏差値など)の予測だけでは足りない
・作問がブレやすく、難易度に差がある
などです。そこで、私が実装した将来の得点予測がどのような手法および仮定に基づいているのかについて文書化しておきます。

補足:
絶対評価というのは予想ですが、修了考査が絶対評価であること、平均点のブレが大きいことから、ほぼ間違いないでしょう。なお、「修了考査、実は相対評価説」もありますが、あえて嘘をつく必要がないことと合格率のブレから、(なんらかの得点調整はあるとしても)絶対評価なのだろうと考えています。私は(USCPAのようにIRTを導入するのでない限り)相対評価にするべきだと思います。

予測の流れ

私が実装した予測は、以下のような流れになります。

<母集団の統計量の推定>
・実施済みの回について、全国平均点および全国標準偏差を計算する
・実施済みの回について、難易度でクラスタリングする
・難易度ごとに全国平均点の平均点を計算する
・将来の難易度のケースを設定して、将来の予想平均点を計算する

<個人の得点の推定>
・実施済みの回について、個人の正規化スコアを計算する
・個人の正規化スコアを線形回帰して将来の正規化スコアを予測する
・予測正規化スコアと予想平均点から、ケースごとに将来の得点を予測する

なお、最初は
・回を追うごとに平均点が下がる
という仮説を置いていたのですが、あてはまりが悪そうなのでやめました。

<母集団の統計量の推定>

・実施済みの回について、全国平均点および全国標準偏差を計算する
全国平均点は公表されているのでそれをそのまま使います。
全国標準偏差は、公表された得点の度数分布を利用し、(階級値 - 平均)に 度数で重みづけをして計算します。

・実施済みの回について、難易度でクラスタリングする
これは難しくて、「感覚」にならざるをえない所もあるのですが、さしあたりk-means法(もし現在のクラスターより近くに中心(平均値)があるクラスターがあれば、そちらにクラスターを振りなおす方法)にしています。

例えば、63・59・57・66は、2クラスタであれば高難易度クラスタ(57・59、中心58)と低難易度クラスタ(63・66、中心64.5)に分かれます。
必ず1パターンしかないわけではなく、この例でも3クラスタであればいくつかのパターンがあります。

・難易度ごとに全国平均点の平均点を計算する
これはクラスタリングの際に求めたクラスターの中心をそのまま流用できます。

・将来の難易度のケースを設定して、将来の予想平均点を計算する
さしあたり、以下のケースが必要かなと考えています。ここは判断の部分です。
 ワーストケース:将来の難易度がすべて最高難易度のケース
 ベストケース:将来の難易度がすべて最低難易度のケース
各ケースにおいて、難易度ごとの平均点が将来の予想平均点になります。

これに加えて、将来の難易度がすべて同じ難易度のケースを各難易度で考え、その得点を加重平均した期待得点も考えます。

なお、標準偏差は実測上大きく変化していないように見えるので、算出した数値で固定して考えます。

<個人の得点の推定>

・実施済みの回について、個人の正規化スコアを計算する
正規化スコア =(個人の得点 - 全国平均点)/ 全国偏差値です。ご存じの通り、平均0、標準偏差1に正規化しています。得点予測とは別に、平均50、標準偏差10にして偏差値としても表示しています。
ちなみに、素点のままで計算しないのは、素点には難易度の影響が出ているためです。

・個人の正規化スコアを線形回帰して将来の正規化スコアを予測する
個人の正規化スコア、すなわち集団の中での相対的な得点について、回を追うごとに変化すると仮定します。危機感のある人はより勉強するようになり、余裕のある人は少し手を抜くようになる、というのが典型的なパターンです。
そのため、回iでの正規化スコアXiについて、Xi = α × i + β で近似できるとして、最小二乗法でαとβを推定、将来の正規化スコアを予測します。
他の回帰式を考えた方がいいとは思いますが、さしあたり線形回帰で。

・予測正規化スコアと予想平均点から、ケースごとに将来の得点を予測する
ここまでで、将来の回について予測正規化スコアと予想平均点を得られました。標準偏差は固定して考えているので、これで将来の回について正規化スコアを素点、すなわち将来の得点に戻すことができます。
これで、ケースを選択すればそのケースでの将来の得点を予測できるようになりました。

最後に

このノートでの予測は、正直かなり粗いと思います。例えば、地域ごとに採点の厳しさが変わると予想されますが、これは難易度以上に予測不可能なので無視しています。線形回帰が適切とも限りません。運の要素が大きい気もします。そのため、直ちに追試意思決定有用性があるとまでは言えないのですが、役立てていただけると幸いです。
また、予測精度を上げられる手法もご提言いただけると嬉しいです。
補習所の運営の方が見ていたら、匿名化した得点データをくれたり……しないですよね……