Files
SignageSystem/docs/phase8_specification.md
T
2026-08-09 21:41:44 +09:00

39 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Phase 8 統計解析仕様
## 1. Phase 8の目的
Prompt/Controlの観測反応率、反応時間、Yaw変化を基本統計・検定・効果量で比較する。因果関係は断定しない。
## 2. 入力データ仕様
単一または再帰探索した複数の `person_analysis_table.csv`。session summaryもloaderで読込可能。
## 3. 解析対象の定義
主反応解析は `valid_for_voice_analysis=True` のみ。数値欠損は各metricから除く。
## 4. prompt/control条件
`prompt_condition`がprompt/controlの行を同一schemaで比較する。disabled/unknownは主比較外。
## 5. response_rate定義
response count / valid voice analysis count。分母0はNone。
## 6. 顔向き評価不能の扱い
分析不能をno responseへ混ぜない。件数はcondition summaryと除外集計へ残す。
## 7. 条件別summary
全件、valid、response/no response、率、除外、reaction/Yaw記述統計、Turn levelを出力する。
## 8. 反応率検定
autoは期待度数5未満でFisher、それ以外で2x2カイ二乗。率差、odds ratio、φを併記する。
## 9. reaction_time_sec比較
response detected行のみをMann–Whitney U(既定)またはWelch tで比較する。
## 10. max_yaw_delta比較
valid turn、valid voice、全non-nullの分母設定から選択し、同じ数値検定を行う。
## 11. turn_level分布
none、face appeared、subtle、weak、medium、strong、not evaluableを条件別集計する。
## 12. 除外理由集計
条件内全件を分母にreason別count/ratioを保存する。
## 13. 出力CSV仕様
condition、response test、numeric、Turn distribution、exclusion、run summaryの6表をUTF-8 BOMで保存する。
## 14. グラフ出力
matplotlib Aggで反応率bar、reaction/Yaw box、Turn分布、除外理由を英語ラベルPNGへ保存する。空データでも停止しない。
## 15. CLI
`python main.py analyze --input data/logs/unified --output data/analysis`。解析経路はApplicationをimportしない。
## 16. テスト
読込・型変換・必須列、検定選択、空標本、分母、summary、CSV BOM、overwrite、Agg plotを合成データで検証する。
## 17. 結果解釈の注意
p値は因果を証明しない。小標本ではFisherを使い効果量を併記する。session ID、カメラ位置、trigger条件が異なるデータを無批判に混ぜない。
## 18. Phase 9への引き継ぎ
6 CSVと5 PNGを安定した結果閲覧・ファイル選択GUIへ提供する。