1. ホーム
  2. r

[解決済み] R - 訓練集合とテスト集合から学習済みモデルを作成し,テストMSEを計算する.

2022-02-09 14:16:29

質問

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 = ?

解決方法は?

この場合、より正確に言うと MSPE (平均二乗予測誤差) :

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

これは、すべてのモデルが予測を目的としているため、より有用な指標である。我々はMSPEが最小になるようなモデルを求めている。

実際には、もし予備のテストデータセットがあれば、上記のようにMSPEを直接計算することができます。しかし、予備のデータがないことが非常に多い。統計学では リーブワンアウトクロスバリデーション は、学習データセットからMSPEを推定するものである。

また、予測誤差を評価するための統計量として、他にも以下のようなものがあります。 マローズの統計量 AIC .