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