
166
11 章 回帰
11.9
正確度
会社での賭けというシナリオでは、モデルの正確度(
accuracy
)、すなわち、偶然
に期待できるのと比較して予測が成功する回数という点に最も興味がありました。
NSFG
データでは、男の子のほうが女の子より多く、基本戦略は、常に「男の子」
と推量することになります。この戦略の正確度は、男の子の割合そのものです。
actual = endog['boy']
baseline = actual.mean()
actual
が
2
値なので、平均は男の子の割合を表していて、
0.507
です。
モデルの正確度の計算を次に示します。
predict = (results.predict() >= 0.5)
true_pos = predict * actual
true_neg = (1 - predict) * (1 - actual)
results.predict
は、確率の
NumPy
配列を返しますが、その値を
0
か
1
に丸めて
しまいます。
actual
を掛けることで、男の子と予測して正しかったら
1
、それ以外は
0
になります。したがって、
true_pos
は、真陽性(
true positive
)を表します。
同様に、
true_neg
は、女の子と予測して正しい場合を示します。信頼度は、正し
く推量した割合です。
acc = (sum(true_pos) + sum(true_neg)) / len(actual)
結果は、
0.512
で、基本線の
0.507
よりわずかに高い値です。しかし、この結果を