外挿:限界を越えるとき
この演習では、外挿の危険性を考えます。ここには、山のハイキングコースの標高プロファイルが示されています。黒で示した一部の区間は直線的に見え、モデルの構築に使われました。しかし、赤の最小二乗直線は、青で示した新しい外側のデータにまで拡張すると、元の「定義域」を外れるため当てはまりが悪くなることが分かります。
このモデルで標高を予測したいとき、ある許容誤差内で正確さを保つには、独立変数 x の最小値と最大値はどこまで許せるでしょうか?
ここでは、あらかじめ読み込まれている x_data、y_data、y_model、そして plot_data_model_tolerance() を使って解いてください。

この演習はコースの一部です
Pythonで学ぶ線形モデリング入門
演習の手順
np.abs()を使って、残差をy_data - y_modelの差として計算します。residualsがtolerance = 100メートル未満となるxの.min()と.max()を求めます。np.min()とnp.max()を使って、x_goodの最小値と最大値(範囲)を出力します。- 事前定義の
plot_data_model_tolerance()を使い、residuals < toleranceがTrueとなるx_goodの範囲で、データ・モデル・範囲を比較して可視化します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Compute the residuals, "data - model", and determine where [residuals < tolerance]
residuals = np.abs(____ - ____)
tolerance = 100
x_good = x_data[____ < ____]
# Find the min and max of the "good" values, and plot y_data, y_model, and the tolerance range
print('Minimum good x value = {}'.format(np.____(____)))
print('Maximum good x value = {}'.format(np.____(____)))
fig = plot_data_model_tolerance(x_data, y_data, y_model, tolerance)