mercredi 26 septembre 2012

simple way to compute rmse root mean square error in R

calculer rmse ("racine" de l'erreur moyenne quadratique) avec R.

rmse=function(obs,pred)
{
    diff=obs-pred
    diff=diff[!is.na(diff)]  #to remove NA values
    return (sqrt(mean((diff)^2)))
}

save the commands above in a file named rmse.r
To call this function:
       considering that obs is the array of observed values, pred is the array of predicted values
do

source("rmse.r")
rmsErr= rmse(obs,pred)

8 commentaires:

  1. Ce commentaire a été supprimé par l'auteur.

    RépondreSupprimer
  2. Je viens de débuter un stage dans le domaine de la modélisation ...et je n'ai pas encore toutes les bases en programmation.Je me permets de poster mon message votre blog en espérant que vous pourriez m'aider.

    Je dois comparer 2 fichiers en calculant les biais, RMSE et corrélation:
    Je commence par le Biais qui me semble plus simple et que je pourrais certainement adapter par la suite pour les autres indicateurs:
    Biais:
    B = 1/n.Σi (Mi -Oi) Avec Mi la valeur donnée par le model a la date i
    Et Oi la valeur donné par le fichier observation à la même date i.

    Mes 2 fichiers:
    -Un fichier.txt (Observation.txt) dans lequel se trouve les données observations:
    avec la date, l'heure et la concentration d'un polluant à cet heure sur une période comme ce qui suit:

    2012081801 47
    2012081802 45
    2012081804 43
    2012081805 40
    -Un fichier .txt (Model.txt) dans lequel se trouve les données fournies par un model:

    2012081801 67.254
    2012081802 62.861
    2012081803 62.427
    2012081804 63.149
    2012081805 63.076

    je ne sais pas trop comment m'y prendre, En vous remerciant par avance.
    Tasneem

    RépondreSupprimer
  3. J'ai oublié de préciser que j'ai quelques notions de base en fortran mais pas avec R...

    Tasneem

    RépondreSupprimer
  4. Bonjour,
    pour le biais tel que formulé B = 1/n.Σi (Mi -Oi), voici un bout de code juste ce qui est entre [code] et [/code]
    [code]
    obs=as.matrix(read.table('Observation.txt', header=F)) # pour charger les fichiers, s'il y d'entete de fichier mettre header=T
    model=as.matrix(read.table('Model.txt', header=F))
    B =sum(model[,2]-obs[,2])/n #supposant que la deuxiéme colonne de votre fichier correspond aux concentrations
    [/code]

    RépondreSupprimer
    Réponses
    1. De rien,
      Faites un retour, s'il vous plait, aprés avoir testé le code.

      Supprimer
  5. bonjour j'aimerais savoir comment calculer le biais d'une estimation?? jai obtenu une estimation paramètre de memoire longue je veux calculer le biais de cette estimation. j'ai la valeur reelle . merci

    RépondreSupprimer
  6. Vous pouvez calculer les valeurs estimées de données avec le nouveau paramètre et ensuite calculer la rmse entre les vraies valeurs et les nouvelles

    RépondreSupprimer