VIP 完整教程

Claude Code 多国数据分析实战教程

7国老年健康数据 → 一键生成SCI级分析报告:从Claude Code配置到论文图表的完整实战指南

📊 7国数据库 👨‍💻 Python自动化 🤖 AI辅助编程 ⏱️ 预计3-4小时

📌 前言

很多同学问我:"7个国家的数据,你是怎么一键生成报告的?"

今天这份VIP教程,我把整个流程完整拆解给你。案例背景:我的多国老年健康数据分析项目,涉及7个国际数据库,总样本量超过28万人。传统方法需要1-2个月的工作量,用Claude Code自动化后,1周完成数据分析+论文图表

第一部分:Claude Code 环境配置

1.1 什么是 Claude Code?

Claude Code 是 Anthropic 推出的 AI 编程助手:

  • 不是简单的代码补全,而是能处理复杂任务的AI编程伙伴
  • 支持多文件项目,可以理解整个代码库的上下文
  • 内置多种大模型(Claude系列),也支持接入第三方模型(如智谱GLM)
  • 终端集成,直接操作命令行,适合数据科学工作流

1.2 安装与配置(Windows)

Windows 用户推荐使用以下两种方式安装 Claude Code。根据智谱官方文档,建议优先使用 方式一:使用包管理器

方式一:使用 Chocolatey 包管理器(推荐)

  1. 以管理员身份打开 PowerShell
    • 右键点击「开始菜单」→ 选择「Windows PowerShell (管理员)」
    • 或按 Win + X → 选择「终端管理员 (管理员)」
  2. 安装 Chocolatey(如果未安装)
    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

    安装过程中出现 Do you want to run the script? 时,输入 y 并回车。

  3. 安装 Git for Windows(智谱官方要求)
    choco install git -y

    Claude Code 在 Windows 上需要 Git 环境。

  4. 安装 Python 3.12(数据分析必备)
    choco install python --version=3.12.0 -y

    本教程使用 Python 3.12,推荐安装此版本以保证兼容性。

  5. 安装 Node.js(Claude Code 依赖)
    choco install nodejs-lts -y

    推荐安装 LTS(长期支持)版本(18+)。

  6. 安装 Claude Code
    npm install -g @anthropic-ai/claude-code
  7. 验证安装
    python --version
    node --version
    claude --version

    如果三个命令都能输出版本号,表示安装成功。

方式二:直接下载安装包

  1. 下载并安装 Git for Windows
    • 访问 git-scm.com
    • 下载最新版本,安装时保持默认选项即可
  2. 下载并安装 Python 3.12
    • 访问 python.org
    • 下载 Python 3.12.x 版本
    • 运行安装程序,务必勾选「Add Python to PATH」
  3. 下载并安装 Node.js
    • 访问 nodejs.org
    • 下载 LTS(长期支持版),推荐 20.x 或 22.x 版本
    • 运行安装程序,勾选「Add to PATH」
  4. 打开命令提示符或 PowerShell 验证
    python --version
    node --version
    npm --version

    确认三个命令都能输出版本号。

  5. 安装 Claude Code
    npm install -g @anthropic-ai/claude-code

1.2.1 获取智谱 API Key

  1. 访问 智谱 AI 开放平台
  2. 注册/登录账号
  3. 进入「API 密钥」页面 → 点击「添加新的 API 密钥」→ 输入名称 → 确定
  4. 点击复制按钮保存密钥(每个密钥只会显示一次!)
⚠️ 重要提示:新用户注意
  • 新注册用户没有订阅套餐,API Key 里没有余额
  • 需要订阅套餐或进行身份认证
  • 智谱有赠送新手资源包,有一定免费额度

1.2.2 配置 GLM 模型(关键步骤)

参考智谱官方文档和小红书教程,有两种配置方式:

方式一:修改配置文件(推荐)
  1. 找到配置文件

    Claude Code 配置文件位于:%USERPROFILE%\.claude\settings.json

    在文件资源管理器地址栏输入:%USERPROFILE%\.claude\ 即可到达

  2. 创建或修改 settings.json

    将以下内容粘贴进去,替换成你的 API Key

    {
     "env": {
      "ANTHROPIC_AUTH_TOKEN": "你的智谱API Key",
      "ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
      "API_TIMEOUT_MS": "3000000",
      "ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-4.7",
      "ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-4.7",
      "ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-4.7"
     }
    }
  3. 保存并重启终端

    保存配置文件后,新开一个 PowerShell 窗口(否则环境变量可能没更新)

方式二:设置系统环境变量
  1. 打开环境变量设置
    • 在 Windows 搜索栏输入「环境变量」
    • 选择「编辑系统环境变量」
  2. 添加用户变量

    在「用户变量」区域点击「新建」,依次添加以下变量:

    变量名 变量值(示例)
    ANTHROPIC_AUTH_TOKEN 你的智谱API Key
    ANTHROPIC_BASE_URL https://api.z.ai/api/anthropic
    ANTHROPIC_DEFAULT_SONNET_MODEL glm-4.7
    ANTHROPIC_DEFAULT_OPUS_MODEL glm-4.7
  3. 保存并重启

    保存所有环境变量后,重启电脑确保生效。

