mcpField
C
cross-national

cross-national

github.com/aperivue数据与数据库353108 次安装1 天前更新
代码仓库

关于 cross-national

cross-national 是比较不同国家调查数据中暴露与结局关联的研究分析技能,面向开展跨国流行病学研究的人员。它分别分析各国复杂抽样数据,并通过效应量比值比较结果,而非合并国家数据。

主要功能

  1. 01映射跨调查变量
  2. 02准备 KNHANES 与 NHANES 数据
  3. 03按国家设置调查加权分析
  4. 04生成分层与剂量反应分析
  5. 05比较国家间效应量

适用场景

  1. 01比较韩国与美国调查中的暴露—结局关联
  2. 02检查变量在不同调查中的可比性
  3. 03生成加权基线表和跨国比较报告

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aperivue/medsci-skills --skill cross-national

安装后在 Claude Code 中输入/cross-national确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

skill.yml
references/
additional_variables.md
chns_coding.md

详细介绍

跨国家比较研究技能

输入

  1. 研究问题:需要跨国家比较的暴露 → 结局关联
  2. 韩国数据路径:KNHANES CSV 文件
  3. 美国数据路径:NHANES CSV 目录(需要合并多个表)
  4. 协调表(可选):映射不同调查中变量的 CSV 文件
    • 默认值:/replicate-study 的 references/harmonization_knhanes_nhanes.csv

参考文件

  • /write-paper 的 references/paper_types/cross_national.md — 写作模板
  • /analyze-stats 的 references/analysis_guides/survey_weighted.md — 调查加权分析指南
  • references/chns_coding.md — CHNS 文件、合并键、编码和警告;研究设计包含中国(3 国设计)时请阅读
  • references/additional_variables.md — 哮喘、睡眠、身体活动、饮食、治疗和非 HDL 胆固醇的编码,以及综合评分(LE8)警告;研究使用其中任一变量时请阅读

工作流

阶段 1:研究定义
  1. 确认研究问题:暴露 → 结局
  2. 定义两个国家的变量编码:
    • 暴露:PHQ-9、BMI 分类、吸烟等
    • 结局:糖尿病、高血压、死亡率等
    • 协变量:年龄、性别、教育、收入、吸烟、饮酒、肥胖、CVD
  3. 检查协调表中的变量可用性
  4. 输出:供用户审批的研究方案摘要
阶段 2:数据准备

切勿猜测变量名、数据集列名或变量编码。如果映射不确定,请输出 [VERIFY: variable_name],并请用户根据数据字典确认。

KNHANES(单个 CSV):

  1. 加载 CSV 并保留所有行 — 年龄 ≥20(或按方案规定)的限制将在第 3 步应用于设计

  2. 使用 KNHANES 编码派生变量:

    变量原始变量编码
    吸烟BS3_11,2=当前吸烟;3=既往吸烟;8=从不吸烟
    饮酒BD1_112-6=经常饮酒(当前饮酒者);1=偶尔饮酒(过去一年未饮酒者);8=从不饮酒
    肥胖HE_obe1-3=正常;4-6=肥胖(BMI≥25,亚洲标准界值)
    抑郁BP_PHQ_1~9总分 ≥10 = 抑郁
    糖尿病HE_glu, HE_HbA1c, DE1_dgFPG≥126 或 HbA1c≥6.5 或 DE1_dg=1
    CVDDI4_dg, DI5_dg, DI6_dg任一 = 1 → 有 CVD
    教育edu1-3=非大学;4=大学
    收入incm四分位数(1=最低 … 4=最高):1-3=较低的 75%;4=最高四分位数
  3. 在完整文件上设置调查设计,然后限制分析域: des <- svydesign(id=~psu, strata=~kstrata, weights=~wt_itvex, nest=TRUE, data=df); des_ad <- subset(des, age >= 20). 切勿在 svydesign() 之前筛除行 — 删除行会改变标准误(参见 survey_weighted.md 中的亚总体分析部分)

