競合仮説テスト
複数の仮説を並列で検証し、互いに反証を試みることで、最も確からしい説明を特定する調査手法。もともと情報分析の手法として開発されたが、ソフトウェアのデバッグや原因調査にも有効。
なぜ必要か
単一の調査者は「最初に見つけたもっともらしい説明」で止まりがちだ。これはアンカリング効果や確証バイアスによる。競合仮説テストは、これらのバイアスを回避するための構造化された手法。
プロセス
- 仮説列挙: 考えられる仮説をすべて列挙する
- 並列検証: 各仮説を独立して検証する
- 反証の試み: 「この仮説が正しいなら、〇〇も起きているはず」と批判的に検討
- 生き残り確認: 反証されなかった仮説が最有力候補
重要なのは、仮説を支持する証拠を探すのではなく、反証する証拠を探すこと。これにより確証バイアスを軽減できる。
ソフトウェアデバッグでの例
「アプリが1メッセージ送信後に切断される」という問題に対して:
- 仮説1: WebSocketのタイムアウト設定
- 仮説2: 認証トークンの有効期限
- 仮説3: サーバー側のコネクション管理
- 仮説4: クライアント側のエラーハンドリング
- 仮説5: ネットワークレイヤーの問題
各仮説を並列で調査し、「この仮説が正しいなら〇〇のログがあるはず」といった形で検証する。
AIエージェントでの実装
マルチエージェント協調を使うと、各仮説に専門のエージェントを割り当て、並列で検証できる。エージェント同士が互いの仮説を批判的に検討することで、人間の調査チームと同様の効果が得られる。
関連
- アンカリング効果 - 最初の仮説に固執してしまうバイアス
- 確証バイアス - 自分の仮説を支持する証拠を集めてしまうバイアス
- マルチエージェント協調 - 競合仮説テストを実行するためのアーキテクチャ
- 仮説思考 - 仮説を持つこと自体は有用