2022/10/26-28 「量子コンピューティングEXPO」にてARウェディングドレス試着のデモを行いました!

14-21. 2022年度共通テスト数学Ⅰ・数学Aのあの相関係数を求めてみた

やること

2022年共通テスト数学Ⅰ・数学Aのとある問題が話題になっています。簡単に言うと「相関係数が約0.63の散布図を選べ」というものです。

予備

選択肢のグラフは4つあり、問題全文を確認するとSとTの平均値や標準偏差が与えられているため2つまでは容易に絞れるようです。しかし、選択肢②と③のどちらを選ぶかは迷った人が多かったようです。

ネット上では「勘しかないのか?」「点の座標を調べて計算したらいいんじゃね?」「正解はガクトが選んだほうです」といった意見が見られました。今回はPythonとImageJを駆使してこれらの選択肢の相関係数を求めてみましょう。

実行環境

WinPython3.6をおすすめしています。

WinPython - Browse /WinPython_3.6/3.6.7.0 at SourceForge.net
Portable Scientific Python 2/3 32/64bit Distribution for Windows

そしておなじみのImageJ。バグが多いです。

ImageJ

準備

問題の画像がこちらです。

まずは座標の部分をトリミングします。このとき上下反転させておきます。最後にImageJで点の座標を解析する際、画像左上を原点として右側にx、下側にyを取りますので、このように上下反転させておけばそれぞれSとTに対応します。

さらにグラフ中の点(丸)を一つトリミングします。10×10pxになりました。

Pythonで点群のクリーニング

画像とマークをグレースケール画像として読み込み、白黒を反転させます。白が255で黒が0です。

import cv2
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal


#ファイル名
img_file = '14-21_img1.jpg'
mark_file = '14-21_mark.jpg'
save_file = '14-21_save1.png'


#表示関数
def show(img):
    plt.imshow(img)
    plt.gray()
    plt.show()
    plt.close()

#画像とマークを読み込んで白黒反転
img = cv2.imread(img_file, 0)
img = 255 - img.astype(int)
show(img)
mark = cv2.imread(mark_file, 0)
mark = 255 - mark.astype(int)
show(mark)

次に、画像上をマークで二次元畳み込み演算します。マークがぴったり重なる部分は大きい値になります。最大値で規格化して画像として確認してみます。

#画像上をマークで畳み込みして0-1に規格化
over = signal.convolve2d(img, mark, mode='same', boundary='wrap')
print(np.max(over))
over = over / np.max(over)
print(np.max(over))
show(over)
1230307
1.0

適当なしきい値で二値化して元の画像に重ね、正しく検出できているか目を凝らして確認します。

#適当なしきい値で二値化して画像化
over = (over > 0.74) * 255
show(over)

#元画像に重ねて確認
new = np.zeros((img.shape[0], img.shape[1], 3), int)
new[:, :, 0] = img // 2
new[:, :, 1] = img // 2
new[:, :, 2] = img // 2
new[over==255] = [255, 0, 0]
show(new)

よければ二値化画像を保存します。

#よければ二値化画像を保存
cv2.imwrite(save_file, over)

ImageJで点群の座標を取得

ImageJで読み込んだら、

  • Process > Binary > Ultimate Points
  • Image > Adjust > Threshold

で各点を1ピクセルに縮小します。

最後に

  • Analyze > Analyze Particles

で各点の座標を取得し、Excelで相関係数を求めます。

以上より、選択肢②は相関係数0.44、選択肢③は相関係数0.63でした。ただしこれは正確な値ではないことを次の項で説明します。

おまけ

問題のグラフとImageJで解析した座標では軸の範囲が異なりますが、軸のスライドは相関係数に影響がありません。片方の軸を伸縮させると影響がありますが、今回は元の問題の軸がほぼ正方形なので大きな影響はありません。いや、よく見るとちょっと長方形だったのでわずかに影響あります。この理論については以下のサイトも参照ください。

【応用】データの変換で相関係数はどう変わるか | なかけんの数学ノート
ここでは、【応用】データの変換で分散はどう変わるかと同様に、データの変換によって、相関係数がどう変化するかを見ていきます。また、共分散の変化についても、あわせて見ていきます。共分散と相関係数の復習まずは、【基本】相関係数

ちなみに東進ハイスクールの解答速報では以下の通り、実質的に勘だと言っています。予備校の先生が「経験を積めば分かる!」と言うのは自由だとして、公立高校の先生はそう教えて良いものでしょうか?

タイトルとURLをコピーしました