2017-08-09 4 views
0

Je suis en train de créer un graphique avec une prévision ARIMA comme cet exemple:R - en essayant de créer un graphique de prévision ARIMA

enter image description here

Mais je ne suis pas faire les bons choix. Je ne peux même pas l'obtenir pour afficher un graphique. Voici mon code:

library(forecast) 
library(ggplot2) 
library(reshape2) 

#TEST DATA AND TEST CODE# 
Pricing <- c(500,1000,2000,1500,3500,4000,2000,2500,500,3000,7500,5500,4000,5000,6000,500,3000,1500) 
Time <- c("2010-01-01", "2010-07-02", "2010-08-03", "2011-02-04", "2011-11-05", "2011-12-06", "2012-06-07", "2012-08-30", "2013-04-16", "2013-03-18", "2014-02-22", "2014-01-27", "2015-12-15", "2015-09-28", "2016-05-04", "2017-11-07", "2017-09-22", "2017-04-04") 
PriceFrame <- data.frame(Time,Pricing) 
write.table(PriceFrame,file="C:/....path..../PriceFrame.txt",quote=F) 

#THE FUNCTION# 
Frame <- read.table("C:/....path..../PriceFrame.txt", stringsAsFactors=FALSE, header=TRUE) 
Frame$Time <- as.Date(Frame$Time, format= "%Y-%m-%d") 
Frame <- ts(Frame$Pricing, start = 1, end=NROW(Frame), frequency=1) 
TheForecast <- Arima(Frame, order = c(0,0,0)) 
write.table(TheForecast,file="C:/....path..../TheForecast.txt",quote=F) 

#CODE TO PROVIDE AN EXAMPLE GRAPH AND EXAMPLE FORECAST DATA# 
plot(TheForecast, xlab="Time",ylab="Price",main="Price vs Time",type='l') 
print(TheForecast) 

après avoir créé le graphique, je voudrais enregistrer les données de prévision d'un fichier txt ainsi (comme mon code montre), mais le code n'aime pas que je suis essayer de convertir un ARIMA en un data.frame.

Toute aide est appréciée, merci.

+0

vous avez 'frequency = 1', quel intervalle de temps regardez-vous? –

+1

Mensuel de préférence, mais je faisais juste un défaut de sorte que n'importe quel temps peut être montré à des fins de test. Cela affecterait-il l'ARIMA? – Impact

+0

Veuillez lire ce https://stats.stackexchange.com/questions/245791/what-is-the-frequency-in-my-series-and-does-it-matter-for-my-forecasting-models. Je suggérerais, avant d'écrire dans le fichier, travailler sur la prévision et alors vous pouvez ajouter 'write.table' argument –

Répondre

0

En supposant que vous avez fréquence mensuelle: essayez,

Frame <- ts(Frame$Pricing, start = c(2010, 01), end=c(2017, 04), frequency=12) 

forecast et tracer le graphique.

+0

Le problème avec cela est que les données que j'utilise sont juste des données de test. J'ai besoin que les prévisions correspondent à des listes de prix variables dans le temps, de sorte que les valeurs de début et de fin puissent changer. – Impact

+1

@Impact comme mentionné dans la réponse, vous devez utiliser 'forecast' pour prévoir le décalage temporel que vous envisagez dans le futur. ie 'youreforecast <- plot (prévision (TheForecast, h = 10))' –

+0

Donc j'ai changé la ligne avec le complot à ceci: MyForecast <- plot (prévision (TheForecast, h = 10)), et j'ai eu un ce graphique. Agg, comment ajouter des images à un commentaire? XD – Impact