mcpField
A
algo-risk-benford

algo-risk-benford

github.com/asgard-ai-platformデータ・データベース24336 回インストール21 週間前に更新
リポジトリ

algo-risk-benford について

algo-risk-benfordは、データ監査向けに先頭数字の頻度をBenfordの法則の分布と比較する分析スキルです。複数の桁にまたがる大規模な自然発生データを対象とし、逸脱は不正の証明ではなく調査の手掛かりです。

主な機能

  1. 01先頭数字の頻度を集計
  2. 02Benford分布と比較
  3. 03MAD、カイ二乗、KS検定を計算
  4. 04大きく逸脱した数字を特定

活用シーン

  1. 01経費や請求書データの異常を抽出
  2. 02大規模データセットの完全性を監査
  3. 03自然発生データの数字分布を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/asgard-ai-platform/skills --skill algo-risk-benford

インストール後、Claude Code で/algo-risk-benfordを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

examples/
sample_scenario.md
references/
fraud-case-studies.md
higher-digit-tests.md

詳細

ベンフォードの法則による分析

概要

ベンフォードの法則は、自然に生じるデータセットにおいて、先頭の数字 d が確率 P(d) = log₁₀(1 + 1/d) で出現すると予測します。数字の 1 は約 30.1% の頻度で出現し、数字の 9 はわずか約 4.6% です。この分布からの逸脱は、データの捏造や改ざんを示している可能性があります。分析の計算量は O(n) です。

使用する場面

適用条件:

  • 財務データ(経費、請求書、納税申告書)を監査して改ざんを調べる場合
  • データの完全性に関する問題を見つけるために、大規模なデータセットをスクリーニングする場合
  • 捏造された数値や、人為的に丸められた数値を検出する場合

使用しない場面:

  • 割り当てられた番号や連番(郵便番号、電話番号、ID)の場合
  • 値の範囲が制限されたデータセット(例:人間の年齢、パーセンテージ)の場合
  • 小規模なデータセット(500 件未満。統計的検出力が不十分です)の場合

アルゴリズム

IRON LAW: Benford's Law Applies to NATURALLY OCCURRING Data Spanning Orders of Magnitude
Data that doesn't span multiple orders of magnitude (e.g., temperatures
in Celsius, human heights) will NOT follow Benford's Law. Deviation from
Benford's in such data is EXPECTED, not suspicious. Always verify the
data type is appropriate before concluding fraud.
フェーズ 1:入力の検証

データセットから先頭の数字を抽出します。フィルター処理では、ゼロを除外し、負の値は絶対値に変換し、10 未満の値を除外します。データセットが複数の桁違いの範囲にまたがっていることを確認します。 条件: 500 件以上のレコードがあり、データが少なくとも 2 桁違いの範囲にまたがっていること。

フェーズ 2:コアアルゴリズム
  1. 各数値の先頭の数字を抽出します
  2. 各数字(1~9)の出現頻度を数えます
  3. 観測された頻度を、ベンフォードの法則で予測される値 P(d) = log₁₀(1 + 1/d) と比較します
  4. 統計的検定を行います:カイ二乗検定、MAD(平均絶対偏差)、KS 検定
フェーズ 3:検証

MAD のしきい値:0.006 未満(よく適合)、0.006~0.012(許容範囲)、0.012~0.015(境界域)、0.015 超(不適合)。大きく逸脱している特定の数字をフラグ付けします。 条件: MAD が算出され、不適合な数字が特定されていること。

フェーズ 4:出力

数字ごとの分析を含む適合性評価を返します。

出力形式

{
  "conformity": "marginal",
  "mad": 0.013,
  "chi_squared": {"statistic": 18.5, "p_value": 0.018, "df": 8},
  "digit_analysis": [{"digit": 1, "observed_pct": 25.1, "expected_pct": 30.1, "deviation": -5.0}],
  "metadata": {"records": 5000, "dataset": "Q4 expense reports"}
}

例

入出力の例

入力: 企業の買掛金元帳にある 1,000 件の請求金額 期待される結果: 先頭の数字は、30.1%、17.6%、12.5%、9.7%、7.9%、6.7%、5.8%、5.1%、4.6% に近い割合で出現するはずです。正当なデータでは MAD は 0.012 未満です。

エッジケース
入力期待される結果理由
金額がすべて $90~$99数字の 9 が大半を占める範囲が制限されているため、ベンフォードの法則は適用されません
丸めた数値が突出(数字の 1、5)要確認としてフラグ付け概算やしきい値の操作を示している可能性があります
政府予算のデータ通常はよく適合する自然に生じる大規模な財務データセットは、ベンフォードの法則に適合します

注意点

  • 不正の証拠ではありません:不適合は危険信号であり、証拠ではありません。正当なプロセスでも、ベンフォードの法則に適合しない分布が生じることは多々あります。必ずさらに調査してください。
  • 2 桁目の検定:1 桁目の検定では大規模な捏造を検出できます。2 桁目の分析では、より微妙な操作(例:承認しきい値に合わせた丸め)を検出できます。
  • データセットの結合:異なるプロセスからのデータセットを混在させると、ベンフォードの法則への適合性が人為的に生じたり、損なわれたりすることがあります。均質なデータセットを分析してください。
  • 承認しきい値:5,000 ドルを超える経費に VP の承認が必要な場合、5,000 ドルをわずかに下回る金額(4,9xx ドルの範囲で数字の 4)に偏りが生じると予想されます。これは行動パターンであり、2 桁目の分析によってフラグ付けされます。
  • サンプルサイズは重要です:カイ二乗検定はサンプルサイズの影響を受けます。10 万件以上のレコードでは、わずかな逸脱でも統計的に有意になります。主要な指標として MAD を使用してください。

参考資料

  • 2 桁目および 3 桁目への拡張については、references/higher-digit-tests.md を参照してください
  • 不正検出の事例については、references/fraud-case-studies.md を参照してください

コメント