2017-01-03 2 views
1

Je travaille actuellement sur un projet universitaire pour prédire le nombre de clients qui arrivent dans un magasin 24/7. J'utilise des données d'un magasin qui contient (entre autres) la date et l'heure à laquelle chaque client d'une certaine année a été servi.Validation croisée pour une régression linéaire multiple en R

J'ai divisé cet ensemble de données en un ensemble d'apprentissage et un ensemble de validation croisée. En outre, j'ai agrégé et fusionné l'ensemble de formation avec les données météorologiques de la même année pour savoir si, par exemple, les températures élevées conduisent à plus de clients.

Une version simplifiée des données fusionnée ressemble à quelque chose comme ceci:

| ServedCustomers | Month | Day | Hour | Temperature (C°) | Rain(binary) 
| --------------- | ----- | --- | ---- | ---------------- | ------------ 
| 1    | 12 | 31 | 12 | 9.2    | 0 
| 0    | 12 | 31 | 13 | 9.8    | 1 
| 2    | 12 | 31 | 14 | 10.1    | 0 

Pour chaque heure de l'année, j'ai le nombre de clients qui ont été servis, ainsi que les données météorologiques correspondant.

J'ai créé un modèle de régression linéaire multiple dans R pour prédire le nombre de clients avec presque toutes les autres variables comme prédicteur. En utilisant la commande summary(), le MSE, R^2 et d'autres statistiques semblent correctes jusqu'ici.

Maintenant, je veux vérifier si le même modèle fonctionne avec le jeu de validations croisées. Pour cela, j'ai fusionné avec les mêmes données météorologiques pour obtenir un ensemble de données qui a la même structure que le tableau ci-dessus, seulement avec un nombre différent de clients.

Cependant, c'est là que je suis actuellement coincé. L'utilisation de la fonction predict.lm() avec le jeu de modèles et de validations croisées semble fonctionner, mais ne fournit que les valeurs prédites et peu d'informations supplémentaires.

Existe-t-il un moyen de créer un résumé du fonctionnement du modèle pour l'autre ensemble de données? Semblable à la commande summary(), mais pour un ensemble de données sur lequel le modèle linéaire n'était pas basé à l'origine?

Répondre

0

Vous pouvez calculer l'erreur quadratique moyenne et la moyenne quadratique pour voir si votre modèle a bien fonctionné.

1) Prenez vos coefficients et multipliez-les par votre matrice de covariables dans vos données d'entraînement. yhat = (X * b)

2) Prenez vos ensembles d'entraînement et faites la différence entre ceux-ci et le yhat ci-dessus.

3) Carré l'erreur

4) Prenez la racine carrée de la réponse = Root Mean Squared Error

valeurs inférieures signifie un meilleur ajustement global