Skip to content

yunLin0/CHARLS-CTA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CHARLS 共病轨迹与医疗经济负担分析

基于 LCGA 轨迹建模 — 面板回归 — 机器学习政策模拟的递进分析框架

Language Data Methods License


研究背景

中国人口老龄化加速,慢性病共病(多重慢性病并存)在中老年群体中日益普遍。不同个体的共病演进模式存在显著异质性——有人长期保持低水平,有人快速进展为多重共病。这种差异如何转化为医疗经济负担的差异,是公共卫生政策制定的关键依据。

本研究利用 CHARLS 2011-2018 四轮追踪数据,通过"轨迹识别 → 截面比较 → 轨迹内分析 → 面板纵向 → 机器学习政策模拟"的递进框架,探究共病发展模式对医疗支出和灾难性卫生支出(CHE)的影响。


数据概览

指标 描述
数据来源 中国健康与养老追踪调查(CHARLS)Harmonized D 版
调查年份 2011 / 2013 / 2015 / 2018(四轮)
样本量 25,578 名中老年人(≥3 轮有效观测)
慢性病种类 高血压、糖尿病、脑卒中、关节炎、肺病、癌症、哮喘、肝病、肾病(9 种)
核心因变量 医疗总支出(连续) + 灾难性卫生支出 CHE(二分类)

分析框架

                         Q0 数据准备
                    提取四轮数据,构建长格式面板
                         │
                         ▼
                      Q1 轨迹识别
               变量筛选 → LCGA 轨迹建模 → 自动命名
             多分类 Logit: 什么人进入哪条轨迹?
                         │
          ┌──────────────┴──────────────┐
          ▼                              ▼
      Q2 轨迹间比较                  Q3 轨迹内分析
      (截面, wave=1)                (滞后一期设计)
                                      │
  OLS / 两阶段模型 /              Class×t 交互 (全面板)
  Logit(CHE) /                   分层 OLS+Logit (滞后)
  CHE OR 森林图                   随机森林 (滞后)
                                 费用负担趋势 + 系数热力图
          │                              │
          └──────────────┬──────────────┘
                         ▼
                   Q4 面板纵向分析
          RE / FE / GEE / PAF(反事实+Bootstrap)
          收入弹性 / 增长曲线 / 经济负担
                         │
                         ▼
                Q5 机器学习与政策模拟
        XGBoost + LightGBM / 模拟退火调参 / SHAP
        反事实报销比例模拟 (6种情景)
          城乡异质性 / 轨迹分层反事实
                         │
                         ▼
              政策建议: 报销比例提升策略
            轨迹分层精准干预 + 城乡优先级

快速开始

# 一键运行全流程(R分析引擎)
Rscript run_all.R

# 启动可视化平台
cd app && streamlit run app.py --server.port 8501

# 或按需运行单模块
Rscript "code/Q0Q1_数据准备与轨迹识别/code_Q0+Q1_数据准备与轨迹识别.R"
Rscript "code/Q2_轨迹间比较/code_Q2_轨迹间比较.R"
Rscript "code/Q3_轨迹内分析/code_Q3_轨迹内分析.R"
Rscript "code/Q4_面板纵向分析/code_Q4_面板纵向分析.R"
Rscript "code/Q5_机器学习预测与政策模拟/code_Q5_机器学习预测与政策模拟.R"

依赖关系:Q2-Q5 依赖 Q0+Q1 产出的 最终分析数据.rdata(位于 output/Q0Q1_数据准备与轨迹识别/),请先运行 Q0+Q1。所有脚本通过 rprojroot 自动定位项目根目录,无需手动设置工作路径。run_all.R 采用 Step 1 串行 Q0+Q1 → Step 2 并行 Q2-Q5 策略,最大化利用多核 CPU。

可视化平台:R 分析完成后,启动 app/ 目录下的 Streamlit 平台进行交互式数据探索。平台采用清新明亮配色,支持 9 个功能模块:数据总览、轨迹识别、轨迹间比较、轨迹内分析、面板纵向分析、机器学习预测、系统管理、问卷管理、地图可视化。


