web-dev-qa-db-fra.com

R - Calculer le test MSE à partir d'un modèle formé à partir d'un ensemble de formation et d'un ensemble de test

Étant donné deux ensembles de données simples:

 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

Je veux ajuster une ligne de régression linéaire sur les données d'entraînement et utiliser cette ligne (ou les coefficients) pour calculer le "test MSE" ou l'erreur quadratique moyenne des résidus sur les données de test une fois que cette ligne est adaptée.

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

Dans ce cas, il est plus précis de l'appeler MSPE (erreur quadratique moyenne de prédiction) :

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

Il s'agit d'une mesure plus utile car tous les modèles visent la prédiction. Nous voulons un modèle avec un minimum de MSPE.

En pratique, si nous avons un ensemble de données de test de rechange, nous pouvons directement calculer MSPE comme ci-dessus. Cependant, très souvent, nous n'avons pas de données de rechange. En statistiques, la validation croisée avec ou sans sortie est une estimation de la MSPE à partir de l'ensemble de données de formation.

Il existe également plusieurs autres statistiques pour évaluer l'erreur de prédiction, comme statistique de Mallows et AIC .

9
李哲源