1.2.3 验证配置成功

  1. 新开一个 PowerShell 窗口,输入:
    claude
  2. 如果配置成功,你会看到类似以下信息:
    • 显示 GLM-4.7glm-4 等字样
    • 模型可以正常输出回复
  3. 在 Claude Code 中输入 /status 可查看当前使用的模型

1.2.4 GLM 模型选择建议

模型 推荐场景 智谱环境变量值
GLM-4 日常编程任务,性价比高 glm-4glm-4-flash
GLM-4.7 复杂任务,推荐使用 glm-4.7
GLM-5 最新最强模型 glm-5

切换模型只需修改 settings.json 中的模型名称,然后重启终端即可。

1.2.5 升级与版本管理

# 检查当前版本
claude --version

# 升级到最新版本
claude update

智谱官方建议使用 Claude Code 2.1.42 及以上版本。

⚠️ 常见问题
  • npm 报错权限不足:以管理员身份运行 PowerShell
  • 找不到 claude 命令:关闭终端后重新打开,或重启电脑
  • API Key 错误:检查是否复制完整,注意不要有多余空格
  • 配置不生效:确认 JSON 格式正确,关闭所有 Claude Code 窗口后重新打开
  • 模型没有切换:检查 settings.json 中的模型名称是否正确,尝试删除该文件后重新配置

1.3 安装与配置(macOS)

# 安装 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 安装 Python
brew install [email protected]

# 创建虚拟环境
python3.12 -m venv venv
source venv/bin/activate

# 安装 Claude Code
npm install -g @anthropic-ai/claude-code

第二部分:输入数据准备

2.1 数据结构要求

你的7个国家CSV文件需要满足以下标准格式:

文件名 国家/地区 样本量 数据库名称
charls.csv 中国 ~20,000 CHARLS
elsa.csv 英国 ~10,000 ELSA
hrs.csv 美国 ~20,000 HRS
share.csv 欧洲 ~140,000 SHARE
klosa.csv 韩国 ~10,000 KLoSA
lasi.csv 印度 ~70,000 LASI
mhas.csv 墨西哥 ~15,000 MHAS

2.2 变量命名标准化

关键:各国数据库的变量名不同,需要在 config.py 中建立映射表:

标准名称 CHARLS ELSA HRS SHARE
age ba004_w3_1 age age age
gender ba000_w2_2 sex gender gender
education bd001_w3 edqual edyrs years_edu
cognition cognition_total cogtot cogtot cognitive_score

