Slide 1

Slide 1 text

家電製品の異常検知 (Case Study) 2021/06/22 製造業データ合同勉強会

Slide 2

Slide 2 text

ある家電メーカーのお客様の話

Slide 3

Slide 3 text

製品の異常発生を抑制することでコストを削減したい 製品に異常発生 入電 訪問修理

Slide 4

Slide 4 text

異常発生率が高いモデルは設計を改善するべき 異常発生率が高い = 設計がマズい 「異常発生率が高い」をどう捉えるか 異常発生率に対する異常検知

Slide 5

Slide 5 text

どんなデータ? 出荷台数データ 入電&訪問履歴データ ● モデル名+開発年度 = 設計が同じ ● モデルによって出荷台数が大きく異なる ● 異常の種類は様々で、異常コード毎に発 生頻度や傾向が異なる モデル名 開発年度 出荷年月 台数 XXX 2015 2015-04 500 XXX 2015 2015-05 1250 XXX 2015 2015-06 4000 ・・・ ・・・ ・・・ ・・・ XXX 2016 2016-04 300 XXX 2016 2015-05 1500 ・・・ ・・・ ・・・ ・・・ BBB 2018 2018-04 5000 BBB 2018 2018-05 12500 ・・・ ・・・ ・・・ ・・・ 入電日 対応日 モデル名 開発年度 異常コード 2018/04/27 2018/04/27 XXX 2015 XB9920 2018/05/20 2018/05/28 QQQ 2016 EA2828 2018/06/15 2018/06/17 YYY 2018 AA0001 ・・・ ・・・ ・・・ ・・・ ・・・

Slide 6

Slide 6 text

困っていたこと 異常コード/開発機種毎の異常発 生率を出荷後経過月の断面で監視 。 出荷台数が少ない開発機種や異常 発生頻度が低い異常コードは、異 常発生率にスパイクが発生しやす く、「異常発生率が高い」ことを 判定するのが難しい。 3σ閾値

Slide 7

Slide 7 text

アプローチ 1. 集計断面の変更 2. あるべき異常発生率の推定 3. 二項分布によるP値の算出 4. P値の連続性監視

Slide 8

Slide 8 text

1. 集計断面の変更 変更前: 出荷後経過月数毎の不具合発生率 を監視 ● 1ヶ月目 ● 2ヶ月目 ● 3ヶ月目 ● ・・・ 変更後: 観察月毎の不具合発生率 を監視 ● 2018年5月 ● 2018年6月 ● 2018年7月 ● ・・・ 常に全出荷済み台数を母数とすることで、出荷 台数の少なさによる異常発生率の不安定さを解 消。(イメージは次ページを参照

Slide 9

Slide 9 text

2. あるべき異常発生率の推定 一つの異常コードは開発機種によらず一定の発生率に収まるべきである 全開発機種の異常発生率を目的変数として一般化線形モデルを学習

Slide 10

Slide 10 text

2. あるべき異常発生率の推定(続) 一般化線形モデルのガンマ分布(Inverse link)を採用 説明変数 ● 月(1〜12月)のカテゴリ値 ● 出荷後経過月数の重み付き平均

Slide 11

Slide 11 text

3. 二項分布によるP値の算出 推定した異常発生率を「あるべき」とした場合に観測された異常発生件数はどの 程度の確率で観測されるのか? P値 = p: 推定したあるべき不具合発生率 n: 観察月時点における合計出荷台数 k: 観察された異常発生件数

Slide 12

Slide 12 text

4. P値の連続性監視 閾値をどうするか問題 ● 一回でも閾値を下回ったら「異常」であると判断するべきか? ● 偶然性を排除したい。 最終的に行き着いた閾値 ● P値 0.01未満を閾値とし、 ● Xヶ月連続で閾値を下回った場合に「異常」であると判断する。

Slide 13

Slide 13 text

まとめ ● 異常検知とはデータに隠れている統計的アービトラージを利用すること。 ● つまり異常検知と一言で言ってもやるべきことは問題毎に異なる。 ● なので異常検知を一般化したサービスを開発するのは難しい(ですよね?)