ログデータの異常検知を行う必要が発生したので、変化点検出の統計的な手法をざっくりと調べてみた。 偏差の累積和による方法 各データ点に対して標本平均との偏差の累積和を求め、これが最も大きくなる点を変化点とする方法。 手順は下記の通り。 系列全体の平均値(標本平均)を計算して、各点について平均値との差を求める 平均値との差の累積和を計算し、絶対値が最大になる点を変化点とする。 変化点によって区切られた各区間について、1,2を再帰的に繰り返す。 平均値でなく分散を使うバージョンもある。 特徴 1次元のデータ列に適用可能。 変化していない部分のデータは同一の確率分布に従い、かつ観測値はすべて互いに独立であることを仮定。 上記を満たしていれば、データが特定の分布に従うことを仮定しない。 もちろんデータの独立性が仮定できなければ使えないので、ログのような時間相関のありがちなデータにおいて使える場面は限
![統計的変化点検出の手法 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/d28a87e4c4771b91c380cc1536a296fa7f38ec50/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUU3JUI1JUIxJUU4JUE4JTg4JUU3JTlBJTg0JUU1JUE0JTg5JUU1JThDJTk2JUU3JTgyJUI5JUU2JUE0JTlDJUU1JTg3JUJBJUUzJTgxJUFFJUU2JTg5JThCJUU2JUIzJTk1JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1iYzFlODA0M2ZiY2FjZDEwNTgwZTBjMzQwODE0NjY2NA%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwa29rdW11cmEmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTI5ZWFhYWUwZWNiNTAzNzljZGU2NGQ2YjM4YmJhNmZj%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Da5fc4e37809d1f3651431915949f1fe6)