nishio 個人の静的デモサイト(2026-09 の Claude Code session で構築・公開)。kouchou-ai が前提にする「全件を読む」ことの数理的な存在理由——ランダムサンプリングでは小さい意見が指数的に埋没する——をインタラクティブに体験させる。

数理の骨子

  • 割合 p = n_X / N の意見を K 件のランダムサンプルで1件も引けない確率は P_miss ≈ exp(-K·p)。N=10,000・1%・K=100 で 36.4%(exact)、0.1% なら K=100 でも約9割見落とす。
  • 意見分布は Zipf n_r = C / r^α でモデル化。n_r >= 1 を満たす rank までを実在クラスタとし M_eff を導出(クラスタ総数 M を固定する変種もある)。
  • 全件をクラスタリングして「頻度上位Kクラスタの代表」を見る方式なら、n_i >= N/K のクラスタは必ず視界に入る。要約が効くのは情報圧縮でなく、観察単位を「件数比例」から「意見クラスタ単位」へ変えて配分戦略を選べるようになるから。詳細は repo の README。

構成 — 体験→解説→実験室のパターン

nishio の指示「まずスライド1枚で紹介できる画面にキャッチーな可視化。その下にこの図が何の意味なのかの解説。別ページでパラメータを変えて試せる」に従った2ページ構成:

  1. index.html(ランディング)— 10,000個のドット図でサンプリングがページを開いた瞬間にアニメーション実行され、「今回は意見Xに出会えたか」が毎回変わる。理論値 36.4% と実測 tally を併置し、繰り返すと収束していく。その下に P_miss の式・p×K の見落とし確率表・ブロードリスニングが効く理由の解説。
  2. playground.html(実験室)— N / n_X / K / T / α / M / g をフォームまたは URL ハッシュ(例 #N=10000&K=100&ni=10&M=200&a=1.00&g=1)で指定して再計算。結果の URL はそのまま共有できる。

ランディングを1シナリオ(1%・K=100)に固定し、自由な探索は別ページへ分離することでメッセージが薄まらない。プレゼン素材(スライド投影)を第一級の設計制約にしたデモの構成として再利用できる。

Open Questions

  • URL パラメータ g は nishio が最初に提示した URL に含まれていたが意味の指定がなく、「実在クラスタとみなす最小件数(n_r >= g の閾値一般化、既定1)」という Claude の解釈で実装した。g=1 は従来挙動と等価なので表示結果には影響しないが、元の意図は未確認。

関連項目

  • kouchou-ai — このデモが数理的に正当化する「全件AI処理」の実装
  • broad-listening-book — 書籍の主張(サンプリング調査に対するブロードリスニングの優位)の体験版として使える