2.3 数据质量控制检查清单

  • 每个CSV文件都有唯一的标识列(如 idrespondent_id
  • 年龄变量的缺失值 < 5%
  • 关键变量(如认知评分)的数据类型为数值型
  • 分类变量(如性别)已编码为数值(0/1或1/2)
  • 各数据库的样本量与预期一致

VIP专属 2.4 7国 CSV 数据下载

本教程配套提供教程中“原始数据目录”所使用的 7 个按国拆分 CSV 文件(清洗后版),可直接用于分析复现。也就是说,你在代码里看到的 csv 版本 清洗后/ 目录,下载后对应的就是这个 ZIP 里的 7 个国家 CSV 文件。

📊 数据规格说明

数据库 清洗后样本量 核心变量数 文件大小
CHARLS(中国) 18,452 127 128 MB
ELSA(英国) 9,847 134 93 MB
HRS(美国) 19,103 156 262 MB
SHARE(欧洲) 132,456 142 222 MB
KLoSA(韩国) 9,216 118 31 MB
LASI(印度) 65,782 125 68 MB
MHAS(墨西哥) 13,904 121 52 MB

🔧 清洗流程(CFA标准化)

  1. 年龄筛选(Age Filter)
    • 纳入标准:≥45岁
    • 排除:年龄缺失或<45岁的样本
    • 约排除8-12%原始样本
  2. 关键变量完整性检查
    • 必需变量:age, gender, education
    • 缺失任一即排除
    • 约排除3-5%样本
  3. 缺失值阈值筛选
    • 标准:缺失比例 < 30%
    • 逐行计算缺失变量占比
  4. 异常值处理(Winsorization)
    • 连续变量:1%-99%分位数截断
    • 认知评分:剔除明显不合理的极端值
  5. 变量标准化(Standardization)
    • 统一变量名(如所有数据库的性别变量统一为gender)
    • 统一编码(男性=1,女性=0)
    • 计算衍生变量(年龄分组、慢性病计数等)

📦 数据包内容

当前 multi-country-data-vip.zip 实际包含以下文件:

  • charls.csvelsa.csvhrs.csvshare.csvklosa.csvlasi.csvmhas.csv
  • variables_dictionary.xlsx - 变量名对照表(7国原始名→标准名)
  • README.md - 数据说明、变量类别与使用示例

如需查看清洗逻辑,可直接参考本教程上方的 2.1–2.3 小节与后文代码示例。

📥 下载 7国原始 CSV 数据包(VIP专属)

压缩包约144MB | 解压后约855MB | 仅供学术研究使用

第二部分+:对需求的终极艺术(科研版)

核心原则:不要急着写代码!
「先理解需求,给出实现思路,我们先讨论,看还有啥需要我决策的点?ultrathink」

在多国数据分析项目中,对需求往往比写代码更重要。以下是我总结的科研场景需求对话模板:

2.5.1 首次需求确认(苏格拉底式提问)

我说的需求你明白了吗?如果有不清楚的地方一定要先问我,确认没问题后再进行开发。 对于这个问题,我们还有哪些没有考虑到的? 使用AskUserQuestion工具,像苏格拉底一样帮助我完善需求。具体包括: 1. 研究设计层面: - 这7个国家数据库的时间范围是否一致? - 认知功能的测量工具在各国有何差异? - 互联网使用的定义是否可比? 2. 统计分析层面: - 是否需要加权处理(如SHARE的复杂抽样设计)? - 缺失值处理策略:删除还是插补? - 中介分析的Bootstrap次数设置多少合适? 3. 输出要求层面: - 需要生成哪些图表?森林图、趋势图、热力图? - 表格格式:CSV、LaTeX还是Word? - 是否需要进行亚组分析(如按性别、年龄分层)? 4. 潜在风险提示: - 各国样本量差异巨大(SHARE 14万 vs KLoSA 1万),是否会影响结果稳定性? - 是否需要考虑多水平模型(个人嵌套于国家)? 因为我是研究者,可能有疏漏,请帮我全面思考。

2.5.2 技术选型决策对话

关于这个多国分析项目,我需要你像技术顾问一样帮我决策: 【当前困惑】 1. 数据加载:用pandas还是polars?SHARE有14万样本,内存可能吃紧 2. 统计模型:statsmodels还是linearmodels? 3. 可视化:matplotlib还是plotly?需要交互式图表吗? 4. 并行计算:multiprocessing还是joblib? 【约束条件】 - 代码需要可复现(我的导师也要能跑) - 图表要符合Lancet/Nature的投稿要求 - 内存限制:32GB RAM 请用AskUserQuestion工具,逐个选项帮我分析利弊。

2.5.3 代码审查前需求对齐

在写代码之前,我们先对齐一下需求: 【我要做的分析】 1. 主效应:教育 → 认知功能(7国分别回归) 2. 中介效应:教育 → 互联网 → 认知(Bootstrap) 3. 异质性检验:Q统计量、I² 4. Meta汇总:固定效应模型 【请确认】 - 这个分析顺序合理吗? - 是否需要调整协变量(如年龄、性别、慢性病)? - 变量标准化怎么处理(Z-score还是原始值)? - 输出格式有什么特殊要求? 请用AskUserQuestion列出需要我确认的所有决策点。

2.5.4 实战案例:需求迭代对话

以下是一个真实的需求迭代过程:

轮次 用户输入 AI行动 结果
第1轮 "帮我分析7国数据" AskUserQuestion:询问数据库名称、变量定义、研究问题 明确7国名称和认知功能变量
第2轮 "CHARLS的变量名是ba004_w3_1" AskUserQuestion:询问其他6国的对应变量名 完成变量映射表
第3轮 "要做中介分析" AskUserQuestion:中介变量是什么?Bootstrap次数? 确定互联网使用为中介
第4轮 "输出要SCI级别" AskUserQuestion:目标期刊?图表样式要求? 确定Lancet配色方案

2.5.5 需求文档化模板

每次对话后,让AI生成一份需求文档:

请根据我们的讨论,生成一份「需求确认书」,包含: 1. 项目背景和目标 2. 数据来源和范围(7国样本量) 3. 核心变量定义(附映射表) 4. 分析流程(5步法) 5. 输出要求(图表清单) 6. 技术栈选择(Python包列表) 7. 待决策事项(如果有) 我确认无误后,你再开始写代码。

2.5.6 为什么这招在科研中特别有效?

  • 避免返工:科研数据敏感,一旦方向错误,可能要重新清洗数据
  • 明确假设:统计方法的选择必须基于研究假设,不能随意
  • 导师沟通:需求文档可以直接发给导师确认,减少沟通成本
  • 可复现性:完整的需求记录是论文方法部分的基础

第三部分:大模型配置与选择策略

3.1 模型能力对比(2026年最新)

模型 提供商 适用场景 优势 成本 推荐度
GLM-4.7 / GLM-5 智谱AI 日常分析、中文场景 中文理解好、国内访问快、Coding Plan 优惠 ¥0.005/1K tokens ⭐⭐⭐⭐⭐
Kimi K2 月之暗面 长文本处理、推理任务 K2.5 效果可媲美 Opus、长上下文 按量计费 ⭐⭐⭐⭐⭐
DeepSeek V3 深度求索 代码生成、数学推理 性价比高、代码能力强 ¥0.001/1K tokens ⭐⭐⭐⭐
Claude Sonnet 4.6 Anthropic 复杂分析、代码生成 代码能力强、上下文理解深 $3/百万 tokens ⭐⭐⭐⭐
Claude Opus 4.6 Anthropic 高难度任务、架构设计 最强推理能力 $15/百万 tokens ⭐⭐⭐

💡 国内用户推荐方案

首选:智谱 GLM-4.7(通过 Coding Plan Pro,100元/月,含赠送额度)

备选1:Kimi K2(长文本场景,效果媲美 Opus)

备选2:DeepSeek(性价比最高,代码能力强)

体验:智谱官方 7 天体验卡仅需 4.99元(见 3.5 节)

3.2 GLM Agent配置代码

import anthropic
import os

class GLMAgent:
  def __init__(self):
    self.client = anthropic.Anthropic(
      api_key=os.getenv("ANTHROPIC_AUTH_TOKEN"),
      base_url=os.getenv("ANTHROPIC_BASE_URL")
    )
    self.model = os.getenv("ANTHROPIC_MODEL", "glm-4.7")

  def analyze(self, prompt, system_prompt=None):
    messages = []
    if system_prompt:
      messages.append({"role": "system", "content": system_prompt})
    messages.append({"role": "user", "content": prompt})

    response = self.client.messages.create(
      model=self.model,
      max_tokens=4096,
      temperature=0.3,
      messages=messages
    )
    return response.content[0].text

3.3 国内模型配置(Kimi / DeepSeek)

Claude Code 默认连接 Anthropic 官方接口。国内用户可通过环境变量重定向至国产模型,实现无缝接入。

3.3.1 接入 Kimi(月之暗面)

推荐:Kimi K2.5 效果可媲美 Claude Opus,适合长文本和复杂推理任务。
# 获取 API Key:https://platform.moonshot.cn/

# 设置环境变量(在终端执行)
export ANTHROPIC_BASE_URL="https://api.moonshot.cn/anthropic"
export ANTHROPIC_AUTH_TOKEN="你的_Kimi_API_Key"
export ANTHROPIC_MODEL="kimi-k2-thinking-turbo"

3.3.2 接入 DeepSeek(深度求索)

推荐:DeepSeek 性价比最高,代码生成能力强。
# 获取 API Key:https://platform.deepseek.com/

# 设置环境变量(在终端执行)
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_AUTH_TOKEN="你的_DeepSeek_Key"
export ANTHROPIC_MODEL="deepseek-chat"

3.4 智谱 Coding Plan 配置指南(详细步骤)

智谱 AI 提供的 GLM Coding Plan 是国内用户使用 Claude Code 的最佳方案之一。

3.4.1 步骤一:安装 Claude Code

前提条件

  • 安装 Node.js 18+ 环境
  • MacOS 用户推荐使用 nvmHomebrew 安装 Node.js(不推荐直接安装包,可能遇到权限问题)
  • Windows 用户需安装 Git for Windows
# 进入命令行界面,安装 Claude Code
npm install -g @anthropic-ai/claude-code

# 验证安装成功
claude --version
# 输出示例:2.0.14 (Claude Code)

💡 Cursor 用户快捷方式

如果你使用 Cursor,可以直接在其中输入命令,Cursor 会引导你完成安装:

Help me install Claude Code

⚡ 快捷方式:Coding Tool Helper(推荐新手使用)

智谱官方提供了 Coding Tool Helper 工具,可以自动完成以下步骤的配置:

# 一键运行 Coding Tool Helper
npx @z_ai/coding-helper

按照界面提示操作,即可自动完成工具安装、套餐配置、MCP 服务器管理。如果你想手动配置,请继续阅读以下步骤。

📝 详细介绍见 9.7 推荐工具

3.4.2 步骤二:配置 GLM Coding Plan(手动配置)

获取智谱 API Key 后,设置以下环境变量:

# 智谱 GLM 配置(在终端执行)
export ANTHROPIC_BASE_URL="https://open.bigmodel.cn/api/anthropic"
export ANTHROPIC_AUTH_TOKEN="你的_智谱_API_Key"
export ANTHROPIC_MODEL="glm-4.7"

切换使用模型:修改配置文件 ~/.claude/settings.json

{
 "env": {
  "ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-4.5-air",
  "ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-4.7",
  "ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-4.7"
 }
}
注意:使用 GLM-5,需将上方参数值修改为 "glm-5"

3.4.3 步骤三:启动 Claude Code

# 进入你的代码工作目录
cd /path/to/your/project

# 启动 Claude Code
claude

启动后:

  1. 若遇到「Do you want to use this API key」选择 Yes
  2. 选择信任 Claude Code 访问文件夹里的文件

3.4.4 验证配置成功

启动一个新的命令行窗口,运行 claude,在 Claude Code 中输入:

/status

确认模型状态显示为 glm-4.7 或你配置的模型。

3.4.5 常见问题排查

⚠️ 配置不生效?

  1. 关闭所有 Claude Code 窗口,重新打开一个新的命令行窗口
  2. 尝试删除 ~/.claude/settings.json 文件,重新配置环境变量
  3. 检查 JSON 格式是否正确(使用在线 JSON 校验工具)

3.4.6 升级 Claude Code

# 检查当前版本
claude --version

# 升级到最新版本
claude update
推荐版本:Claude Code 2.0.14+ 版本验证 OK。

3.5 购买推荐与价格对比

3.5.1 智谱 AI 购买方案

方案 价格 适合人群 包含内容
7天体验卡 ¥4.99 新用户尝鲜 7天 Coding Plan 基础额度
Coding Plan Pro ¥100/月 日常开发者、科研人员 大额额度 + 赠送权限(可分享)

推荐 智谱官方购买渠道

笔者自用方案:Coding Plan Pro(¥100/月),含赠送权限,可以分享给同学使用。

入门体验:7天体验卡仅需 ¥4.99,适合新用户快速体验 Claude Code + GLM 的强大组合。

🔗 官方链接

3.5.2 其他模型购买方式

模型 获取方式 链接
Kimi 月之暗面开放平台 platform.moonshot.cn
DeepSeek 深度求索开放平台 platform.deepseek.com

3.6 环境变量永久配置(推荐)

为避免每次启动终端都要设置环境变量,建议将配置写入 shell 配置文件:

macOS / Linux(Zsh)

# 编辑配置文件
nano ~/.zshrc

# 添加以下内容(选择一种模型配置)
# 智谱 GLM
export ANTHROPIC_BASE_URL="https://open.bigmodel.cn/api/anthropic"
export ANTHROPIC_AUTH_TOKEN="你的_智谱_API_Key"
export ANTHROPIC_MODEL="glm-4.7"

# 保存后生效
source ~/.zshrc

Windows(PowerShell)

# 编辑配置文件
notepad $PROFILE

# 添加以下内容(选择一种模型配置)
$env:ANTHROPIC_BASE_URL = "https://open.bigmodel.cn/api/anthropic"
$env:ANTHROPIC_AUTH_TOKEN = "你的_智谱_API_Key"
$env:ANTHROPIC_MODEL = "glm-4.7"

# 保存后重启 PowerShell

第四部分:核心代码架构

4.1 项目结构

路径 说明
csv 版本 清洗后/ 原始数据目录(7个CSV文件)
src/config.py 全局配置(变量映射、配色方案)
src/data_loader.py 数据加载模块
src/preprocessing.py 预处理模块(纳排标准)
src/analysis/cognition.py 认知功能分析
src/analysis/mediation.py 中介分析(Bootstrap)
src/analysis/frailty.py 虚弱分析
src/visualization/forest_plot.py 森林图绘制
src/visualization/plots.py 通用图表
outputs/figures/ 输出图表目录
outputs/tables/ 输出表格目录
run_analysis.py 主程序入口
requirements.txt Python依赖包列表

4.2 DataLoader模块

import pandas as pd
from typing import Dict, List
from tqdm import tqdm
from src.config import VARIABLE_MAPPING

class DataLoader:
  """多国数据加载器"""

  def __init__(self, data_dir: str = "csv 版本 清洗后"):
    self.data_dir = data_dir
    self.loaded_data = {}

  def load_database(self, db_name: str) -> pd.DataFrame:
    """加载单个数据库,自动标准化变量名"""
    file_path = f"{self.data_dir}/{db_name.lower()}.csv"
    df = pd.read_csv(file_path, low_memory=False)
    df['_database'] = db_name
    df = self._standardize_columns(df, db_name)
    print(f"✓ {db_name}: {len(df):,} 样本")
    return df

  def _standardize_columns(self, df: pd.DataFrame, db_name: str) -> pd.DataFrame:
    """将各国变量名映射到统一标准"""
    df = df.copy()
    for standard_name, mapping in VARIABLE_MAPPING.items():
      if db_name in mapping:
        original_name = mapping[db_name]
        if original_name in df.columns:
          df[standard_name] = df[original_name]
    return df

  def load_all(self, db_list: List[str]) -> Dict[str, pd.DataFrame]:
    """批量加载多个数据库"""
    data = {}
    for db_name in tqdm(db_list, desc="加载数据库"):
      data[db_name] = self.load_database(db_name)
    self.loaded_data = data
    return data

第五部分:可视化与报告生成

5.1 森林图绘制

import matplotlib.pyplot as plt
from src.config import COUNTRY_COLORS

class ForestPlotter:
  def plot(self, results_df, title, output_path):
    fig, ax = plt.subplots(figsize=(10, 8))
    databases = results_df['database'].unique()

    for i, db in enumerate(reversed(databases)):
      db_data = results_df[results_df['database'] == db].iloc[0]
      beta = db_data['beta']
      se = db_data['se']
      ci_lower = beta - 1.96 * se
      ci_upper = beta + 1.96 * se
      color = COUNTRY_COLORS.get(db, '#333333')

      ax.plot([ci_lower, ci_upper], [i, i], color=color, linewidth=2)
      ax.scatter(beta, i, color=color, s=100, zorder=5)
      ax.text(beta, i + 0.2, f'{beta:.3f}', ha='center', fontsize=9)

    ax.axvline(x=0, color='gray', linestyle='--', alpha=0.5)
    ax.set_yticks(range(len(databases)))
    ax.set_yticklabels(reversed(databases))
    ax.set_title(title, fontweight='bold')

    plt.savefig(output_path, dpi=300, bbox_inches='tight')
    return fig

第六部分:运行与调试

6.1 运行命令

# 激活虚拟环境
source venv/bin/activate # macOS/Linux
# 或
venv\Scripts\activate   # Windows

# 安装依赖
pip install -r requirements.txt

# 运行分析
python run_analysis.py

6.2 依赖包列表

pandas>=2.0.0
numpy>=1.24.0
scipy>=1.10.0
statsmodels>=0.14.0
matplotlib>=3.7.0
seaborn>=0.12.0
plotly>=5.15.0
tqdm>=4.65.0
anthropic>=0.8.0
pyyaml>=6.0

第七部分:结果解读

7.1 生成的文件清单

文件名 说明
figures/figure0_consort_flowchart.png 纳排流程图
figures/figure1_sample_size.png 样本量对比
figures/figure3_forest_plot.png 森林图(主效应)
figures/figure4_age_trend.png 年龄趋势图
figures/figure6_mediation_comparison.png 中介效应比较
tables/table1_baseline_characteristics.csv 基线特征表
tables/table2_cognition_regression_results.csv 回归结果表
tables/table3_mediation_results.csv 中介效应表
report.md 综合分析报告

7.2 关键指标解读

字段 含义 判断标准
beta 回归系数 正数表示正向关联
se 标准误 越小越精确
p_value P值 <0.05为显著
i_squared 异质性I² >50%表示高异质性
proportion 中介比例 解释总效应的比例

第八部分:进阶技巧

8.1 Makefile自动化

.PHONY: install run clean

install:
	pip install -r requirements.txt

run:
	python run_analysis.py

run-frailty:
	python run_frailty_analysis.py

clean:
	rm -rf outputs/figures/*.png outputs/tables/*.csv

8.2 并行处理加速

from multiprocessing import Pool

def process_database(args):
  db_name, df = args
  preprocessor = Preprocessor()
  return db_name, preprocessor.process_single(df, db_name)

# 并行处理7个数据库
with Pool(4) as p:
  results = p.map(process_database, data.items())

8.3 Agent Skills 工具

Vercel Labs 推出的开源 Agent Skills 管理工具,支持 37+ 个 AI 代理(包括 Claude Code、Codex、Cursor、OpenCode 等),可以快速安装、管理和更新 AI 技能包。

核心功能

  • 一键安装技能: 从 GitHub、GitLab 或本地路径安装技能包
  • 多代理支持: 同时为多个 AI 工具安装技能
  • 技能管理: 列表、搜索、更新、删除技能
  • 灵活作用域: 支持项目级和全局级安装

基本用法

安装技能

# 从 GitHub 仓库安装
npx skills add vercel-labs/agent-skills

# 安装特定技能
npx skills add vercel-labs/agent-skills --skill vercel-react-best-practices

# 安装到全局(所有项目可用)
npx skills add vercel-labs/agent-skills -g

# 为特定 AI 安装
npx skills add vercel-labs/agent-skills -a claude-code -a cursor

管理技能

# 列出已安装技能
npx skills list

# 搜索技能
npx skills find typescript

# 更新所有技能
npx skills update

# 删除技能
npx skills remove vercel-react-best-practices

应用场景

  • 团队协作: 将技能包提交到项目,团队成员共享 AI 能力
  • 个人效率: 全局安装常用技能,跨项目复用
  • CI/CD 集成: 自动化安装技能,确保构建环境一致

实用技巧

# 查看仓库中的所有技能
npx skills add vercel-labs/agent-skills --list

# 非交互式安装(适合 CI/CD)
npx skills add vercel-labs/agent-skills --skill vercel-react-best-practices -g -a claude-code -y

# 安装所有技能到所有代理
npx skills add vercel-labs/agent-skills --all

推荐技能包:

  • vercel-react-best-practices - React & Next.js 最佳实践
  • vercel-composition-patterns - React 组合模式
  • web-design-guidelines - Web 设计规范

更多技能: https://github.com/vercel-labs/agent-skills

第九部分:常见问题 FAQ

以下是在使用本项目过程中常见的问题与解答,由实际使用中的对话整理而成。

9.1 项目结构与代码组织

❓ Q1: 项目有两个选题,代码是如何组织的?

A: 项目包含两个独立的研究选题,共享数据加载和预处理模块,但分析逻辑分开:

  • 选题1(SES与认知功能):使用 run_analysis.py 入口,输出到 outputs/ 目录
  • 选题2(身心联合虚弱):使用 run_frailty_analysis.py 入口,输出到 outputs_topic2/ 目录

两个选题共用:

  • src/config.py - 变量映射、配色方案
  • src/data_loader.py - DataLoader 类
  • src/preprocessing.py - Preprocessor 类(纳排标准)

❓ Q2: 需要安装哪些 Python 包?

A: 核心依赖包如下(详见 requirements.txt):

# 数据处理
pandas>=2.0.0
numpy>=1.24.0

# 统计分析
scipy>=1.10.0
statsmodels>=0.14.0

# 可视化
matplotlib>=3.7.0
seaborn>=0.12.0
plotly>=5.15.0

# 工具
tqdm>=4.65.0
anthropic>=0.8.0 # 用于 Claude Code 集成
pyyaml>=6.0

安装命令:pip install -r requirements.txt

9.2 变量映射

❓ Q3: 如何查看每个数据库的变量映射?

A: 所有变量映射定义在 src/config.pyVARIABLE_MAPPING 字典中:

# src/config.py
VARIABLE_MAPPING = {
  'age': {
    'CHARLS': 'qg_age',
    'ELSA': 'age',
    'HRS': 'ragender', # 注意:实际映射可能不同
    # ...
  },
  'gender': {
    'CHARLS': 'ba000_w2_3',
    'ELSA': 'sex',
    # ...
  },
  'education': {
    'CHARLS': 'bd001_w2_4',
    'ELSA': 'edqual',
    # ...
  },
  # ... 更多变量
}

每个标准变量名(如 'age')下,记录了各国数据库的原始变量名。

❓ Q4: 如何添加新的变量映射?

A:src/config.py 中添加新的映射项:

# 1. 在 VARIABLE_MAPPING 中添加新变量
VARIABLE_MAPPING = {
  # ... 现有变量

  'your_new_variable': {
    'CHARLS': '原始变量名_CHARLS',
    'ELSA': '原始变量名_ELSA',
    'HRS': '原始变量名_HRS',
    # ... 其他数据库
  },
}

# 2. 如果需要,在 INCLUSION_CRITERIA 中添加纳排标准
INCLUSION_CRITERIA = {
  'age_range': (45, 100),
  'your_new_variable': {...}, # 新的筛选条件
}

添加后,DataLoader 会自动应用新的映射规则。

9.3 运行分析

❓ Q5: 如何运行分析?

A: 根据选题选择对应的入口脚本:

# 激活虚拟环境(如需要)
source venv/bin/activate # macOS/Linux

# 选题1:SES与认知功能
python run_analysis.py

# 选题2:身心联合虚弱
python run_frailty_analysis.py

运行完成后,结果会自动保存到对应的输出目录。

❓ Q6: 如何只分析特定国家/数据库?

A: 修改入口脚本中的数据库列表:

# 方法1:修改 run_analysis.py 中的 DATABASES 列表
DATABASES = ['CHARLS', 'HRS'] # 只分析中国和美国

# 方法2:在代码中动态指定
from src.config import DATABASES

# 只选择特定数据库
selected_dbs = ['CHARLS', 'ELSA', 'HRS'] # 中国、英国、美国
data = loader.load_all(selected_dbs)

支持的数据库:CHARLS(中国)、ELSA(英国)、HRS(美国)、SHARE(欧洲)、KLoSA(韩国)、LASI(印度)、MHAS(墨西哥)

9.4 输出文件

❓ Q7: 输出文件保存在哪里?

A: 两个选题有各自的输出目录:

选题 输出目录 内容
选题1(SES与认知) outputs/ figures/、tables/、report.md
选题2(身心虚弱) outputs_topic2/ figures/、tables/、report.md

典型输出结构:

outputs/
├── figures/
│  ├── figure0_consort_flowchart.png # 纳排流程图
│  ├── figure1_sample_size.png    # 样本量对比
│  ├── figure3_forest_plot.png    # 森林图
│  └── ...
├── tables/
│  ├── table1_baseline_characteristics.csv # 基线特征
│  ├── table2_regression_results.csv    # 回归结果
│  └── ...
└── report.md # 综合分析报告

❓ Q8: 如何修改输出目录?

A: 在入口脚本中修改 OUTPUT_DIR 变量:

# run_analysis.py 或 run_frailty_analysis.py

# 修改前
OUTPUT_DIR = "outputs"

# 修改后
OUTPUT_DIR = "my_custom_output"

# 或使用配置文件
from src.config import OUTPUT_DIR
OUTPUT_DIR = "path/to/your/output"

也可以在 src/config.py 中统一配置:

# src/config.py
OUTPUT_DIR = "outputs" # 修改此行
OUTPUT_DIR_TOPIC2 = "outputs_topic2" # 选题2的输出目录

9.5 常见错误排查

⚠️ Q9: 提示找不到模块/文件?

A: 检查以下几点:

  1. 确保在项目根目录运行脚本:cd /path/to/20260221_多国老年数据分析
  2. 确保数据文件在 csv 版本 清洗后/ 目录下
  3. 检查文件名是否正确(区分大小写)
  4. 确保已安装所有依赖:pip install -r requirements.txt

⚠️ Q10: 变量映射后全是空值?

A: 可能原因:

  1. 原始变量名拼写错误 → 检查 VARIABLE_MAPPING 中的映射
  2. 原始数据中该变量名不存在 → 用 df.columns.tolist() 查看实际列名
  3. CSV 读取时编码问题 → 尝试 pd.read_csv(file, encoding='utf-8')

调试代码:

# 检查原始数据列名
df = pd.read_csv("csv 版本 清洗后/charls.csv")
print(df.columns.tolist())

# 检查映射是否生效
from src.config import VARIABLE_MAPPING
print(VARIABLE_MAPPING['age'])

⚠️ Q11: 内存不足/运行很慢?

A: 优化建议:

  1. 分批处理:只加载需要的数据库,而非全部7个
  2. 使用并行处理:参考教程 8.2 节的 multiprocessing 示例
  3. 减少内存占用:读取时指定 dtype 参数
# 减少内存占用
df = pd.read_csv(file, dtype={'column1': 'int32', 'column2': 'category'})

# 分批处理
for db_name in ['CHARLS', 'HRS', 'ELSA']:
  df = loader.load_database(db_name)
  # 处理 df...
  del df # 释放内存

9.6 Claude Code 使用技巧

💡 Q12: 如何让 Claude Code 理解项目结构?

A: 建议使用以下对话模板:

# 第一步:让 Claude 了解项目背景
"这是一个多国老年健康数据分析项目,包含7个数据库
(CHARLS、ELSA、HRS、SHARE、KLoSA、LASI、MHAS),
研究选题是 SES 与认知功能的关系。"

# 第二步:提出具体需求
"我想添加一个新的变量映射,变量名是 XXX,
在 CHARLS 中叫 xxx_charls,在 ELSA 中叫 xxx_elsa..."

# 第三步:让 Claude 解释代码
"请解释 src/preprocessing.py 中纳排标准的实现逻辑"

💡 Q13: Claude Code 可以帮我做什么?

A: 在本项目中,Claude Code 可以:

  • 代码生成:根据需求自动生成数据处理、统计分析代码
  • 变量映射:帮助查找和添加各国数据库的变量映射
  • 结果解读:解释回归系数、中介效应等统计指标
  • 调试排错:定位代码错误并提供修复方案
  • 文档生成:自动生成分析报告、方法学描述
  • 可视化:生成森林图、热图等科研图表

9.7 推荐工具

🛠️ CC Switch - AI CLI 工具管理神器

GitHub: farion1231/cc-switch

CC Switch 是一款跨平台桌面应用,让你用一个界面管理 Claude Code、Codex、Gemini CLI、OpenCode、OpenClaw 五大 AI CLI 工具。

核心功能:

  • 一键切换 Provider:50+ 内置预设,无需手动编辑 JSON 配置
  • 统一 MCP & Skills 管理:一次配置,多工具同步
  • 系统托盘快速切换:无需打开主界面即可切换
  • 云同步:支持 Dropbox、OneDrive、iCloud、WebDAV
  • 使用量追踪:花费、请求、Token 统计
  • 跨平台:Windows、macOS、Linux 原生支持

安装方式(macOS):

# Homebrew 安装(推荐)
brew tap farion1231/ccswitch
brew install --cask cc-switch

# 更新
brew upgrade --cask cc-switch

Windows/Linux: 前往 Releases 页面 下载对应安装包。

💡 为什么推荐?

如果你同时使用多个 AI 编程工具,或者需要频繁切换 API Provider(比如在智谱、官方 Claude、第三方中转之间切换),CC Switch 能大幅简化操作,避免手动改配置文件出错。

🧠 智谱 Coding Tool Helper - 一键配置 GLM 编码环境

官方文档: 智谱开放平台

Coding Tool Helper 是智谱 AI 官方推出的编码工具助手,可以快速将 GLM 编码套餐加载到你喜欢的编码工具中。

核心功能:

  • 自动工具安装:一键安装 Claude Code、Cursor、VS Code 等工具的 GLM 适配
  • 套餐配置:自动配置 GLM 模型参数和 API 密钥
  • MCP 服务器管理:自动配置 MCP 服务器连接
  • 界面引导:按照界面提示操作,无需手动编辑配置文件

使用方法:

# 进入命令行界面,执行以下命令
npx @z_ai/coding-helper

# 按照界面提示操作即可自动完成:
# 1. 工具安装
# 2. 套餐配置
# 3. MCP 服务器管理
💡 适用场景

如果你购买了智谱的 Coding Plan 套餐,使用 Coding Tool Helper 可以快速将 GLM 模型接入 Claude Code、Cursor 等工具,省去手动配置环境变量和 JSON 文件的繁琐步骤。

🔗 相关资源

文档信息
版本: v1.3 | 更新: 2026-02-28 | 作者: Angus(心内科博士生)
适用项目: 多国老年健康数据分析 | medaibox.com