Spaces:
Sleeping
Sleeping
A newer version of the Streamlit SDK is available: 1.56.0
metadata
title: Bayesian Meta-Analysis System
emoji: 🎲
colorFrom: blue
colorTo: indigo
sdk: streamlit
sdk_version: 1.31.0
app_file: app_meta_analysis.py
pinned: false
python_version: '3.11'
🎲 Bayesian Meta-Analysis System
貝氏後設分析系統 - 用於分析寶可夢屬性在多個道館中的對戰表現
📋 系統功能
核心分析
- 🎲 貝氏階層模型:使用 PyMC 進行完整的貝氏推論
- 📊 後設分析:整合多個研究單位(道館)的資料
- 🔍 收斂診斷:R-hat、ESS 等完整診斷指標
- 🔮 預測分析:預測新研究的效應
視覺化
- **模型結構圖 (DAG)**:展示貝氏階層模型的完整結構
- DAG 中文對照表:詳細解釋每個節點的統計意義和實際應用
- Trace Plot:完整的 MCMC 軌跡(warmup + posterior)
- Posterior Plot:後驗分佈圖(d, sigma, delta_new, OR)
- Forest Plot:各研究單位的效應比較
AI 助手 🤖
- 💬 智能對話:使用 Google Gemini 或 Anthropic Claude
- 📊 結果解釋:深入解釋統計指標和分析結果
- 🎯 快速問題:8 個預設問題快速獲得答案
- 🔄 對話記憶:保持上下文連貫性
- 🎮 策略建議:基於分析結果提供實戰建議
統計報告
- 整體效應估計(d, OR)
- 異質性評估(sigma)
- 預測新研究效果(delta_new)
- 完整的收斂診斷
- 可下載的文字報告
🚀 使用方式
1. 安裝依賴
pip install -r requirements.txt
2. 準備資料
資料格式需求:CSV 檔案,每一列代表一個研究單位(道館),包含以下欄位:
{Type}_win_count, {Type}_total_battles
範例:
Fire_win_count,Fire_total_battles,Water_win_count,Water_total_battles,Grass_win_count,Grass_total_battles
122,133,22,145,85,140
85,132,17,135,52,129
...
3. 啟動系統
streamlit run app_meta_analysis.py
4. 使用流程
- 設定 AI 助手(可選):在左側輸入 Google Gemini 或 Claude API Key
- 上傳 CSV 資料檔
- 選擇實驗組和對照組屬性
- 設定 MCMC 參數(可使用預設值)
- 點擊「開始貝氏分析」
- 查看分析結果和視覺化圖表
- 使用 AI 助手詢問問題和獲取建議
- 下載完整報告
📊 分析方法
貝氏階層模型
本系統使用以下階層模型:
Level 1 (Overall):
d ~ Normal(0, 1000) # 整體平均效應
tau ~ Gamma(0.001, 0.001) # 精確度
sigma = 1/sqrt(tau) # 異質性
Level 2 (Study-specific):
mu[i] ~ Normal(0, 100) # 基線
delta[i] ~ Normal(d, sigma) # 各研究效應
Level 3 (Likelihood):
pc[i] = invlogit(mu[i]) # 對照組勝率
pt[i] = invlogit(mu[i] + delta[i]) # 實驗組勝率
rc[i] ~ Binomial(nc[i], pc[i]) # 對照組觀測
rt[i] ~ Binomial(nt[i], pt[i]) # 實驗組觀測
Derived:
OR = exp(d) # 勝算比
delta_new ~ Normal(d, sigma) # 預測新研究
MCMC 抽樣策略
系統採用分階段抽樣:
- Warmup 階段:Burn-in,讓鏈收斂到穩態分佈
- Tune 階段:調整 NUTS 採樣器參數
- Posterior 階段:正式抽樣,用於推論
完整的 trace 會保留 warmup + posterior,用於診斷。
📈 關鍵指標解讀
d (Log Odds Ratio)
- 整體平均效應(對數尺度)
- d > 0:實驗組優勢
- d < 0:對照組優勢
- 95% HDI 不包含 0 → 顯著
sigma (Between-study SD)
- 研究間異質性
- sigma < 0.3:低異質性
- 0.3 < sigma < 0.5:中等異質性
- sigma > 0.5:高異質性
OR (Odds Ratio)
- 勝算比 = exp(d)
- OR = 1:無差異
- OR > 1:實驗組勝算較高
- OR < 1:對照組勝算較高
delta_new (Predictive Effect)
- 預測新研究的效應
- 不確定性比 d 更大(考慮異質性)
🔧 系統架構
app_meta_analysis.py # Streamlit 主應用
├── meta_analysis_core.py # 貝氏分析核心引擎
├── meta_analysis_utils.py # 視覺化與報告工具
└── meta_analysis_llm_assistant.py # AI 助手模組(Gemini/Claude)
📦 依賴套件
- Streamlit: Web 介面
- PyMC: 貝氏建模與 MCMC 抽樣
- ArviZ: 貝氏推論視覺化
- Matplotlib: 圖表繪製
- NumPy/Pandas: 資料處理
- Graphviz: DAG 圖生成
- Google Gemini: AI 助手(可選)
- Anthropic Claude: AI 助手(可選)
⚙️ 進階設定
MCMC 參數調整
- Warmup 樣本數(預設 1000):增加以改善收斂
- Posterior 樣本數(預設 2000):增加以提高精確度
- Tune 樣本數(預設 1000):增加以優化採樣效率
- 鏈數(預設 1):多鏈可檢測收斂問題
收斂診斷
- R-hat < 1.1:已收斂
- ESS > 400:有效樣本數足夠
- Trace 呈現穩定震盪:視覺檢查
🎮 實際應用
寶可夢對戰分析
- 比較不同屬性在多個道館的表現
- 評估屬性優勢的一致性
- 預測新道館的對戰結果
其他應用場景
- 醫學研究的臨床試驗後設分析
- 教育研究的介入效果評估
- 市場研究的產品比較
📝 注意事項
- 資料品質:確保資料完整無誤
- 收斂檢查:務必檢查 R-hat 和 Trace Plot
- 異質性:高異質性時謹慎解讀整體效應
- 樣本數:研究數量太少(<3)時結果不可靠
🤖 AI 助手使用指南
支援的 API
Google Gemini
- 模型:gemini-2.0-flash-exp
- 取得 API Key:https://makersuite.google.com/app/apikey
Anthropic Claude
- 模型:claude-sonnet-4-20250514
- 取得 API Key:https://console.anthropic.com
快速問題功能
系統提供 8 個預設快速問題:
- 📊 分析總結
- 🎯 解釋 d 和勝算比
- 🔍 解釋異質性(sigma)
- ❓ 貝氏後設分析概念
- 🔮 預測新道館效應
- 🆚 貝氏 vs 頻率論比較
- ⚔️ 對戰策略建議
- 🏛️ 道館間比較分析
對話技巧
- 可以用中文或英文提問
- AI 會自動根據問題語言回應
- 支援追問和深入探討
- 可以要求舉例說明
- 對話會保持上下文記憶
實用問法範例
"為什麼 sigma 這麼高?"
"Flying 對 Dark 的優勢在所有道館都一樣嗎?"
"如果我要挑戰新道館,勝率預測是多少?"
"這個 HDI 包含 1 是什麼意思?"
"給我一些實戰建議"
🤝 貢獻與支援
本系統基於原始 Python 腳本改寫,保持所有原始功能。
📄 授權
MIT License
作者: Claude
版本: 1.0.0
更新日期: 2026-01-19