0

最後から始めましょう。R 出力は Tableau で読み取られてダッシュボードが作成されるため、R 出力を特定の方法で表示する必要があります。それを念頭に置いて、時系列の n グループを持つ R のデータ フレームから始めます。グループごとに auto.arima (またはパッケージ予測からの別の予測方法) を実行したいと考えています。私はそれを行うために by 関数を使用していますが、私はそのアプローチに執着していません。必要な出力は、(たとえば) 1 期間の予測を元のデータ フレームに追加し、日付 (変数 t) と変数 (変数クラス) を入力します。可能であれば、複数の変数 (つまり、class_1、... class_n、) に一般化するアプローチが必要です。

#generate fake data
t<-seq(as.Date("2012/1/1"), by = "month", length.out = 36)
class<-rep(c("A","B"),each=18)
set.seed(1234) 
metric<-as.numeric(arima.sim(model=list(order=c(2,1,1),ar=c(0.5,.3),ma=0.3),n=35))
df <- data.frame(t,class,metric)
df$type<-"ORIGINAL"

#sort of what I'd like to do
library(forecast)
ts<-ts(df$metric)
ts<-by(df$metric,df$class,auto.arima)

#extract forecast and relevant other pieces of data
#???

#what I'd like to look like
t<-as.Date(c("2013/7/1","2015/1/1"))
class<-rep(c("A","B"),each=1) 
metric<-c(1.111,2.222)
dfn <- data.frame(t,class,metric)
dfn$type<-"FORECAST"

dfinal<-rbind(df,dfn)

私が説明したようなデータ フレームで始まり、私が説明した出力のようなデータ フレームを出力する限り、ハウツーには執着しません。

4

1 に答える 1

0

あなたの説明は少しあいまいですが、次の行に沿った何かが機能するはずです:

library(data.table)
dt = data.table(df)

dt[, {result = auto.arima(metric);
      rbind(.SD,
            list(seq(t[.N], length.out = 2, by = '1 month')[2], result$sigma2, "FORECAST"))},
     by = class]

sigma^2そこに必要な変数が明確ではなかったので、私は勝手に に記入することにしました。

于 2013-06-03T21:12:11.607 に答える