Skip to main content

prismalab-meta-analysis

Perform meta-analyses using Azure Databricks for computation and Power BI for visualization. Supports fixed/random effects, subgroup analysis, and publication bias assessment.

インストールへ移動

ソース情報

リポジトリ
Insightpulseai/odoo
ソースの最終更新活動
2026年4月18日 08:34
検出された SKILL.md の言語
英語
スター
6
フォーク
2

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
prismalab-meta-analysis
description
Perform meta-analyses using Azure Databricks for computation and Power BI for visualization. Supports fixed/random effects, subgroup analysis, and publication bias assessment.
# PrismaLab Meta-Analysis Skill ## When to Use - User needs to compute pooled effect sizes - User asks about heterogeneity assessment (I-squared, Q-statistic) - User needs forest plots, funnel plots, or sensitivity analyses - User asks about publication bias (Egger's test, trim-and-fill) ## Azure Services Used - **Databricks** (`dbw-ipai-dev`): Python computation (statsmodels, scipy, meta-analysis libraries) - **Power BI**: Publication-ready visualizations - **Azure AI Foundry**: Interpretation and narrative synthesis ## Computation Approach ### Effect Size Calculation ```python # Run in Databricks notebook import numpy as np from scipy import stats def compute_effect_size(study_data, metric="SMD"): """ Compute standardized mean difference (Cohen's d) or odds ratio. study_data: list of dicts with keys: SMD: n1, mean1, sd1, n2, mean2, sd2 OR: events1, total1, events2, total2 """ if metric == "SMD": d = (study_data["mean1"] - study_data["mean2"]) / pooled_sd se = np.sqrt((n1 + n2) / (n1 * n2) + d**2 / (2 * (n1 + n2))) elif metric == "OR": OR = (a * d) / (b * c) se = np.sqrt(1/a + 1/b + 1/c + 1/d) return {"effect": d_or_OR, "se": se, "ci_lower": ..., "ci_upper": ...} ``` ### Pooled Effect (Random Effects) ```python def random_effects_meta(effects, variances): """DerSimonian-Laird random effects model.""" weights_fixed = 1.0 / variances Q = np.sum(weights_fixed * (effects - weighted_mean_fixed)**2) tau2 = max(0, (Q - (k - 1)) / (sum_w - sum_w2 / sum_w)) weights_random = 1.0 / (variances + tau2) pooled = np.sum(weights_random * effects) / np.sum(weights_random) se_pooled = np.sqrt(1.0 / np.sum(weights_random)) I2 = max(0, (Q - (k - 1)) / Q * 100) return {"pooled_effect": pooled, "se": se_pooled, "I2": I2, "tau2": tau2, "Q": Q} ``` ### Heterogeneity Interpretation | I-squared | Interpretation | |-----------|---------------| | 0-25% | Low heterogeneity | | 25-50% | Moderate heterogeneity | | 50-75% | Substantial heterogeneity | | 75-100% | Considerable heterogeneity | ## Visualization (Power BI or HTML/SVG) ### Forest Plot Generate SVG forest plot with: - Study labels with year - Effect size point + CI whiskers - Weight proportional to square size - Diamond for pooled estimate - Vertical line at null effect ### Funnel Plot Generate for publication bias assessment: - X-axis: effect size - Y-axis: standard error (inverted) - Pseudo-95% CI lines - Egger's regression line if significant ## Subgroup and Sensitivity Analyses - **Subgroup**: stratify by study characteristics (design, population, intervention type) - **Leave-one-out**: recalculate excluding each study - **Cumulative**: add studies chronologically - **Influence**: Cook's distance equivalent for meta-analysis ## Quality Standards - Report per PRISMA 2020 synthesis methods - Use GRADE framework for certainty of evidence - Report prediction intervals alongside confidence intervals - Always assess publication bias for >=10 studies - Declare statistical software and version
GitHubで見る