You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

38 lines
2.5 KiB

# 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へ提供する。