| name | scientific-epidemiology-public-health |
| description | 疫学・公衆衛生解析スキル。観察研究デザイン(コホート/症例対照/横断)・
リスク指標(RR/OR/HR/NNT)・標準化死亡比(SMR)・年齢調整率・
空間疫学(GIS / 空間クラスタリング)・因果推論ダイアグラム(DAG)・
WHO/CDC/EU 公衆衛生データ統合パイプライン。
ToolUniverse 連携: who_gho。
|
| tu_tools | [{"key":"who_gho","name":"WHO GHO","description":"WHO Global Health Observatory 健康統計 API"}] |
Scientific Epidemiology & Public Health
疫学研究と公衆衛生データ解析のパイプラインを提供する。
研究デザイン設計、リスク指標算出、交絡調整、
空間疫学、健康格差評価、公衆衛生データベース連携を体系的に扱う。
When to Use
- 観察研究のリスク指標(RR / OR / HR)を算出するとき
- 年齢調整率・標準化死亡比(SMR)を計算するとき
- 空間疫学(疾患クラスタリング・GIS マッピング)を行うとき
- DAG(有向非巡回グラフ)で交絡構造を分析するとき
- WHO / CDC / EU の公衆衛生データを取得・解析するとき
Quick Start
1. リスク指標算出
import numpy as np
import pandas as pd
from scipy.stats import norm
def calculate_risk_measures(a, b, c, d, alpha=0.05):
"""
2×2 分割表からリスク指標を算出する。
Disease+ Disease-
Exposed+ a b → a+b
Exposed- c d → c+d
a+c b+d N
指標:
- Risk (Incidence): R = cases / total
- Risk Ratio (RR): R_exposed / R_unexposed(コホート研究)
- Odds Ratio (OR): (a·d) / (b·c)(症例対照研究)
- Risk Difference (RD): R_exposed - R_unexposed
- NNT (Number Needed to Treat): 1 / |RD|
- Attributable Fraction (AF): (RR - 1) / RR
"""
z = norm.ppf( - alpha / )
R1 = a / (a + b)
R0 = c / (c + d)
RR = R1 / R0
ln_RR_se = np.sqrt(/a - /(a+b) + /c - /(c+d))
RR_ci = (RR * np.exp(-z * ln_RR_se), RR * np.exp(z * ln_RR_se))
OR = (a * d) / (b * c)
ln_OR_se = np.sqrt(/a + /b + /c + /d)
OR_ci = (OR * np.exp(-z * ln_OR_se), OR * np.exp(z * ln_OR_se))
RD = R1 - R0
RD_se = np.sqrt(R1*(-R1)/(a+b) + R0*(-R0)/(c+d))
RD_ci = (RD - z * RD_se, RD + z * RD_se)
NNT = / (RD) RD != np.inf
AF = (RR - ) / RR RR >
results = {
: (R1, ),
: (R0, ),
: (RR, ), : [(x, ) x RR_ci],
: (OR, ), : [(x, ) x OR_ci],
: (RD, ), : [(x, ) x RD_ci],
: (NNT, ),
: (AF, ),
}
(
)
results