TT Lab
はじめる
学ぶ 学習パス コース

顧客データを扱う

形式はすべて合っているのに値がおかしい

TT Labで続きを見る

一言でいうと

検証ツールを通過した資料が変だと言うには、根拠が必要であり、その根拠は値1つではなく分布です。そして、分布が与えるのは証拠ではなく手がかりです。

なぜ必要なのか

スキーマも合っていて、カラム数も合っていて、欠損もルールどおりです。検証ツールは青信号です。ところが、今月の売上がどこか変です。どこが変なのかと聞かれたら、答える言葉がありません。

この場面でできることは、資料そのものを説明する表を作ることです。カラムごとに、型が何で、空の値が何パーセントで、異なる値が何種類で、値の長さがたいてい何文字で、最もよくある値が何で、その値が全体の何パーセントなのか。この表をプロファイルと呼びます。

プロファイル1つだけでは、変かどうかがわかりにくいです。異常は絶対的な値ではなく、前回との差として表れるからです。そのため、プロファイルは納品ごとに残して比べます。

どう動くのか

カラム1つから取り出すものは、おおよそ次のとおりです。

項目 何を捉えるか
欠損率 相手のシステムが、ある項目を埋められなくなり始めた
ユニーク率 識別子のはずの項目で、同じ値が繰り返され始めた
値の長さの分布 電話番号から市外局番が抜けた、コードの桁数が変わった
最頻値とその割合 特定の値1つが、突然全体の3分の1になった
最小と最大 単位が変わった、または外れ値が入ってきた

値の長さの分布は、特に安上がりで、よく効きます。形式検査を通る値でも、長さが違えば作った側が変わったということで、最頻の長さから外れた数件を直接取り出して見れば、たいてい原因がすぐ見えます。

次が、納品の間の比較です。ルールは単純なほどよいです。欠損率が5ポイント以上動いたか、ユニーク率が0.2以上動いたか、最頻の長さが変わったか、最頻値の占有率が10ポイント以上動いたか。しきい値は資料ごとに違う値を決める必要があり、どの値を使ったかを書いておくことは、しきい値そのものより重要です。

最後が、最初の桁の数字の分布です。自然に集まった数字の最初の桁は、1が約30%、2が約18%、9が約5%として現れます。この観察をベンフォードの法則と呼びます。観測した分布を期待される分布と比べる標準的な方法は適合度検定で、米国国立標準技術研究所の統計ハンドブックのカイ二乗適合度検定が、その手順を書いています。このラボは、それより単純に、期待される割合との最大の差1つで判定します。検定の代わりにしようというのではなく、人が見る場所を選ぶ基準としてだけ使います。人が手で作り出した数字は、この形にうまく従えません。4万ウォン台、5万ウォン台のように、特定の桁に集中します。

現場での姿

1つ目に、ベンフォードを証拠として使います。これが最も危険な間違いです。最初の桁の分布がずれたという事実は、「そのカラムを人が見る必要がある」という意味であって、「誰かが改ざんした」という意味ではありません。分布がずれるのには、改ざん以外にも理由が多くあります。価格表が数種類に決まっていたり、丸めのルールがあったり、最小注文金額があったりすれば、それだけでずれます。

2つ目に、通用しない資料に適用します。ベンフォードが成り立つには、値が複数の桁にわたって広がっている必要があります。点数が100から130の間にしかないカラムは、最初の桁が事実上1だけなので、正直な資料でも、期待される分布と大きくずれます。そのため、適用できるかどうかを先に判定する必要があります。件数が十分か、最大と最小の比が複数の桁をまたいでいるか。この判定なしに実行したベンフォードは、問題のない資料を報告し続け、そうなると、誰もその報告を読まなくなります。

3つ目に、シグナル1つで判断します。実際に使えるのは、シグナルを重ねて見ることです。同じカラムで、最頻値の占有率が跳ね上がり、ユニーク率が下がり、最初の桁の分布もずれたなら、その3つは同じ出来事を指している可能性が高いです。1つだけ引っかかったカラムと、3つ引っかかったカラムは、違うように扱います。

4つ目に、手がかりを投げて終わります。レポートの最後の行は、「何が変だ」ではなく、「次に何を確認すべきか」でなければなりません。手で書いたような金額が、どの担当者に集中しているか、桁が変わった電話番号が、どのシステムから来たものか。続けて見る場所を書いてあげるところまでが、この仕事の役割です。

実務で本当に大切なこと

次のラボですること

同じ形の伝票の納品を3か月分作ります。2か月は平凡で、1か月は形式がすべて合っているのに値が変です。カラムごとのプロファイルを取り出し、値の長さの分布から外れた値を直接取り出して見て、納品の間の分布の変化をしきい値で判定します。そのあと、最初の桁の数字の分布を測って手を加えた痕跡を疑い、値の範囲が狭いカラムを反例として入れて、ベンフォードが適用されないケースをコードが自分で言うようにします。最後に、複数のシグナルを重ねて、調査対象の一覧と、次に確認することを残します。採点ツールは、毎回違う納品を作り、作成したツールを実際に実行して、答えを照合します。