始める無料で始める

外挿:限界を越えるとき

この演習では、外挿の危険性を考えます。ここには、山のハイキングコースの標高プロファイルが示されています。黒で示した一部の区間は直線的に見え、モデルの構築に使われました。しかし、赤の最小二乗直線は、青で示した新しい外側のデータにまで拡張すると、元の「定義域」を外れるため当てはまりが悪くなることが分かります。

このモデルで標高を予測したいとき、ある許容誤差内で正確さを保つには、独立変数 x の最小値と最大値はどこまで許せるでしょうか?

ここでは、あらかじめ読み込まれている x_datay_datay_model、そして plot_data_model_tolerance() を使って解いてください。

この演習はコースの一部です

Pythonで学ぶ線形モデリング入門

コースを見る

演習の手順

  • np.abs() を使って、残差を y_data - y_model の差として計算します。
  • residualstolerance = 100 メートル未満となる x.min().max() を求めます。
  • np.min()np.max() を使って、x_good の最小値と最大値(範囲)を出力します。
  • 事前定義の plot_data_model_tolerance() を使い、residuals < toleranceTrue となる 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)
コードを編集して実行