各模块方法概要

Q0/Q1 — 数据准备与轨迹识别

步骤 方法 说明
宽转长面板 pivot_longer 每人一行 → 每人每轮一行
缺失值处理 中位数 / 保守归零 二分类缺失→0,连续变量→中位数
支出变换 log(x+1) 处理右偏分布,系数可解释为百分比变化
变量筛选 Spearman 相关 + Kruskal-Wallis + eta² 大样本下同时关注统计显著与实际效应量
轨迹建模 LCGA(lcmm::hlme 潜类别增长分析,BIC + Entropy R² 准则选择类别数(ng=2~4)
影响因素 多分类 Logistic 回归 基线特征预测轨迹归属,报告 OR 值

Q2 — 轨迹间比较(截面)

模型 因变量 核心目的
OLS ln_total_med_total 轨迹类别对对数总支出的净效应(控制全部协变量)
两阶段模型 支出>0 + 条件支出 Logit(是否支出) + GLM-Gamma(条件支出金额),分解两个决策
Logit CHE (0/1) 轨迹类别对 CHE 风险的效应(OR 值)
OLS 残差诊断 Q-Q / 残差vs拟合值 / Scale-Location + BP 异方差检验

Q3 — 轨迹内分析(滞后一期设计)

滞后一期:上一波自变量 → 这一波结局,确保时间先后顺序

分析 设计 核心目的
Class × t 交互 全面板 支出/CHE 交互模型,Δ斜率系数比较
分层 OLS + Logit 滞后一期 各轨迹内什么因素驱动支出/CHE?系数热力图汇总
随机森林 滞后一期 支出 (%IncMSE) + CHE (MeanDecreaseAccuracy) 变量重要性
费用负担趋势 全面板 自付负担比趋势 + CHE 累积发生率 + 支出分布箱线图

Q4 — 面板纵向分析

方法 说明
Pooled OLS 基准模型
固定效应(FE) 控制所有不随时间变化的个体特征
随机效应(RE) 主模型,可估计轨迹类别系数
Hausman / BP LM RE vs FE 选择 + 面板模型 vs 混合 OLS 检验
分层面板 每条轨迹单独 RE + FE,报告 R²、ICC
GEE 可交换相关结构,支出 + CHE 双结局,总体平均效应
PAF 人群归因分值 — 反事实预测法(全员设为参照组)+ Bootstrap 95% CI
PAF 阈值敏感性 10%/25%/40% 三阈值 PAF 对比
收入弹性 log-log 模型判断医疗支出是必需品还是奢侈品
增长曲线 含二次时间项的线性混合效应模型(nlme::lme
经济负担 各轨迹平均支出、超额支出、CHE 超额率

Q5 — 机器学习与政策模拟(滞后一期设计)

模块 方法 说明
预测模型 XGBoost + LightGBM 双模型对比,70/30 按个体划分防泄露
超参数优化 模拟退火(Simulated Annealing) 6 维搜索空间,5-fold CV,20 次迭代
概率校准 Platt Scaling Logistic 回归校准模型输出概率
模型解释 SHAP 全局蜂群图 / 局部瀑布图 / 依赖图(报销比例)
政策视角 PDP + 描述性关联 报销比例对 CHE 的边际效应 + 城乡交互
异质性 城乡分层 + 轨迹分层 描述性对比各亚组 CHE 率与报销比例(注:reimb_rate 为内生变量)
报销比例视角的政策分析

注意reimb_rate(报销比例)为内生变量——仅就医者有非零值,高报销比例者往往是高支出群体。以下分析为描述性关联与模型边际效应,而非严格因果效应。

分析 方法 说明
PDP 主效应 部分依赖图 报销比例对 CHE 概率的边际效应
PDP 交互效应 部分依赖图 报销比例 × 城乡对 CHE 的交互影响
报销比例分组 × CHE 描述性统计 观察性关联(非因果)
城乡异质性 分组柱状图 各轨迹城乡 CHE 率差异
轨迹分层描述 水平柱状图 各轨迹 CHE 率与报销比例画像

输出图表清单

所有图表按分析阶段存放在 output/ 对应子文件夹,均为 300 dpi JPG 格式。

Q0-Q1 数据准备与轨迹识别(7 张图)
图表 文件名 类型 用途
共病总体纵向趋势 共病总体纵向趋势.jpg 折线图 全样本共病增长趋势
共病轨迹图 共病轨迹图.jpg 分组折线图 LCGA 识别的亚群增长模式
BIC 模型选择对比 BIC模型选择对比.jpg 柱状图 ng=2-4 类模型 BIC + Entropy R² 对比
相关性矩阵热力图 相关性矩阵热力图.jpg 热力图 变量间线性关联结构
VIF 诊断图 VIF多重共线性诊断.jpg 柱状图 多重共线性诊断(VIF < 5/10 阈值)
轨迹影响因素森林图 轨迹影响因素_森林图.jpg 森林图 多分类 Logit OR 值
CHE 阈值敏感性 CHE阈值敏感性.jpg 分组柱状图 10%/25%/40% 三阈值 CHE 率对比
Q2 轨迹间比较(3 张图)
图表 文件名 类型 用途
OLS 残差诊断 Q2_OLS残差诊断.jpg 三联图 Q-Q / 残差vs拟合值 / Scale-Location
Gamma 模型诊断 Q2_Gamma模型诊断.jpg 诊断图 Pregibon link test / 残差诊断
森林图 Q2_森林图_轨迹间比较.jpg 森林图 OLS 回归系数按变量类别分组
Q3 轨迹内分析(5 张图)
图表 文件名 类型 用途
滞后系数热力图 Q3_滞后系数热力图.jpg 热力图 各轨迹分层 OLS 系数对比
自付负担比趋势 Q3_自付负担比趋势.jpg 折线图 OOP/家庭消费趋势
CHE 累积发生率 Q3_CHE累积发生率.jpg 柱状图 各轨迹累积 CHE 风险
变量重要性(支出) Q3_变量重要性_支出.jpg 柱状图 随机森林 %IncMSE
变量重要性(CHE) Q3_变量重要性_CHE.jpg 柱状图 随机森林 MeanDecreaseAccuracy
Q4 面板纵向分析(3 张图)
图表 文件名 类型 用途
PAF 人群归因分值 Q4_PAF_人群归因分值.jpg 柱状图 各轨迹对 CHE 的归因贡献
PAF 阈值敏感性 Q4_PAF阈值敏感性.jpg 柱状图 多阈值 PAF 对比
经济负担 Q4_经济负担.jpg 分组柱状图 各轨迹平均支出与超额支出
Q5 机器学习与政策模拟(10 张图)
图表 文件名 类型 用途
调优收敛轨迹 Q5_调优收敛轨迹.jpg 折线图 模拟退火超参数搜索历史
ROC 曲线对比 Q5_ROC曲线对比.jpg ROC 曲线 XGBoost vs LightGBM AUC
ROC 曲线(含置信带) Q5_ROC曲线_置信带.jpg ROC+CI 带 带 Bootstrap 95% CI 的 ROC
ML 校准曲线 Q5_ML校准曲线.jpg 折线图 Platt Scaling 校准后预测概率 vs 实际 CHE 率
SHAP 重要性(支出) Q5_SHAP_支出重要性.jpg 蜂群图 支出预测特征重要性(全中文标签)
SHAP 重要性(CHE) Q5_SHAP_CHE重要性.jpg 蜂群图 CHE 预测特征重要性(全中文标签)
SHAP 依赖图(报销比例) Q5_SHAP_支出_lag_reimb_rate.jpg / Q5_SHAP_CHE_lag_reimb_rate.jpg 散点图 报销比例的 SHAP 边际效应
SHAP 瀑布图 Q5_SHAP_瀑布图_高风险个体.jpg / Q5_SHAP_瀑布图_低风险个体.jpg 瀑布图 个体级预测解释(高/低风险)
报销比例与 CHE 关联 Q5_报销比例与CHE关联.jpg 柱状图 报销比例分组 × 实际 CHE 率(描述性)
城乡异质性 Q5_城乡异质性.jpg 分组柱状图 各轨迹城乡 CHE 率差异(描述性)

项目结构

CHARLS-CTA/
├── data/                                    # 原始数据
│   ├── Harmonized_CHARLS_D/                 # D版整合数据(r1-r4, 2011-2018)
│   ├── Harmonized_CHARLS_C/                 # C版数据(D版已整合C版内容)
│   ├── Charls区划信息.dta
│   ├── H_CHARLS_D_Data变量名.xlsx
│   └── H_CHARLS_C_Data变量名.xlsx
│
├── code/                                    # R 代码
│   ├── _plot_theme.R                        # SCI 出版风格统一主题 + 色板
│   ├── share/plot_theme.R                   # 主题备份
│   ├── Q0Q1_数据准备与轨迹识别/
│   ├── Q2_轨迹间比较/
│   ├── Q3_轨迹内分析/
│   ├── Q4_面板纵向分析/
│   └── Q5_机器学习预测与政策模拟/
│
├── output/                                  # 分析结果(按阶段分文件夹)
│   ├── Q0Q1_数据准备与轨迹识别/
│   ├── Q2_轨迹间比较/
│   ├── Q3_轨迹内分析/
│   ├── Q4_面板纵向分析/
│   └── Q5_机器学习预测与政策模拟/
│
├── docs/                                    # 研究文档与报告
│   ├── 全网调研分析报告.md
│   ├── 文献综述_研究背景报告.md
│   ├── 统计方法研究报告.md
│   ├── 健康经济学方法论文献综述.md
│   ├── 统计学常用模型分类.md
│   ├── SPSSPRO统计方法完整清单.md
│   └── R语言使用方法.md
│
├── app/                                     # Streamlit 可视化平台
│   ├── app.py                              # 主仪表盘
│   ├── .streamlit/config.toml              # 主题配置
│   ├── requirements.txt                    # Python 依赖
│   ├── 核心原理.md                          # 平台技术文档
│   ├── 功能说明.md                          # 功能模块详解
│   ├── 使用说明.md                          # 使用指南
│   ├── utils/                              # 工具模块
│   │   ├── config.py                       # 全局配置:路径、配色(TRAJ_COLORS/COLORS)、变量映射、R脚本路径
│   │   ├── data_loader.py                  # CSV 数据加载器
│   │   ├── plot_style.py                   # Plotly 统一图表样式
│   │   ├── r_runner.py                     # R 脚本执行引擎
│   │   └── style.py                        # 全局 CSS 样式
│   └── pages/                              # 9 个功能页面(Streamlit 多页应用)
│
├── 方法学说明.md                             # 完整方法学文档(含公式推导)
├── 分析指南_Q0-Q5.md                         # Q0-Q5 分析流程指南
├── run_all.R                                # 全流程并行运行主控脚本
└── README.md

研究文档

文档 内容 难度
全网调研分析报告 通俗易懂版研究全景:项目是什么、为什么做、方法原理、创新点 ★☆☆
文献综述 八大主题文献综述:CHARLS、LCGA/GMM、CHE、面板数据、ML ★★☆
统计方法研究 七大统计方法详解:LCGA vs GMM、FE/RE/GEE、分位数回归 ★★★
健康经济学方法论 ML 应用、反事实政策模拟、PAF、2023-2026 前沿趋势 ★★☆
方法学说明 完整方法学文档:公式推导、统计原理、计量+卫生统计双视角解读 ★★★
统计模型分类 按研究目的整理的统计模型索引,含 R 函数和本项目应用 ★★☆
R 语言指南 R 语言基础操作、包管理、数据读写、可视化 ★☆☆

技术栈

语言 核心包
R haven dplyr tidyr lcmm plm nlme lme4 geepack quantreg nnet randomForest xgboost lightgbm shapviz pROC caret showtext

参考文献

Q0/Q1 — 数据来源与轨迹建模

# 文献 对应问题/模型 本项目应用
1 Zhao Y, Hu Y, Smith JP, et al. Cohort profile: the China Health and Retirement Longitudinal Study (CHARLS). IJE, 2014, 43(1): 61-68. 数据来源 — CHARLS 队列概况 Q0 数据提取的原始来源,25,578 名中老年人四轮追踪数据
2 Nagin DS. Analyzing developmental trajectories: a semiparametric, group-based approach. Psychol Methods, 1999, 4(2): 139-157. LCGA/GBTM 奠基文献 — 分组轨迹建模方法 Q1 纯 LCGA 无随机效应方法的理论依据,N=25,578 大样本无需随机效应
3 Nagin DS. Group-Based Modeling of Development. Harvard University Press, 2005. LCGA/GBTM 方法专著 — 系统阐述 GBTM Q1 分组轨迹建模的核心参考,N=25,578 大样本无需随机效应
4 Proust-Lima C, Philipps V, Liquet B. Estimation of extended mixed models using latent classes and latent processes: the R package lcmm. J Stat Softw, 2017, 78(2): 1-56. LCGA/GMM 软件 — R 包 lcmm Q1 使用 lcmm::hlme 进行共病轨迹建模,BIC 选类别数
5 Nylund KL, Asparouhov T, Muthén BO. Deciding on the number of classes in latent class analysis and growth mixture modeling. Struct Equ Modeling, 2007, 14(4): 535-569. 类别数选择 — BIC vs AIC 准则 Q1 用 BIC 比较 ng=2~4 模型,ΔBIC>10 为强证据
6 Cohen J. Statistical Power Analysis for the Behavioral Sciences. 2nd ed. Lawrence Erlbaum, 1988. 效应量分级 — 小/中/大效应判断标准 Q1 变量筛选时用

Q2 — 截面回归与 CHE 定义

# 文献 对应问题/模型 本项目应用
5 Xu K, Evans DB, Kawabata K, et al. Household catastrophic health expenditure: a multicountry analysis. The Lancet, 2003, 362(9378): 111-117. CHE 定义 — 灾难性卫生支出标准(OOP/家庭消费 ≥40%) Q0 计算 CHE 的核心标准,Q2 Logit 回归因变量
6 Mihaylova B, Briggs A, O'Hagan A, Thompson SG. Review of statistical methods for analysing healthcare resources and costs. Health Economics, 2011, 20(8): 897-916. 两阶段模型 / GLM-Gamma — 医疗支出分析方法综述 Q2 使用 Two-part Model 分解"是否就医"与"花多少",GLM-Gamma 直接对原始支出建模
7 Manning WG, Basu A, Mullahy J. Generalized modeling approaches to risk adjustment of skewed outcomes data. J Health Economics, 2005, 24(3): 465-488. 对数支出回归 — log 变换的重新转换偏误 Q2 OLS 用 log(x+1) 变换,系数通过 exp(β)-1 解释

Q3/Q4 — 面板模型与因果归因

# 文献 对应问题/模型 本项目应用
8 Wooldridge JM. Econometric Analysis of Cross Section and Panel Data. 2nd ed. MIT Press, 2010. 面板回归 — FE / RE / Hausman 检验 Q4 RE 主模型、FE 稳健性检验、Hausman 选择
9 Liang KY, Zeger SL. Longitudinal data analysis using generalized linear models. Biometrika, 1986, 73(1): 13-22. GEE — 广义估计方程 Q4 使用 GEE(可交换相关结构)估计总体平均效应
10 Singer JD, Willett JB. Applied Longitudinal Data Analysis. Oxford University Press, 2003. 增长曲线模型 — 含随机斜率的线性混合效应 Q4 使用 nlme::lme 拟合含二次时间项的增长曲线
11 Rockhill B, Newman B, Weinberg C. Use and misuse of population attributable fractions. Am J Public Health, 1998, 88(1): 15-19. PAF — 人群归因分值计算与解读 Q4 反事实预测法计算各轨迹的 PAF + Bootstrap 95% CI
12 Hernán MA, Robins JM. Causal Inference: What If. Chapman & Hall/CRC, 2020. 因果推断框架 — 反事实 / 混杂 / 时变暴露 Q3 滞后一期设计和 Q4/Q5 反事实模拟的理论基础
13 Koenker R, Bassett G. Regression quantiles. Econometrica, 1978, 46(1): 33-50. 分位数回归 — 条件分布不同位置的效应 Q3 滞后分位数回归分析支出分布的不均匀性
14 Breiman L. Random forests. Machine Learning, 2001, 45(1): 5-32. 随机森林 — 非线性变量重要性 Q3 使用 %IncMSE 排名各轨迹内支出/CHE 的驱动因素

Q5 — 机器学习预测与政策分析

# 文献 对应问题/模型 本项目应用
15 Chen T, Guestrin C. XGBoost: A scalable tree boosting system. KDD, 2016. XGBoost — 梯度提升树 Q5 CHE 分类模型之一,模拟退火调参
16 Ke G, Meng Q, Finley T, et al. LightGBM: A highly efficient gradient boosting decision tree. NeurIPS, 2017. LightGBM — leaf-wise 生长策略 Q5 CHE 分类模型之二,GOSS+EFB 加速
17 Lundberg SM, Lee SI. A unified approach to interpreting model predictions. NeurIPS, 2017. SHAP — 模型解释的统一框架 Q5 蜂群图、瀑布图、依赖图,解释 CHE 预测特征
18 Li Y, Wu Q, Xu L, et al. Factors affecting catastrophic health expenditure and impoverishment from medical expenses in China. BMJ Global Health, 2012. (被引 531 次) 报销比例基线数据 — 三大医保制度实际报销比例 Q5 报销比例变量的背景参考:NCMS ~45%、MIUR ~60%、MIUE ~70%
19 Wu Q, Yu F, Nie W. Improvement of the reduction in catastrophic health expenditure in China's public health insurance. PLOS One, 2018, 13(7): e0202449. (被引 29 次) 报销比例模拟方法 — 报销比例对 CHE 的影响 Q5 PDP 政策分析视角的方法参考
20 Zhao Y, Oldenburg B, Mahal A, et al. Effect of the catastrophic medical insurance on household catastrophic health expenditure: evidence from China. BMC Health Services Research, 2021, 21: 28. (被引 56 次) 大病保险效应 — 基本医保之上再报销 50% 对 CHE 的影响 Q5 报销比例分析的政策背景
21 Li Y, Wu Q, Yuan Z, et al. Do health insurances reduce catastrophic health expenditure in China? A systematic evidence synthesis. PLOS One, 2020, 15(8): e0237936. (被引 25 次) 医保-CHE 系统综述 — 不同医保类型对 CHE 减少的证据合成 Q5 城乡异质性描述分析的证据基础
22 Liu S, Zhang Y, Li Y, et al. Assessing the long-term effects of Basic Medical Insurance on catastrophic health spending in China. Health Policy and Planning, 2022, 37(7): 856-866. 医保长期效应 — 2012-2018 年间医保覆盖对 CHE 的动态影响 Q5 滞后一期设计的合理性支持
23 Meng Q, Xu L, Zhang Y, et al. Optimized reimbursement scheme of China's NCMS using Monte Carlo simulation. BMC Health Services Research, 2013, 13: 139. 报销方案优化 — 蒙特卡洛模拟寻找最优报销比例 Q5 报销比例分析方法论的补充参考

许可证

本研究使用 CHARLS 公开数据,仅供学术研究使用。请遵守 CHARLS 数据使用协议

About

本项目基于中国健康与养老追踪调查(CHARLS)2011-2018 年四轮追踪数据(N=25,578),采用"轨迹建模 → 截面比较 → 轨迹内分析 → 面板纵向 → 机器学习政策模拟"的递进分析框架,系统探究慢性病共病数量的纵向变化模式及其对医疗支出和灾难性卫生支出(CHE)的影响。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors