R-squared
以前、もう一つの当てはまりの指標である R-squared を、RSS と VAR の比として表しました。分子・分母の両方に 1/n を掛けると、数値的には、モデルの残差の分散を、私たちがモデル化しているデータの線形トレンドの分散で割った比として解釈できます。これは、(線形トレンドを取り除いた後の)残差の広がりや分散と対比して、モデルがデータの分散をどれだけ「説明しているか」を表す指標です。
ここでは、最適フィットのモデルに対するデータ x_data、y_data とモデル予測 y_model をあらかじめ読み込んであります。目的は、この線形モデルがデータのばらつきをどれだけ説明できているかを定量化するために、R-squared を計算することです。

この演習はコースの一部です
Pythonで学ぶ線形モデリング入門
演習の手順
residualsはy_modelからy_dataを引いて計算し、deviationsはy_dataのnp.mean()からy_dataを引いて計算します。residualsの分散とdeviationsの分散を、それぞれnp.mean()とnp.square()を用いて計算します。r_squaredを 1 からvar_residuals / var_deviationsを引いた値として計算し、結果を出力してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Compute the residuals and the deviations
residuals = ____ - y_data
deviations = np.____(____) - y_data
# Compute the variance of the residuals and deviations
var_residuals = np.____(np.____(____))
var_deviations = np.____(np.____(____))
# Compute r_squared as 1 - the ratio of RSS/Variance
r_squared = 1 - (____ / ____)
print('R-squared is {:0.2f}'.format(____))