2016-11-27 19 views
1

私は(日付列の書式がmm-dd-YYYYである)このようなサンプルデータフレームを持っている:時系列解析の適用性は?

date   count  grp 
01-09-2009  54  1 
01-09-2009  100  2 
01-09-2009  546  3 
01-10-2009  67  4 
01-11-2009  80  5 
01-11-2009  45  6 

私はts()を使用して、時系列にこのデータフレームに変換したいのですが、問題は次のとおりです。現在のデータフレームは、複数の値を持っています同じ日付にこの場合、時系列を適用できますか?

  • データフレームを時系列に変換し、カウント値を日単位で予測できるモデル(ARIMA)を作成できますか?

  • ORはgrpに基づいてカウント値を予測する必要がありますが、その場合はデータフレームのgrpとcount列だけを選択する必要があります。その場合、私は日付の列をスキップしなければならず、カウント値の毎日の予測は不可能ですか?

  • 1日あたりのカウント値を集計するとします。集計関数を試しましたが、日付の値を指定する必要がありますが、非常に大きなデータセットがありますか? rで利用可能な他のオプション?

もっと良いアプローチがあれば、誰かがお勧めできますか?私の前提は、時系列推論は二変量データに対してのみ機能するということですか?この仮定は正しいのでしょうか?

+0

最終的には何を達成したいですか?たぶん1日あたりのデータを集計しますか? [this](http://stats.stackexchange.com/questions/37519/building-a-time-series-that-includes-multiple-observations-for-each-date)の記事を読んでいますか? – lukeA

+0

@lukeA集約は唯一可能な解決策ですか?はい、私はカウント値の1日あたりの予測をします。 – andy

+0

これが唯一の解決策である場合は、私は気にしません。統計的な観点から(プログラミングの観点からではなく)尋ねるならば、http://stats.stackexchange.comがより良い場所かもしれません。集計(1日の集計など)は、少なくとも私にとっては簡単な解決策のように聞こえる... – lukeA

答えて

1

あなたの問題の二つの側面があるように思え:

私はts()を使用して、時系列にこのデータフレームに変換したいのですが、 問題は - 現在のデータフレームが同じ ための複数の値を持ちます日付。この場合、時系列を適用できますか?

あなたがしようとする可能性がxtsパッケージを利用することに満足している場合:

dta2$date <- as.Date(dta2$date, "%d-%m-%Y") 
dtaXTS <- xts::as.xts(dta2[,2:3], dta2$date) 

をもたらすであろうその次のクラスの

>> head(dtaXTS) 
      count grp 
2009-09-01 54 1 
2009-09-01 100 2 
2009-09-01 546 3 
2009-10-01 67 4 
2009-11-01 80 5 
2009-11-01 45 6 

>> class(dtaXTS) 
[1] "xts" "zoo" 

あなたの時間を使うことができます

:あなたの2番目の質問については

PerformanceAnalytics::chart.TimeSeries(dtaXTS) 

multivariate time series

サイドポイント

:eriesはPerformanceAnalyticsパッケージを使用して単変量時系列としてオブジェクトと、選択した変数や多変量時系列として参照し、例えば、

誰かがplzが私に従うべきより良いアプローチを提案することができます、私の 仮定は時系列ですforcastは二変量データに対してのみ有効ですか?この仮定も正しくは ですか?

IMHO、これはかなり広いです。xtsオブジェクトを作成し、利用したいモデルとその理由を詳しく説明することをお勧めします。時系列解析の性質に関する概念的な質問の場合は、CrossValidatedにフォローアップ質問を投稿することをお勧めします。提供された例を用いてdta2 <- read.delim(pipe("pbpaste"), sep = ""):介して供給


データ。

1

毎日の予測が必要なため、毎日集計する必要があります。最後の注記のDFを使用して、read.zooと引数aggregate=sumを使用して、データの最初の2列を動物園シリーズzに読み込みます。多くの予測機能では不要ですが、オプションで"ts"シリーズ(tser <- as.ts(z))に変換できます。特に、auto.arimaのソースコードをチェックすると、それ以降の処理の前に入力にx <- as.ts(x)が実行されることがわかります。最後にauto.arimaforecastまたはその他の予測機能を実行します。

library(forecast) 
library(zoo) 

z <- read.zoo(DF[1:2], format = "%m-%d-%Y", aggregate = sum) 

auto.arima(z) 

forecast(z) 

注:DFが再現性ここに与えられます。

Lines <- "date   count  grp 
01-09-2009  54  1 
01-09-2009  100  2 
01-09-2009  546  3 
01-10-2009  67  4 
01-11-2009  80  5 
01-11-2009  45  6" 
DF <- read.table(text = Lines, header = TRUE) 

更新:質問を再読み込みした後に改訂。

関連する問題