0

私の新しい結果

私は毎日の販売データを持っています。Rob Hyndman Sir が多くの投稿で提案した Tbat 関数を使用しています。私の結果は成長傾向を示していません

次のコードを使用しています

mydata<-read.csv ("D:/data.csv",header=TRUE);
y <- msts(mydata$sales, seasonal.periods=c(7,365.25))
fit <- tbats(y)
fc <- forecast(fit)
plot(fc)
4

1 に答える 1

0

私はあなたのデータを使用できないので、a) (ある種の) 季節性を含むいくつかのデータをシミュレートし、b) 次の期間を予測するアプローチを使用する例を次に示します。

A) データをシミュレートする

データは、サイン関数、コサイン関数、およびランダム コンポーネントの 3 つのコンポーネントでシミュレートされます。

# 1. simulate some data:
set.seed(123) # set seed for reproducability
n <- 1000

# simulate the random components
sin.comp <- sin((1:n)/10)*10
cos.comp <- cos((1:n)/5)*5
rand.comp <- rnorm(n)

df <- data.frame(time = seq(from = as.Date("2000-01-01"), by = "day", 
                            length.out = n),
                 value = sin.comp + cos.comp + rand.comp)

# plot the data
plot(x = df$time, y = df$value, main = "Seasonal Series", type = "l")
lines(x = df$time, y = sin.comp, col = "red")
lines(x = df$time, y = cos.comp, col = "blue")
lines(x = df$time, y = rand.comp, col = "green")
legend("bottomleft", 
       c("Series", "Sin", "Cos", "Rand"), 
       lty = c(1, 1), 
       col = c("black", "red", "blue", "green"), cex = 0.7)

季節のシリーズ

B) シリーズを予測する

y <- msts(df$value, seasonal.periods = c(7, 36)) # cut down to 36
fit <- tbats(y) #takes some time to calculate..
fc <- forecast(fit)

plot(fc)

天気

その他の注意事項

このアプローチがうまくいかない場合、それはおそらく何らかの形で予測に適していないデータであることを意味します...

str(mydata)データを確認するには、 (私の場合はstr(df))、summary(mydata)、および を使用して型を調べることができますhead/tail(mydata)

最後の注意として、あなたdputは明らかに少し長すぎます...dput(head(mydata, 100))最初の 100 エントリを提供する投稿するか、csv をホスティング事業者にアップロードしてリンクを投稿します。

それはあなたを正しい方向に向けていますか?

于 2015-12-18T10:09:02.977 に答える