Rを使って時系列データの変化点をみつける: changepoint
時系列データを扱う時に、変化点を見つけたいことがある。
Rにchangepointというパッケージがあるので、実装してみる。
1つのchangepointはdefaultのmethod = AMOCで良い。
複数のchangepointであれば、methodでPELT, SegNeighやBinSegを指定すれば良い。
#install.packages("changepoint") library(changepoint) # change in variance x=c(rnorm(100,0,3),rnorm(100,0,10)) res1=cpt.var(x, ) plot(res1) print(res1) # change in mean y=c(rnorm(100,0,1),rnorm(100,7,1)) res2=cpt.mean(y) plot(res2,cpt.col='blue') print(res2) # change in mean and variance z=c(rnorm(100,0,1),rnorm(100,3,7)) res3=cpt.meanvar(z) plot(res3,cpt.width=3) print(res3) # change in mean and variance, multiple changepoints w=c(rnorm(100,0,1),rnorm(100,3,7), rnorm(100,-5,1)) res4=cpt.meanvar(w, Q=2, method = "PELT") plot(res4) print(res4)