13.2 カウント数の時系列

本書で議論した手法は全て、データが連続値の標本空間を有していることを想定しています。しかし、データがカウント数の形式で入ってくることもよくあります。例えば、一日ごとの来店客数を予測したいとします。客数は\(0, 1, 2, \dots\)人はあり得ますが、3.45693人はあり得ません。

カウント数が十分大きい限り、実務上はまず問題になりません。最小客数が100以上の場合、連続値の標本空間\([100,\infty)\)と離散値の標本空間\(\{100,101,102,\dots\}\)の違いは、予測に識別できるほど影響しません。しかし、小さなカウント数\((0, 1, 2, \dots)\)のデータがある場合は、非負の整数の標本空間により適した予測手法を使う必要があります。

そうした手法は本書の範囲を超えています。ただ、この文脈で使える単純な手法が一つあるので、ここで触れておきたいと思います。それは英国の発明家John Crostonにちなんで命名された「Crostonの手法」で、 Croston (1972) が最初に記述しました。実際には、この手法はデータのカウント数という性質を適切に扱っているわけではないのですが、よく使われるので、知っておく価値があります。

Crostonの手法では、ゼロが観測された時期と非ゼロが観測された時期を知ることで、元の時系列から2つの新しい時系列を構築します。\(q_i\)\(i\)番目の非ゼロ量とし、\(a_i\)\(q_{i-1}\)\(q_i\)の間の時間とします。Crostonの手法は、2つの新しい系列\(a\)\(q\)をそれぞれ単純指数平滑化で予測します。この手法はある需要の時系列に適用するのが普通なので、\(q\)は「需要」、\(a\)は「到着間隔」と呼ぶことが多いです。

\(\hat{q}_{i+1|i}\)\(\hat{a}_{i+1|i}\)を、\(i\)番目の需要までのデータに基づく1期先の\((i+1)\)番目の需要と到着間隔それぞれの予測、とするとCrostonの手法は以下のようになります。 \[\begin{align} \hat{q}_{i+1|i} & = (1-\alpha_q)\hat{q}_{i|i-1} + \alpha_q q_i \tag{13.1}\\ \hat{a}_{i+1|i} & = (1-\alpha_a)\hat{a}_{i|i-1} + \alpha_a a_i \tag{13.2} \end{align}\] 平滑化パラメータ\(\alpha_a\)\(\alpha_q\)は、0と1の間の値を取ります。\(j\)を最後に正の観測値が観測された時点とすると、\(T+h\)時点の需要である\(h\)期先予測は、以下の比率で与えられます。 \[\begin{equation}\label{c2ratio} \hat{y}_{T+h|T} = \hat{q}_{j+1|j}/\hat{a}_{j+1|j} \end{equation}\] この手法には対応する統計モデルがないので、この手法の区間予測を計算できる代数的成果はありません。 (Shenstone & Hyndman, 2005)

CROSTON()関数はCrostonの手法を使って予測を生成します。2つの平滑化パラメータ\(\alpha_a\)\(\alpha_q\)はデータから推計されます。この点は、Crostonがこの手法の使われ方として思い描いていたものとは違っています。Crostonなら、単に\(\alpha_a=\alpha_q=0.1\)を使い、\(a_0\)\(q_0\)はそれぞれの系列の最初の観測値と等しく設定していたことでしょう。

事例: 医薬品販売

13.3は、オーストラリアでの免疫血清と免疫グロブリンの月次販売数です。データには、全く販売が記録されていない多くの月と、ほんの小さな販売数の月があって、小さなカウント数があるデータです。

j06 <- PBS %>%
  filter(ATC2 == "J06") %>%
  summarise(Scripts = sum(Scripts))

j06 %>% autoplot(Scripts) +
  labs(y="販売数",
       title = "免疫血清と免疫グロブリンの販売")
オーストラリアの医薬品補助スキームに基づく免疫血清と免疫グロブリンの販売数

図 13.3: オーストラリアの医薬品補助スキームに基づく免疫血清と免疫グロブリンの販売数

13.1と表13.2は、最初の10個の非ゼロ需要値と対応する到着間隔です。

表 13.1: 最初の10個の非ゼロ需要値
販売数
1991 Jul 1
1991 Aug 1
1991 Sep 1
1991 Oct 0
1991 Nov 0
1991 Dec 1
1992 Jan 3
1992 Feb 1
1992 Mar 1
1992 Apr 1
1992 May 1
1992 Jun 1
表 13.2: 需要と到着間隔の系列で示した最初の10個の非ゼロ需要値
\(i\) 1 2 3 4 5 6 7 8 9 10
\(q_i\) 1 1 1 1 3 1 1 1 1 1
\(a_i\) 1 1 3 1 1 1 1 1 1

この事例では、平滑化パラメータは、\(\alpha_a = 0.08\)\(\alpha_q = 0.71\)\(\hat{q}_{1|0}=4.17\)\(\hat{a}_{1|0}=3.52\)と推計されました。2つの系列の最後の予測は、\(\hat{q}_{T+1|T} = 2.419\)\(\hat{a}_{T+1|T} = 2.484\)です。ですから、予測は全て等しく \(\hat{y}_{T+h|T} = 2.419/2.484 = 0.974\)となります。

実際には、fableがこうした計算をあなたに代わってしてくれます。

j06 %>%
  model(CROSTON(Scripts)) %>%
  forecast(h = 6)
#> # A fable: 6 x 4 [1M]
#> # Key:     .model [1]
#>   .model              Month Scripts .mean
#>   <chr>               <mth>  <dist> <dbl>
#> 1 CROSTON(Scripts) 2008 Jul  0.9735 0.974
#> 2 CROSTON(Scripts) 2008 Aug  0.9735 0.974
#> 3 CROSTON(Scripts) 2008 Sep  0.9735 0.974
#> 4 CROSTON(Scripts) 2008 Oct  0.9735 0.974
#> 5 CROSTON(Scripts) 2008 Nov  0.9735 0.974
#> 6 CROSTON(Scripts) 2008 Dec  0.9735 0.974

根底にある確率モデルが存在しないので、Scripts列は分布全体を提供せずに、平均を繰り返しています。

カウント数データの性質をより直接的に扱い、区間予測も得られる予測モデルは、 Christou & Fokianos (2015) が記述しています。

参考文献

Christou, V., & Fokianos, K. (2015). On count time series prediction. Journal of Statistical Computation and Simulation, 85(2), 357–373. [DOI]
Croston, J. D. (1972). Forecasting and stock control for intermittent demands. Operational Research Quarterly, 23(3), 289–303. [DOI]
Shenstone, L., & Hyndman, R. J. (2005). Stochastic models underlying Croston’s method for intermittent demand forecasting. Journal of Forecasting, 24(6), 389–402. [DOI]