NHANES(多个 CSV):

  1. 按 SEQN 加载并合并各表(DEMO_J, DPQ_J, GHB_J, GLU_J, BMX_J, SMQ_J, ALQ_J, DIQ_J, MCQ_J, BPQ_J, BPXO_J)

  2. 使用 NHANES 编码派生变量。关键:通过 R nhanesA 包下载的 NHANES 数据使用文本标签,而非数字代码。

    变量原始变量编码(文本标签)
    性别RIAGENDR"Male" / "Female"(不是 1/2)
    吸烟SMQ020 + SMQ040吸过 100 支香烟(SMQ020 "Yes" / "No")+ 目前吸烟(SMQ040 "Every day" / "Some days" / "Not at all")
    饮酒ALQ121 + ALQ111经常饮酒(当前饮酒者):ALQ121 的任何频率("Never in the last year" 除外);偶尔饮酒(过去一年未饮酒者):"Never in the last year";从不饮酒(终生不饮酒者):ALQ111 == "No"(ALQ121 将为 NA)
    肥胖BMXBMI (BMX_J, kg/m²)≥30(WHO 截止值,不是亚洲标准)
    PHQ-9DPQ010~DPQ090"Not at all"→0,"Several days"→1,"More than half the days"→2,"Nearly every day"→3;总分 ≥10 = 抑郁
    糖尿病LBXGLU (GLU_J,空腹子样本,mg/dL)、LBXGH (GHB_J,%)、DIQ010LBXGLU≥126 | LBXGH≥6.5 | DIQ010=="Yes"(DIQ010:"Yes" / "No" / "Borderline")。重要:空腹血糖是 GLU_J LBXGLU,而不是 BIOPRO_J LBXSGL;CDC 指出,不应使用血清 LBXSGL 判断未确诊糖尿病;使用 LBXGLU 的分析需要空腹子样本权重(步骤 3)。非空腹者的 LBXGLU 为 NA;在 R 中,NA | TRUE 为 TRUE,但 NA | FALSE 为 NA,因此只有非空腹且无糖尿病者的这个复合变量会缺失;在 WTMEC2YR 下删除这些 NA 会高估患病率。应仅在空腹分析域中使用空腹血糖复合指标并采用空腹权重,或者在 WTMEC2YR 下使用非空腹变体 LBXGH>=6.5 | DIQ010=="Yes",并在 variable_mapping.csv 中说明采用哪种方式
    CVDMCQ160B/C/D/EMCQ160B=="Yes"(CHF)| MCQ160C=="Yes"(CHD)| MCQ160D=="Yes"(心绞痛)| MCQ160E=="Yes"(MI);标签为 "Yes" / "No" / "Don't know"
    HTNBPXOSY2+3, BPXODI2+3, BPQ020mean(BPXOSY2, BPXOSY3)≥140 | mean(BPXODI2, BPXODI3)≥90 | BPQ020=="Yes"(BPXOSY3 是第 3 次测量值,不是平均值;第 2 次和第 3 次测量值的平均值与 KNHANES 一致)
    教育程度DMDEDUC25 个文本等级
  3. 在完整文件上设置调查设计,然后对设计对象使用 subset(),以限定分析域 (例如 RIDAGEYR >= 20):svydesign(id=~SDMVPSU, strata=~SDMVSTRA, weights=~WTMEC2YR, nest=TRUE)。 权重取决于文件:上面的单周期 _J 表使用 WTMEC2YR;WTMECPRP 仅适用于疫情前的 P_ 文件(P_DEMO、P_BMX 等)。来自空腹子样本的变量(GLU_J LBXGLU、TRIGLY_J LBXTR/LBDLDL)应使用空腹权重:WTSAF2YR(_J)或 WTSAFPRP(P_);将空腹子样本变量与全样本变量组合的变量(如上面的糖尿病)仅在空腹分析域中定义,因此不能纳入 WTMEC2YR 模型。合并周期时遵循 NCHS 规则:将每个周期的权重除以合并的周期数(1999–2002 年使用专用的 4 年权重);合并 2015–2016 年与 2017–2020 年 3 月数据时,使用 2/5.2 × WTMEC2YR 和 3.2/5.2 × WTMECPRP。

CHNS(三国设计):准备中国数据前,请阅读 references/chns_coding.md。

阶段 3:并行分析

分别对每个国家进行:

  1. 表 1:按暴露因素列出的基线特征(加权计数 + 百分比)
  2. 主要分析:序贯逻辑回归模型
    • 模型 1(未调整)
    • 模型 2(年龄 + 性别)
    • 模型 3(完全调整:+ 教育程度、收入、吸烟、饮酒、肥胖、CVD)
  3. 亚组分析:按性别、年龄组、教育程度、收入、饮酒、吸烟、CVD、肥胖分组。 通过在完整设计上拟合暴露因素 × 亚组交互项(在全样本上使用 svyglm)来检验亚组间的关联是否不同,而不是比较各亚组的 P 值。
  4. 剂量-反应(如适用):采用 3 个结点的 RCS
Phase 4:跨国比较表

生成并列比较表:

分析韩国 wOR(95% CI)美国 wOR(95% CI)wOR 比值(95% CI);P
总体(完全调整).........
男性.........
女性.........

比较两国时,应使用比值比之比,而不是依据方向是否一致:两个估计值方向相同也可能存在差异,方向相反也可能相容。设两个独立调查得到的对数比值比为 b₁、b₂,基于调查设计的标准误为 SE₁、SE₂,则比值为 exp(b₁ − b₂),其 95% CI 为 exp(b₁ − b₂ ± 1.96·√(SE₁² + SE₂²)),且 z = (b₁ − b₂)/√(SE₁² + SE₂²)(Altman & Bland,BMJ 2003;326:219)。

所有数字都必须来自实际执行的代码输出(analysis_korea.R、analysis_us.R)——不得虚构 p 值、效应量、置信区间或样本量。

Phase 5:输出文件
{working_dir}/
├── cross_national_report.md    — Study summary + comparison tables
├── variable_mapping.csv        — Variable mapping with match status
├── analysis_korea.R            — KNHANES analysis (self-contained)
├── analysis_us.R               — NHANES analysis (self-contained)
├── results/
│   ├── table1_korea.csv
│   ├── table1_us.csv
│   ├── main_results_comparison.csv
│   └── subgroup_comparison.csv
└── manuscript_draft/           — Optional: Methods + Results draft
    ├── methods_draft.md
    └── results_draft.md

报告或草稿中的所有引文均须来自 /search-lit(已确认 DOI/PMID);其他引文一律标记为 [UNVERIFIED - NEEDS MANUAL CHECK],绝不得凭记忆生成参考文献。

关键规则

  1. 绝不合并不同国家的数据。每个国家均须使用各自的调查设计进行分析。
  2. 使用各国特定的 BMI 临界值:韩国 ≥25(亚洲标准),美国 ≥30(WHO 标准)。
  3. 使用各国特定的收入指标:KNHANES 四分位数,NHANES PIR → 统一为二元变量。
  4. 必须进行加权分析:KNHANES 和 NHANES 均为复杂抽样调查。CHNS 没有调查权重——应进行非加权分析(参见 references/chns_coding.md)。
  5. 记录所有变量统一处理决策:哪些内容一致,哪些需要重新编码,哪些存在差异。
  6. 采用相同的分析方法:两国使用完全相同的模型设定,以确保公平比较。

评论

支持 Markdown