数据概述
clinResearchKit 支持 CHARLS(中国健康与养老追踪调查)、HRS(美国健康退休研究)、 SHARE(欧洲健康老龄化与退休调查)、ELSA(英国老龄化追踪调查)等主要老龄化队列。
适用场景
跨国比较、衰弱评估、认知功能研究、晚年健康不平等
核心函数
跨国比较、Fried 衰弱评估、中介分析、Bootstrap CI
01 数据加载
library(clinResearchKit) # 加载多个国家数据 elderly_data <- elderly_load( countries = c("charls", "hrs", "share", "elsa") ) # 查看各数据集基本信息 elderly_list(elderly_data) # 预处理:统一变量名、年龄范围、随访周期 clean_data <- elderly_preprocess( elderly_data, age_range = c(50, 80), # 50-80岁 wave_range = c(2015, 2020) # 2015-2020 随访波 )
02 Fried 衰弱评估
Fried 衰弱量表(5 项指标:体重减轻、疲惫感、体力活动、步行速度、握力)是老龄化研究的核心工具。
# Fried 衰弱评估 fried_result <- elderly_fried( clean_data, outcome = "all-cause_mortality", # 全因死亡作为验证结局 by_country = TRUE # 分国家计算 ) # 各国家衰弱患病率 print(fried_result$prevalence) # 衰弱与死亡风险(按国家) hr_fried <- elderly_fried( clean_data, outcome = "all-cause_mortality", meta_method = "random" # 随机效应 meta 分析合并 HR )
# 衰弱四分类(Robust / Pre-frail / Mild / Moderate-Severe) four_class <- elderly_four_class( clean_data, frailty_var = "fried_score" ) print(four_class)
03 线性回归(认知功能分析)
# 分析教育年限与认知功能的关系(跨国比较) ols_result <- elderly_ols( clean_data, outcome = "cognition_z", # 标准化认知得分 exposure = "education_years", # 暴露变量 covariates = c("age", "sex"), by_country = TRUE # 分国家回归 ) # 查看各国家回归系数 print(ols_result) # 森林图展示跨国异质性 p_forest <- elderly_forest( ols_result, title = "教育年限与认知功能(β系数,跨国比较)", ref_line = 0 ) print(p_forest) ggsave("elderly_education_cognition.pdf", p_forest, width = 8, height = 6)
04 中介分析
检验教育通过衰弱间接影响认知的效应量(间接效应 vs 直接效应)。
# 中介分析:教育 → 衰弱 → 认知 mediation <- elderly_mediation( clean_data, exposure = "education_years", mediator = "fried_score", outcome = "cognition_z", covariates = c("age", "sex"), n_bootstrap = 1000 # Bootstrap 重采样次数 ) # 查看结果 print(mediation) # 间接效应(教育→衰弱→认知)、直接效应、总效应及比例
中介分析解读:如果间接效应显著(Bootstrap CI 不包含 0),说明衰弱是教育与认知之间关系的重要中介路径。
05 一键 Pipeline
使用 pipeline 函数自动执行完整分析流程:加载→预处理→分析→结果导出。
# 跨国比较 pipeline aging_country_compare_pipeline( countries = c("charls", "hrs", "share"), outcome = "cognition_z", exposure = "education_years", covariates = c("age", "sex"), meta_method = "random", export_dir = "results/elderly/" ) # Cox pipeline(多国合并生存分析) aging_pooled_cox_pipeline( countries = c("charls", "hrs"), time_var = "survtime", event_var = "death", exposure = "frailty", adjust_vars = c("age", "sex") )