モデル
変化点のあるポアソン分布についてはいろんな研究がなされていますが、一番単純と思われる手法を試します。
解析対称はイギリスの炭鉱事故の発生件数のデータです。
3. Tutorial — PyMC 2.3.6 documentationから取得しました。
#R のコード dat <- c(4,5,4,0,1,4,3,4,0,6,3,3,4,0,2,6,3,3,5,4,5,3,1,4,4,1,5,5,3,4,2,5,2,2,3,4,2,1,3,2,2,1,1,1,1,3,0,0,1,0,1,1,0,0,3,1,0,3,2,2,0,1,1,1,0,1,0,1,0,0,0,2,1,0,0,0,1,1,0,2,3,3,1,1,2,1,1,1,1,2,4,2,0,0,1,4,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1) plot(dat,type="h",ylab="frequency")
40年ごろを境に事故の発生件数が減少していることが伺えるので、その変化を抽出できるようなモデルを考えます。
事故の発生件数はポアソン分布に従うと仮定し、ある時期を境にポアソン分布の平均が変化したと考えると良さそうです。
そこで i年目の事故の発生件数を とし、はパラメータ のポアソン分布に従うというモデルを立てました()。
ただし は のとき 、そうでなければ の値を取ります。
このモデルのもとで、尤度関数は下のようになります。
対数をとり整理すると、
となります。
ただしここで です。
に 、の最尤推定量をそれぞれ代入して、
を について最大化することで、変化点の推定値が求まります。
コーディング
which.max 関数を使い、総当りで を最大にする を求めることにします。
x <- dat n <- length(x) ST <- sum(x) l1_tau <-function(tau){ Stau <- sum(x[1:tau]) Stau*log(Stau/tau)+(ST-Stau)*log((ST-Stau)/(n-tau))} tau <-which.max(sapply(1:(n-1),l1_tau))
は41でした。
> tau [1]41
、の最尤推定値はそれぞれ、3.01、0.91でした。
> theta1 <-mean(x[1:tau])> theta2 <-mean(x[(tau+1):n])> theta1 [1]3.097561> theta2 [1]0.9142857
plot(x,type="h",lwd=2) curve(ifelse(x>tau,theta2,theta1),add=TRUE,col="royalblue",lwd=2)
尤度比検定
変化点がないと仮定した場合の対数尤度、
と の差を評価することで、尤度比検定を行うことができます。
は漸近的に自由度 3 - 1 = 2 のカイ二乗分布に従います。
3 - 1 = 2 は変化点のあるモデルのパラメータ数 - 変化点のないモデルのパラメータ数です。
l0 <-ST*log(ST/n)- ST - sum(log(factorial(x))) Stau <- sum(x[1:tau]) l1 <- Stau*log(Stau/tau)+(ST-Stau)*log((ST-Stau)/(n-tau))- ST - sum(lfactorial(x))
p 値は以下のように求まります。
> pchisq(-2*(l0-l1),2,lower.tail =FALSE)[1]1.418789e-15
有意水準を 5% と決めていたとすると、「パラメータを増やすことによって尤度が改善していない」という帰無仮説が棄却され、変化点があるとみなしたほうがいいことがわかります。
参考文献
- Henderson & Matthews (1993) は 2 節で本エントリと同じ手法を用いている。
- 尤度比検定については『データ解析のための統計モデリング入門』、『入門・演習 数理統計』などが参考になる。
- RStanで離散パラメータを含むモデルの推定(disaster model) - 廿TTでは同じデータを扱ってベイズ推定を行った。
- 変化点のあるポアソン過程のパラメータの最尤推定 - 廿TTでも似たようなことやってる。
データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学)
- 作者:久保拓弥
- 出版社/メーカー:岩波書店
- 発売日: 2012/05/19
- メディア:単行本
- 購入: 16人 クリック: 163回
- この商品を含むブログ (25件) を見る
- 作者:野田一雄,宮岡悦良
- 出版社/メーカー:共立出版
- 発売日: 1990/05
- メディア:単行本
- クリック: 4回
- この商品を含むブログ (2件) を見る