web-dev-qa-db-ja.com

R-トレーニングセットとテストセットからトレーニングされたモデルを指定してテストMSEを計算する

2つの単純なデータセットがあるとします。

 head(training_set)
      x         y
    1 1  2.167512
    2 2  4.684017
    3 3  3.702477
    4 4  9.417312
    5 5  9.424831
    6 6 13.090983

 head(test_set)
      x        y
    1 1 2.068663
    2 2 4.162103
    3 3 5.080583
    4 4 8.366680
    5 5 8.344651

トレーニングデータに線形回帰直線を当てはめ、そのライン(または係数)を使用して、そのラインが当てはまると、「テストMSE」またはテストデータの残差の平均二乗誤差を計算します。

model = lm(y~x,data=training_set)
train_MSE = mean(model$residuals^2)
test_MSE = ?
6

この場合、それを呼び出す方がより正確です MSPE(平均二乗予測誤差)

mean((test_set$y - predict.lm(model, test_set)) ^ 2)

すべてのモデルが予測を目的としているため、これはより有用な指標です。 MSPEが最小限のモデルが必要です。

実際には、予備のテストデータセットがある場合は、上記のようにMSPEを直接計算できます。ただし、予備のデータがない場合がほとんどです。統計では、 leave-one-out cross-validation はトレーニングデータセットからのMSPEの推定です。

Mallowsの統計[〜#〜] aic [〜#〜] のような、予測エラーを評価するための他のいくつかの統計もあります。

9
李哲源