# EarlySign 🧪

Catch the early signs, reach faster conclusions.

<img src="https://raw.githubusercontent.com/early-sign/EarlySign/refs/heads/main/docs/logo.png" width="80%"><br/>

EarlySign は、A/Bテストや統計的モニタリングにおける意思決定を加速するためのPythonライブラリです。実験が完全に終了するのを待つことなく、データが示す「早期のサイン」を統計的に正しく捉え、より速く、確信のある結論を導き出します。


## Features: Supported Methods
EarlySign は、古典的な手法から最新の研究まで、複数の逐次分析アプローチをサポートしています。実験の特性や要件に応じて、最適な手法を選択できます。
EarlySign は、これらの複雑な実験デザインを、シンプルなインターフェイスで実行するための専用ツールを提供します。

### Group Sequential Tests (群逐次検定)
計画的な中間解析で、無駄な実験を早期に打ち切る。

古典的かつ非常にパワフルな手法です。実験期間中に「中間解析」を行うタイミングをあらかじめ複数回設定（例：1週間ごと、1000ユーザーごと）し、その都度、統計的優位性または無益性（これ以上続けても差が出ないこと）を評価します。

- ユースケース:
  - 結果を毎週の定例会でレビューするなど、分析のタイミングが決まっている場合。
  - 臨床試験のように、厳格なエラーコントロールが求められる構造化された実験。
- 主な機能:
  - エラー消費関数 (Spending Functions): O'Brien-Fleming型（保守的）やPocock型（積極的）など、早期停止のしやすさを調整するさまざまな関数をサポート。
  - 有効性・無益性中止: 効果が「ある」という結論と、「これ以上続けても有意な差は出ないだろう」という結論の両方で早期停止が可能です。

### Anytime-Valid Inference with E-values (E値による随時正当推論)

**好きな時に、何回でも。リアルタイムモニタリングのための最先端アプローチ。**

E値 (Evidence-value) は、証拠の強さを表す新しい指標です。このアプローチの最大の特徴は、分析のタイミングを事前に決める必要がないことです。データが1件追加されるたびに結果を更新し、いつでも好きな時にテストを停止して、統計的な正しさを保ったまま結論を出すことができます。

- ユースケース:
    - ユーザートラフィックが多いサービスでのリアルタイムA/Bテスト。
    - 不正検知やシステム異常監視など、継続的なモニタリングが必要な場合。
    - 「次の会議までに結果が欲しい」といった、アドホックな分析要求。
- 主な機能:
    - Anytime-valid p-values: いつでも解釈可能なp値を算出します。
    - ストリーミングデータ対応: 新しいデータが到着するたびに、過去の証拠と統合してE値を更新します。
