📌 前言
很多同学问我:"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 包管理器(推荐)
- 以管理员身份打开 PowerShell
- 右键点击「开始菜单」→ 选择「Windows PowerShell (管理员)」
- 或按 Win + X → 选择「终端管理员 (管理员)」
- 安装 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并回车。 - 安装 Git for Windows(智谱官方要求)
choco install git -yClaude Code 在 Windows 上需要 Git 环境。
- 安装 Python 3.12(数据分析必备)
choco install python --version=3.12.0 -y本教程使用 Python 3.12,推荐安装此版本以保证兼容性。
- 安装 Node.js(Claude Code 依赖)
choco install nodejs-lts -y推荐安装 LTS(长期支持)版本(18+)。
- 安装 Claude Code
npm install -g @anthropic-ai/claude-code - 验证安装
python --version node --version claude --version如果三个命令都能输出版本号,表示安装成功。
方式二:直接下载安装包
- 下载并安装 Git for Windows
- 访问 git-scm.com
- 下载最新版本,安装时保持默认选项即可
- 下载并安装 Python 3.12
- 访问 python.org
- 下载 Python 3.12.x 版本
- 运行安装程序,务必勾选「Add Python to PATH」
- 下载并安装 Node.js
- 访问 nodejs.org
- 下载 LTS(长期支持版),推荐 20.x 或 22.x 版本
- 运行安装程序,勾选「Add to PATH」
- 打开命令提示符或 PowerShell 验证
python --version node --version npm --version确认三个命令都能输出版本号。
- 安装 Claude Code
npm install -g @anthropic-ai/claude-code
1.2.1 获取智谱 API Key
- 访问 智谱 AI 开放平台
- 注册/登录账号
- 进入「API 密钥」页面 → 点击「添加新的 API 密钥」→ 输入名称 → 确定
- 点击复制按钮保存密钥(每个密钥只会显示一次!)
- 新注册用户没有订阅套餐,API Key 里没有余额
- 需要订阅套餐或进行身份认证
- 智谱有赠送新手资源包,有一定免费额度
1.2.2 配置 GLM 模型(关键步骤)
参考智谱官方文档和小红书教程,有两种配置方式:
方式一:修改配置文件(推荐)
- 找到配置文件
Claude Code 配置文件位于:
%USERPROFILE%\.claude\settings.json在文件资源管理器地址栏输入:
%USERPROFILE%\.claude\即可到达 - 创建或修改 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" } } - 保存并重启终端
保存配置文件后,新开一个 PowerShell 窗口(否则环境变量可能没更新)
方式二:设置系统环境变量
- 打开环境变量设置
- 在 Windows 搜索栏输入「环境变量」
- 选择「编辑系统环境变量」
- 添加用户变量
在「用户变量」区域点击「新建」,依次添加以下变量:
变量名 变量值(示例) ANTHROPIC_AUTH_TOKEN你的智谱API Key ANTHROPIC_BASE_URLhttps://api.z.ai/api/anthropicANTHROPIC_DEFAULT_SONNET_MODELglm-4.7ANTHROPIC_DEFAULT_OPUS_MODELglm-4.7 - 保存并重启
保存所有环境变量后,重启电脑确保生效。
1.2.3 验证配置成功
- 新开一个 PowerShell 窗口,输入:
claude - 如果配置成功,你会看到类似以下信息:
- 显示
GLM-4.7或glm-4等字样 - 模型可以正常输出回复
- 显示
- 在 Claude Code 中输入
/status可查看当前使用的模型
1.2.4 GLM 模型选择建议
| 模型 | 推荐场景 | 智谱环境变量值 |
|---|---|---|
| GLM-4 | 日常编程任务,性价比高 | glm-4 或 glm-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文件都有唯一的标识列(如
id或respondent_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标准化)
- 年龄筛选(Age Filter)
- 纳入标准:≥45岁
- 排除:年龄缺失或<45岁的样本
- 约排除8-12%原始样本
- 关键变量完整性检查
- 必需变量:age, gender, education
- 缺失任一即排除
- 约排除3-5%样本
- 缺失值阈值筛选
- 标准:缺失比例 < 30%
- 逐行计算缺失变量占比
- 异常值处理(Winsorization)
- 连续变量:1%-99%分位数截断
- 认知评分:剔除明显不合理的极端值
- 变量标准化(Standardization)
- 统一变量名(如所有数据库的性别变量统一为gender)
- 统一编码(男性=1,女性=0)
- 计算衍生变量(年龄分组、慢性病计数等)
📦 数据包内容
当前 multi-country-data-vip.zip 实际包含以下文件:
charls.csv、elsa.csv、hrs.csv、share.csv、klosa.csv、lasi.csv、mhas.csvvariables_dictionary.xlsx- 变量名对照表(7国原始名→标准名)README.md- 数据说明、变量类别与使用示例
如需查看清洗逻辑,可直接参考本教程上方的 2.1–2.3 小节与后文代码示例。
压缩包约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 用户推荐使用
nvm或Homebrew安装 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
启动后:
- 若遇到「Do you want to use this API key」选择 Yes
- 选择信任 Claude Code 访问文件夹里的文件
3.4.4 验证配置成功
启动一个新的命令行窗口,运行 claude,在 Claude Code 中输入:
/status
确认模型状态显示为 glm-4.7 或你配置的模型。
3.4.5 常见问题排查
⚠️ 配置不生效?
- 关闭所有 Claude Code 窗口,重新打开一个新的命令行窗口
- 尝试删除
~/.claude/settings.json文件,重新配置环境变量 - 检查 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 的强大组合。
🔗 官方链接
- 智谱开放平台:https://open.bigmodel.cn
- Claude Code 配置文档:https://docs.bigmodel.cn/cn/coding-plan/tool/claude
- 7天体验卡:见我的小红书橱窗,使用智谱官方邀请链接,¥4.99 体验7天(余量4张)
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 设计规范
第九部分:常见问题 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.py 的 VARIABLE_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: 检查以下几点:
- 确保在项目根目录运行脚本:
cd /path/to/20260221_多国老年数据分析 - 确保数据文件在
csv 版本 清洗后/目录下 - 检查文件名是否正确(区分大小写)
- 确保已安装所有依赖:
pip install -r requirements.txt
⚠️ Q10: 变量映射后全是空值?
A: 可能原因:
- 原始变量名拼写错误 → 检查
VARIABLE_MAPPING中的映射 - 原始数据中该变量名不存在 → 用
df.columns.tolist()查看实际列名 - 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: 优化建议:
- 分批处理:只加载需要的数据库,而非全部7个
- 使用并行处理:参考教程 8.2 节的
multiprocessing示例 - 减少内存占用:读取时指定
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 文件的繁琐步骤。
🔗 相关资源
- CC Switch GitHub: farion1231/cc-switch
- 智谱 Coding Tool Helper:
npx @z_ai/coding-helper - 智谱开放平台: bigmodel.cn
- Claude Code 官方文档: docs.anthropic.com
文档信息
版本: v1.3 | 更新: 2026-02-28 | 作者: Angus(心内科博士生)
适用项目: 多国老年健康数据分析 | medaibox.com