J'utilise le package fpp
pour prévoir plusieurs séries chronologiques de différents clients en même temps. Je suis déjà capable d'extraire les prévisions ponctuelles de différentes méthodes de prévisions faciles (snaive
, meanf
, etc.) dans un document csv. Cependant, j'essaie toujours de comprendre comment extraire les mesures de la commande accuracy()
de chaque série temporelle dans un fichier csv en même temps.Exporter l'exactitude de plusieurs prévisions de timeséries dans r dans csv-document
I construit un exemple:
# loading of the "fpp"-package into R
install.packages("fpp")
require("fpp")
# Example customers
customer1 <- c(0,3,1,3,0,5,1,4,8,9,1,0,1,2,6,0)
customer2 <- c(1,3,0,1,7,8,2,0,1,3,6,8,2,5,0,0)
customer3 <- c(1,6,9,9,3,1,5,0,5,2,0,3,2,6,4,2)
customer4 <- c(1,4,8,0,3,5,2,3,0,0,0,0,3,2,4,5)
customer5 <- c(0,0,0,0,4,9,0,1,3,0,0,2,0,0,1,3)
#constructing the timeseries
all <- ts(data.frame(customer1,customer2,customer3,customer4,customer5),
f=12, start=2015)
train <- window(all, start=2015, end=2016-0.01)
test <- window(all, start=2016)
CustomerQuantity <- ncol(train)
# Example of extracting easy forecast method into csv-document
horizon <- 4
fc_snaive <- matrix(NA, nrow=horizon, ncol=CustomerQuantity)
for(i in 1:CustomerQuantity){
fc_snaive [,i] <- snaive (train[,i], h=horizon)$mean
}
write.csv2(fc_snaive, file ="fc_snaive.csv")
La partie suivante est exactement la partie, où je avais besoin d'aide - je voudrais extraire la précision de mesures dans un fichier csv en même temps. Dans mon jeu de données réel, j'ai 4000 clients, et pas seulement 5! J'ai essayé d'utiliser des boucles et lapply()
, mais malheureusement mon code n'a pas fonctionné.
accuracy(fc_snaive[,1], test[,1])
accuracy(fc_snaive[,2], test[,2])
accuracy(fc_snaive[,3], test[,3])
accuracy(fc_snaive[,4], test[,4])
accuracy(fc_snaive[,5], test[,5])
Merci beaucoup Juan :) !!! Votre code fonctionne parfaitement! Il n'y a qu'une petite faute dans la ligne où le nouveau fichier csv.file est écrit: utilisez "x = new.matrix" au lieu de "x = new_matrix" – Jo91
Correction de la faute de frappe, merci de l'avoir signalé! –