2017-04-14 7 views
1

CausalImpactパッケージを使用して、販売パターンに対する嵐の影響をモデル化しようとしています。動物園オブジェクトを作成してモデルに渡すと、エラーが発生します。私はドキュメントを読んできましたが、ドキュメントの例とは私が何をやっているのか分かりません。ZooオブジェクトでCausalImpactパッケージを使用したエラー

私は、次のdata.frameで働いている:

> head(my.data) 
     date sales units 
1 2014-10-17 71319.85 21436.64 
2 2014-10-18 88598.26 26755.79 
3 2014-10-19 95768.29 29823.86 
4 2014-10-20 62303.04 19417.71 
5 2014-10-21 56477.57 17562.21 
6 2014-10-22 54890.39 16946.43 

それから私は動物園のオブジェクトに変換しています:

my.data<- zoo(my.data[ ,c('sales','units')], my.data[,'date']) 

> str(my.data) 
‘zoo’ series from 2014-10-17 to 2017-04-13 
    Data: num [1:907, 1:2] 71320 88598 95768 62303 56478 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr [1:2] "sales" "units" 
    Index: Date[1:907], format: "2014-10-17" "2014-10-18" "2014-10-19" ... 

は、その後、私は前と後の期間及び実行を設定モデル:

pre.period <- as.Date(c('2015-10-17','2017-03-09')) 
post.period <- as.Date(c('2017-03-10','2017-04-13')) 

library(CausalImpact) 
impact<- CausalImpact(data = my.data, pre.period = pre.period, post.period = post.period, alpha = .01) 

しかし、私はこのエラーを受けています:

> impact<- CausalImpact(data = my.data, pre.period = pre.period, post.period = post.period, alpha = .05) 
Error in bsts(formula, data = data, state.specification = ss, expected.model.size = kStaticRegressionExpectedModelSize, : 
    Caught exception with the following error message: 
BregVsSampler did not start with a legal configuration. 
Selector vector: 11 
beta: 0 0 

私は単変量時系列データでこのパッケージを使用しましたが、これがなぜ機能していないのかわかりません。

ありがとうございました!

答えて

1

最新のパッケージアップデート(CausalImpactを含む)を適用した後、同じ問題が発生しました。以前はすべてうまくいきました。

私は正確な原因や解決策がありませんが、私はあなたを助けるかもしれない何かを発見しました。

私のデータでは、動物園のオブジェクトの日付をテストシーケンスに置き換えようとしました。したがって、あなたの場合は、次のようなものになります:

time.pts <- seq.Date(as.Date("2014-10-17"), by = 1, length.out = 907) 
my.data<- zoo(my.data[ ,c('sales','units')], time.pts) 

この後、 "BregVsSampler"例外は発生しませんでした。だから私は問題が日付に関連している必要があり、私の元の日付シリーズを動物園のオブジェクトに戻す必要があると考えました。私は、ギャップを削除するには、事前/事後期間を調整

pre.period <- as.Date(c('2015-10-17','2017-03-09')) 
post.period <- as.Date(c('2017-03-20','2017-04-13')) 

:私は、私は以下の3/9と3/20の間のギャップを見すなわちpre.periodとpost.period、間のギャップを持っていたことに気づきました問題が再び解消されました。

上記のコードにこのような隙間がないようですが、矛盾のある日付シリーズを見たり、別の日付範囲を試したりすることができます。明らかにどこかで修正が必要なバグがありますが、おそらく上記の情報は、その間に問題を回避するのに役立ちます。

+0

ありがとうございました!私は、多くの不満の後、私のデータが数日間不足していたことを知りました。このモデルは欠落した期間をサポートしていません。これは、特定の長さのシーケンスを作成したときに問題が解決された理由を説明しています。 –

+0

私のために同じ問題。カップルの日付がありません。あなたの答えなしでこれを見つけたことはありませんでした! – Owen

関連する問題