信息速览
智利 ENS(Encuesta Nacional de Salud)是拉美地区少数把「入户问卷、护士体检、实验室检验」三件事做在同一批人身上的全国健康调查。最新一轮 2016–2017 年版样本 6,233 人、1,165 个变量,公开下载,不需要签数据使用协议。
先说清一件容易搞错的事:这里的 ENS 与生物信息学界的 ENCODE 计划毫无关系。ENS 是西班牙语 Encuesta Nacional de Salud 的缩写,即「全国健康调查」,主持方是智利卫生部流行病司(Departamento de Epidemiología, MINSAL)。早年本库在排期时曾用「ENCODE 智利」这个名称,容易让人以为它与 NHGRI 的基因组功能元件项目有关,现已改名为「智利 ENS 全国健康调查」。
它真正稀缺的地方不是「样本大」——这个规模在全国调查里不算大。稀缺的是同一批人身上同时有自报、体测、化验三层数据,而且每一层都配了独立的扩展因子。这让你可以问「自报高血压与体检血压差多少」这类问题,也能正确处理「只有采血子样本才有血糖值」造成的选择偏倚。
INFOBOX — 智利 ENS 一屏速览
维度 内容 全称 Encuesta Nacional de Salud(ENS),智利全国健康调查 主持 智利卫生部流行病司(MINSAL / DEIS) 执行 智利天主教大学公共卫生系(PUC) 主要轮次 2003 / 2009–2010 / 2016–2017(另有 1988、1992 早期轮) 最新样本 6,233 人(≥15 岁) 护士访视 5,520 人(有体测) 变量数 1,165 列(主库宽表) 地区覆盖 15 个大区,城乡分层 抽样 多阶段分层整群概率抽样 PSU / 层 158 / 30 选中住户 9,901 户 住户应答率 67% 扩展因子 9 个(Fexp_* 系列) 设计变量 Estrato(层)/Conglomerado(PSU)主要模块 F1 问卷 / F2 体检 / EX 化验 / F4 数据格式 SPSS .sav访问门槛 免费下载,无需注册 可否链接死亡/住院 可,须另行向 MINSAL 申请
§1 它到底解决什么问题
1.1 几种常见的起点
你要研究慢病流行,但手上只有医院数据。 医院数据的问题是分母不清——你知道有多少人因为高血压就诊,但不知道人群里有多少高血压患者。全国代表性调查补的正是这个分母。
你要研究「知道自己有病」和「实际有病」之间的差。 这是公卫的核心问题之一。ENS 的自报诊断和客观测量分别来自 F1 与 F2/EX,可以直接对照。智利 2016–17 轮的数据显示,糖尿病自报患病率与「空腹血糖 ≥126 mg/dL 或自报」的合并口径之间有可观差距。
你要做拉美地区的跨国比较。 智利、墨西哥(ENSANUT)、巴西(PNS)、哥伦比亚(ENS)都有全国健康调查,设计思路相近但模块划分不同。智利的模块化程度是其中较高的。
你要找一个小而全的复杂抽样练手数据集。 六千余行 × 一千一百余列,九个权重,三层结构(层、PSU、个人)。比 NHANES 小得多,跑得动;比教学用的玩具数据真实得多。
1.2 它能给到的与给不到的
| 你的需求 | 它给的 | 够不够 |
|---|---|---|
| 全国代表性慢病患病率 | 30 类慢性病,自报 + 部分体检与化验 | 够 |
| 客观生理指标 | 血压、身高体重腰围、20 余项血尿检验 | 够 |
| 社会人口学分层 | 年龄、性别、教育、收入、城乡、大区 | 够 |
| 心理健康 | CIDI-SF 抑郁筛查、社会支持量表 | 够 |
| 功能与认知 | 24 题 8 维度能力量表、MMSE、Pfeffer | 够 |
| 纵向随访 | 调查本身无,但可申请链接死亡/住院 | 需额外申请 |
| 用药明细 | 有 ATC 编码的药物清单 | 够 |
| 影像、基因组 | 没有 | 不够 |
| 罕见病 | 样本量不足 | 不够 |
1.3 一句话判断
你要的是「智利成年人里某项指标的人群分布,且能按教育、城乡、大区拆开」——用它。你要的是「某个罕见病患者的完整病程」——换个数据源。
1.4 不适合谁:五条明确边界
需要纵向个体追踪的,它给不了。 三轮抽的是不同的人,不是同一批人随访。名字里有「National Health Survey」,容易被误读成 panel。要纵向,只能靠申请链接行政登记,而且链接后也只有「是否死亡、是否住院」这类粗结局,没有中间过程。
需要小区域估计的,样本不够。 官方说具有国家、大区、城乡三级代表性。到市镇(comuna)一级就不保证了——虽然数据里有 comuna 变量,但单个 comuna 的样本量往往只有个位数到几十人,做估计的置信区间会宽到没有意义。
需要机构人群或特殊人群的,被排除了。 官方明确排除机构居住者(养老院、监狱、医院长期住院)、孕妇、有暴力倾向者、不讲西班牙语者。做这部分人群的研究必须另找数据。
需要精确诊断而非筛查的,注意量表性质。 抑郁用的是 CIDI-SF 短表,是筛查工具不是诊断;糖尿病用空腹血糖单次测量,不是 OGTT 确诊;肾功能用 CKD-EPI 公式估算,不是直接测量的 GFR。这些在论文里必须写清。
要做因果推断的,设计不支持。 横断面,暴露与结局同时测。官方在多篇基于此数据的论文里都写了「cross-sectional design does not allow for establishing a directionality」和「reverse causality exists」。
需要近期数据的,它偏旧。 2016–17 轮田野期是 2016 年 8 月到 2017 年 3 月。截至 2025 年仍是最新一轮。做「当前」慢病负担的估计,要说明数据滞后接近十年。
§2 三轮的骨架:同一套问卷,三次换人
2.1 抽样框的演进
三轮调查的抽样框参数如下(来自智利天主教大学的 cohort profile 材料):
| 指标 | 2003 | 2009–2010 | 2016–2017 |
|---|---|---|---|
| 初级抽样单元(PSU) | 195 | 146 | 158 |
| 分层数(Strata) | 13 | 29 | 30 |
| 大区数(Region) | 13 | 15 | 15 |
| 样本量 | 3,619 | 5,410 | 6,233 |
| 护士访视人数 | 3,452 | 4,989 | 5,520 |
| 女性人数 | 1,973 | 3,214 | 3,918 |
| 65 岁及以上 | 918 | 1,051 | 1,517 |
| 选中住户数 | 5,469 | 7,212 | 9,901 |
| 住户应答率 | 63% | 75% | 67% |
| 随访年限(截至链接数据) | 16.3 | 9.1 | 2.2 |
| 死亡数 | 743 | 507 | 118 |
几个值得注意的地方:
PSU 数从 195 降到 146 又回到 158,但样本量一直在涨。 说明每个 PSU 内的抽取人数增加了。这对设计效应(DEFF)有直接影响——PSU 内相关性(ICC)不变时,每群人数增加会让 DEFF 上升,有效样本量的增长慢于名义样本量。
分层数从 13 增加到 30。 2003 年只有 13 个省(当时的大区划分),2016–17 年细化到 30 层(大区 × 城乡的组合)。分层更细通常能降低方差,但也意味着每层内的 PSU 更少。
住户应答率 2016–17 轮是 67%,低于 2009–10 轮的 75%。 应答率下降是所有入户调查的共同趋势。官方用无应答权重做校正,但校正只能修可观測的差异,不能修「不愿参与的人本身更健康/更不健康」这类不可观测差异。
女性占 62.9%。 这不是抽样偏倚,是真实的应答差异——男性(尤其年轻男性)更少应答。权重设计里对此有校正,表现为年轻男性的权重更高、65 岁以上人群的权重更低。
2.2 2016–17 轮的时间与地理
| 项目 | 值 |
|---|---|
| 田野期 | 2016 年 8 月 – 2017 年 3 月 |
| 覆盖 | 全国 15 个大区 |
| 代表性层级 | 国家 / 大区 / 城乡 |
| 年龄下限 | 15 岁 |
| 年龄跨度 | 15–98 岁 |
| 平均年龄 | 48.9 ± 19.3 岁 |
| 伦理批号 | CEC-MedUC 16-019(2016-09-15 批准) |
| 执行机构 | 智利天主教大学医学院公共卫生系 |
平均年龄 48.9 岁、标准差 19.3,跨 15 到 98 岁,说明样本在老年段有足够的覆盖——这与「65 岁以上 1,517 人」的设计意图一致。ENS 对 65 岁以上人群做了刻意超抽样(deliberate oversampling),这样老年段的估计才有足够精度。代价是权重里老年人的权重会低于 1,分析时若不用权重,老年占比会被高估。
2.3 数据的物理形态
主库是一个 SPSS .sav 文件,2016–17 轮为 6,233 行 × 1,165 列——dim() 直接可验,这是确认文件版本最快的一招。下载页面上提供的文件包括:
| 文件 | 内容 |
|---|---|
| Base Formulario 1-Formulario 2 y exámenes | F1 + F2 + EX 合并主库 |
| 同上 – comuna y variables complejas | 加 comuna 编码与复杂抽样变量 |
| 同上 – Metales Pesados | 重金属子库(血铅、血汞、尿砷、尿镉等) |
| Base Formulario 4 | F4 模块 |
| Manual de uso | 使用手册(2018-02-14 更新) |
| Libro de códigos F1, F2, F3 y F4 | 四个模块的编码手册 |
| Base de Medicamentos | 药物清单(ATC 编码) |
| Base formularios y libro de códigos F3 | F3 模块与手册 |
「主库」与「含 comuna 版」是两个不同文件,变量数不同。 这是最容易踩的坑:有人用主库算出的变量数 1,165,有人用含 comuna 版算出别的数,然后互相质疑。引用时必须写明用的是哪个文件。
§3 三层结构:问卷、体检、化验
ENS 最强的地方是模块化。理解了这个划分,才理解为什么要九个权重。
3.1 F1:入户问卷(第一访)
由受训访员用 CAPI(计算机辅助面访)面对面完成。内容:
| 内容块 | 具体项 |
|---|---|
| 社会人口学 | 年龄、性别、教育(NEDU1_MINSAL_1,三分类)、收入、大区、城乡 |
| 自报诊断 | 30 类慢性病,「有没有医生或护士告诉过您患有 X」 |
| 生活方式 | 吸烟、饮酒、果蔬摄入、睡眠时长 |
| 身体活动 | GPAQ(Global Physical Activity Questionnaire) |
| 筛查行为 | 宫颈癌、乳腺癌、心血管筛查史 |
| 功能评估 | 24 题 8 维度能力量表 |
| 认知 | MMSE(简易精神状态检查) |
| 功能活动 | Pfeffer 功能活动问卷 |
| 心理健康 | CIDI-SF 抑郁筛查(30 题,评估近 12 个月) |
| 社会心理 | 健康自评、主观幸福感、社会支持、社会参与障碍、照护者状态 |
30 类慢性病这个数字值得记:它来自基于此数据的论文中「Conditions identified in the 2016–2017 ENS were 30」的原文,涵盖慢性酒精消费、慢性吸烟、类风湿关节炎、血脂异常、糖尿病、高血压、肥胖等。
3.2 F2:护士访视(第二访)
由受训护士上门,内容包括:
| 内容块 | 具体项 |
|---|---|
| 附加问卷 | 生殖与性健康、另一组自报诊断、饮酒、用药清单 |
| 体格测量 | 身高、体重、腰围 |
| 血压 | 左臂,测三次 |
| 采血 | 空腹静脉血 |
| 用药盘点 | 逐一登记当前在用的处方与非处方药,按 ATC 分类 |
血压测量次数的变化是个细节但重要:2003 年测两次,2009–10 与 2016–17 测三次。做跨轮血压比较时,如果用的是「第一次读数」还是「三次均值」,结论会不同。
3.3 EX:实验室检验
实验室检验按组划分,每组有独立的权重:
| 组 | 代表指标 | 对应权重 |
|---|---|---|
| EX1 | 空腹血糖、HbA1c、肌酐、eGFR(CKD-EPI)、血红蛋白、叶酸、微量白蛋白尿、维生素 D(25-OH-D2/D3)、克氏锥虫抗体、HPV 分型 | Fexp_EX1p_Corr |
| EX2 | 总胆固醇、HDL、LDL(计算)、VLDL(计算)、非 HDL(计算)、甘油三酯、GGT、转氨酶、CRP、尿酸、尿钠钾、尿肌酐、类风湿因子、麻疹 IgG、血铅/汞/砷/镉 | Fexp_EX2p_Corr |
| EX3 | TSH、游离 T4、尿碘 | Fexp_EX3p_Corr |
这个分组不是随意的,是按采血/采尿批次与检测平台划分的。EX1 与 EX3 的变量在同一批管子上跑,EX2 在另一批。三组各自的完成人数不同,所以各自需要独立的权重。
3.4 为什么权重有九个
九个扩展因子的完整清单:
Fexp_F1p_Corr F1 单独
Fexp_F2p_Corr F2 单独
Fexp_F1F2p_Corr F1 ∩ F2
Fexp_EX1p_Corr EX1 单独(相对全体)
Fexp_F1F2EX1p_Corr F1 ∩ F2 ∩ EX1
Fexp_EX2p_Corr EX2 单独
Fexp_F1F2EX2p_Corr F1 ∩ F2 ∩ EX2
Fexp_EX3p_Corr EX3 单独
Fexp_F1F2EX3p_Corr F1 ∩ F2 ∩ EX3
逻辑是:每个权重对应一个「谁被纳入了这个分析」的集合。分析问卷题,用 F1 权重;分析血压,用 F1F2;分析血糖,用 F1F2EX1。选错权重,等于用错的集合去推总体。
官方材料的经验法则是:
用「所分析的变量中样本量最小那个」对应的权重。
这句话翻译过来就是:如果你的分析里同时有问卷变量和血糖变量,那么有效样本是「既有问卷又有血糖」的那批人,应该用 Fexp_F1F2EX1p_Corr。
§4 接口层:怎么把它读进来
4.1 下载
官方入口有三个,内容略有重叠:
| 页面 | 内容 |
|---|---|
epi.minsal.cl/encuestas-poblacionales/ |
各轮调查总览 |
epi.minsal.cl/bases-de-datos/ |
数据库下载(含各年、各版本) |
epi.minsal.cl/encuesta-ens-descargable/ |
可下载页面(含手册与编码本) |
epi.minsal.cl/cuestionarios/ |
问卷原件 |
epi.minsal.cl/condiciones-de-uso/ |
使用条件 |
网络提醒:这几个域名在部分地区会返回 403(Cloudflare 拦截)。本文件用普通 curl 直连时拿到的是 “Sorry, you have been blocked”。可行的办法是换网络环境、用浏览器访问、或者通过学术镜像/文献附录里的镜像链接。这一条已记入本库的 BLOCKERS。
4.2 读入 SPSS 文件
library(rio)
library(tidyverse)
library(survey)
library(srvyr)
#--主库(F1 + F2 + EX)
df <- rio::import("Base de datos Encuesta Nacional de Salud 2016-2017(ENS).Formulario 1_2_EX.MINSAL_EPI.sav")
dim(df)
#--[1] 6233 1165
rio::import() 对 .sav 会自动分派到 haven::read_sav(),保留变量标签与值标签。不要用 read.csv 或 foreign::read.spss 转手,前者会丢标签,后者在新版 R 上对长变量名有截断问题。
Python 侧:
import pyreadstat
df, meta = pyreadstat.read_sav(
"Base de datos Encuesta Nacional de Salud 2016-2017(ENS).Formulario 1_2_EX.MINSAL_EPI.sav",
apply_value_formats=False,
)
print(df.shape) # (6233, 1165)
print(len(meta.column_names))
apply_value_formats=False 保留原始编码(数字),True 则转成标签文字。做统计要用数字,做展示要用标签,所以通常读两遍或用 meta.variable_value_labels 自行映射。
4.3 设定复杂抽样设计
library(survey)
#--三个设计要素:PSU、层、权重
df$psu <- df$Conglomerado
df$strata <- df$Estrato
df$w <- df$Fexp_F1F2EX1p_Corr # 按分析变量选,此处以 EX1 为例
des <- svydesign(
ids = ~psu,
strata = ~strata,
weights = ~w,
data = df,
nest = TRUE
)
#--检查设计是否成立
summary(des)
三件事必须注意:
nest = TRUE。 因为 PSU 编码可能在不同层之间重复(同一个 Conglomerado 编号出现在多个 Estrato 里),不加 nest 会把它们当作同一群,标准误算错。
权重里有 NA。 九个 Fexp 各自的缺失模式不同。以 EX3 为例,Fexp_EX3p_Corr 有大量缺失(因为多数人没做甲状腺检测)。svydesign 遇到 NA 权重会报错或静默丢行,必须先看:
sum(is.na(df$Fexp_F1F2EX1p_Corr)) # 缺失多少
sum(!is.na(df$Fexp_F1F2EX1p_Corr)) # 有效多少
sum(df$Fexp_F1F2EX1p_Corr, na.rm = TRUE) # 加权后代表的总体规模,应接近智利人口
最后一行是关键体检:2016–17 轮加权后的成人总数应在 1,300 万量级(文献里有两个略有差异的版本,见 §8.2,差异来自年龄下限与缺失处理)。如果求和结果差一个数量级,说明权重用错了。
4.4 算一个加权患病率
#--高血压自报患病率(按 F1 权重)
des_f1 <- svydesign(ids = ~psu, strata = ~strata,
weights = ~Fexp_F1p_Corr, data = df, nest = TRUE)
svymean(~factor(自报高血压), des_f1, na.rm = TRUE)
#--按教育分层
svyby(~factor(自报高血压), ~Educational_level, des_f1, svymean, na.rm = TRUE)
#--设计效应,判断加权带来的精度损失
svymean(~factor(自报高血压), des_f1, deff = TRUE)
deff 这个参数要常用。DEFF = 2 意味着「这批数据的估计方差是同等规模简单随机抽样的 2 倍」,有效样本量只有名义样本的一半。ENS 的 DEFF 通常在 1.5–3 之间,取决于变量——群内相关性强的变量(如大区层面的医疗可及性)DEFF 更高。
4.5 跨模块分析:必须用交集权重
#--例:比较「自报糖尿病」与「空腹血糖 ≥126」
#--自报在 F1,血糖在 EX1,必须用 F1F2EX1 权重
df$dm_self <- as.integer(df$自报糖尿病 == 1)
df$dm_test <- as.integer(df$Glucosa >= 126)
des_int <- svydesign(ids = ~psu, strata = ~strata,
weights = ~Fexp_F1F2EX1p_Corr, data = df, nest = TRUE)
#--四格表
svyby(~dm_self, ~dm_test, des_int, svymean, na.rm = TRUE)
这个四格表就是「知晓率」与「漏诊率」的来源。用错权重(比如用 F1 权重),分子分母不匹配,算出来的差距是假的。
§5 三层怎么用:问卷层、体检层、检验层
5.1 问卷层:自报数据的性格
自报数据的核心问题是知晓偏倚。ENS 用一句标准问法:
「有没有医生、护士或其他卫生专业人员告诉过您,您患有/正在患有 X 病?」
这个问法测的是「被诊断过」,不是「患病」。二者之间的差就是未诊断池。ENS 的价值在于它同时测了生物学指标,所以能把这个差量化。
以糖尿病为例,文献里给出的一组数字:
| 指标 | 2016–17 轮 | 2009–10 轮 | 2003 轮 |
|---|---|---|---|
| 糖尿病自报/疑似患病率 | 12.3% | 8.3% | 4.2% |
| 男性 | 10.6% | — | — |
| 女性 | 14.0% | — | — |
三个点连起来是一条清晰上升的曲线。但要注意:这个上升有多少是真实患病率上升、有多少是筛查覆盖面扩大带来的检出增加,横断面数据无法分离。
5.2 体检层:三次血压与超抽样
血压测三次取均值是标准做法,但 ENS 的具体做法有个细节:用左臂。2009–10 与 2016–17 都是三次左臂,2003 是两次。跨轮比较时,测量次数的变化会引入微小但不为零的差异——第三次读数通常低于第一次(适应效应)。
体格测量的质量由护士保障。身高、体重用标准化的量具,腰围按 WHO 位置。这些数据的可信度高于自报的身高体重(后者普遍存在低报体重、高报身高的倾向)。
5.3 检验层:三组的价值与边界
| 组 | 能回答什么 | 局限 |
|---|---|---|
| EX1 | 糖尿病(血糖、HbA1c)、肾功能(肌酐、eGFR)、贫血(血红蛋白)、微量白蛋白尿、维生素 D、HPV | 单次空腹血糖不能确诊糖尿病,需 OGTT 或重复测量 |
| EX2 | 血脂全套(总/HDL/LDL/VLDL/非 HDL)、肝酶、炎症(CRP)、电解质、重金属 | LDL 是 Friedewald 公式计算值,甘油三酯 >400 mg/dL 时不可靠 |
| EX3 | 甲状腺(TSH、FT4)、碘营养(尿碘) | 尿碘是单次点尿,受当日饮食影响大 |
LDL 是算出来的,不是测出来的,这一点在写论文时必须说明。Friedewald 公式在甘油三酯高时失效,ENS 的编码本里也标了 LDL_Calculado(计算值)这个后缀。
重金属是独立子库。 主库里有部分重金属变量,但完整的血铅、血汞、尿砷、尿镉在单独的 Metales Pesados 版本里。要研究重金属暴露,必须下那个文件。
§6 AI 就绪指南
6.1 十分钟跑通一个可用的估计
library(rio); library(survey); library(srvyr)
df <- rio::import("ENS_2016_2017_F1F2EX.sav")
df$psu <- df$Conglomerado
df$strata <- df$Estrato
df$w <- df$Fexp_F1F2EX1p_Corr
des <- svydesign(ids = ~psu, strata = ~strata, weights = ~w,
data = df, nest = TRUE)
#--1) 加权人口规模(体检+检验子样本代表多少人)
sum(weights(des), na.rm = TRUE)
#--2) 空腹血糖均值与 95% CI
svymean(~Glucosa, des, na.rm = TRUE, confint = TRUE)
#--3) 按教育三分类的血糖均值
svyby(~Glucosa, ~NEDU1_MINSAL_1, des, svymean, na.rm = TRUE)
#--4) 血糖异常(≥126 mg/dL)的加权患病率
df$hi_glu <- as.integer(df$Glucosa >= 126)
svymean(~hi_glu, des, na.rm = TRUE)
四步跑完,你就有了一个可发表的估计:点估计、置信区间、分层结果、患病率。
6.2 坑点 1:把九个权重当成一个
最常见也最致命。表现是:有人用 Fexp_F1p_Corr 去分析血糖,结果算出来的患病率与文献差好几个百分点。
原因是 F1 权重的目标是全体问卷应答者,而血糖只有采血子样本有值。用 F1 权重除以有血糖的人数,等于假设「没采血的人和采血的人血糖分布相同」——这个假设恰恰是错的(拒绝采血的人往往更健康或更怕针)。
正确做法:分析哪个变量,就用包含该变量的最小集合的权重。
6.3 坑点 2:listwise 删除把样本删没了
#--错误:一步 na.omit,样本从六千余掉到几百
clean <- na.omit(df[, c("Glucosa", "Colesterol_Total", "TSH", "Edad")])
因为 TSH 只有做 EX3 的人才有,na.omit 会取所有变量的交集,样本塌缩。
正确做法是分模块分析、分别用权重,或者在模型里用多重插补处理缺失,绝不做全表 listwise。
#--分子模块
tab_glu <- df[!is.na(df$Glucosa), ]
tab_chol <- df[!is.na(df$Colesterol_Total), ]
#--各自用自己的权重建 design
6.4 坑点 3:忘了 nest = TRUE
#--错误:不加 nest
des_bad <- svydesign(ids = ~psu, strata = ~strata, weights = ~w, data = df)
如果同一个 PSU 编号出现在多个层里,不加 nest 会让 survey 认为这是同一个群跨层,方差估计出错(通常偏小,导致假阳性)。
检查方法:
#--同一个 psu 编号是否跨多个 strata
chk <- df %>% group_by(psu) %>% summarize(n_strata = n_distinct(strata))
sum(chk$n_strata > 1) # 大于 0 就必须 nest = TRUE
6.5 坑点 4:把 Estrato 写成 Strato
变量名是西班牙语 Estrato(层),不是 Strato。很多英文模板直接套用 survey 包的示例代码,写成 ~Strato,R 会报「对象不存在」。
Conglomerado(群)同理,不是 Cluster 也不是 PSU。
6.6 坑点 5:跨轮比较不核对题器变化
三轮的问卷不完全一样。举两个已知的变化:
- 血压测量次数:2 次 → 3 次 → 3 次
- 年龄下限:2003 年 17 岁起,2009–10 与 2016–17 是 15 岁起
做趋势分析时,如果不把 2003 年限制到 17 岁以上,或者不统一血压读数规则,趋势里会混入方法学变化。
#--跨轮比较前先统一口径
df2003 <- subset(df2003, Edad >= 17) # 对齐到 2009 之后的下限
df2017 <- subset(df2017, Edad >= 17)
6.7 坑点 6:忽略了 65 岁以上超抽样
官方材料明确写:「subjects aged 65 y or more were deliberately oversampled」。这意味着样本里老年人的比例高于总体。如果不加权,你会高估老年人口占比,进而高估所有随年龄上升的指标。
#--不加权 vs 加权的年龄分布对比,差异应该明显
prop.table(table(df$Edad_Codificada))
svymean(~factor(Edad_Codificada), des)
6.8 坑点 7:把 comuna 当成可估计层级
数据里有 comuna(市镇)编码,但单个 comuna 的样本量往往只有几个人。用 svyby(~x, ~comuna, ...) 算出来的估计,置信区间会宽到跨越整个可能取值范围。
#--看 comuna 级样本量分布
n_per_comuna <- df %>% count(Comuna) %>% arrange(n)
summary(n_per_comuna$n)
如果中位数只有个位数,就不要做 comuna 级估计。官方只承诺国家、大区、城乡三级。
6.9 坑点 8:把筛查量表当诊断
CIDI-SF 是抑郁筛查短表,MMSE 是认知筛查,Pfeffer 是功能筛查。三者都不是临床诊断。
论文里如果说「智利老年人抑郁患病率 X%」,必须写成「抑郁症状筛查阳性率」,否则审稿人会要求改。
§7 质量评估:DAIMS 框架
读这节之前先建立正确预期:ENS 的质量问题不是「数据不准」,而是「不同模块的可信度不一样」。问卷层有回忆偏倚,体检层有测量误差但小,检验层有单次测量的局限。三层混在一起分析时,误差会互相干扰。
7.1 DAIMS 五维评分
| 维度 | 评分 | 依据 |
|---|---|---|
| Data Collection(采集) | ★★★★☆ | 两访设计(访员 + 护士)、CAPI、标准化量具、中心实验室;扣分项:住户应答率 67% 且有下降趋势 |
| Annotation(标注) | ★★★★☆ | 编码本覆盖 F1–F4 四模块,变量名有语义,值标签完整;扣分项:部分变量名西班牙语缩写不易懂 |
| Intrinsic Quality(内在质量) | ★★★★☆ | 三轮口径大体延续,DEIS 参与链接;扣分项:模块间缺失结构复杂,误用权重风险高 |
| Metadata(元数据) | ★★★☆☆ | 有使用手册与编码本,但手册 2018 年更新后未再维护;权重映射需另找 Excel |
| Standardization(标准化) | ★★★★☆ | 疾病用 ICD-10 对照、药物用 ATC 编码、检验项用国际单位;扣分项:自报诊断无标准编码 |
7.2 为什么 Metadata 只给三星
三个具体问题:
第一,权重映射表不在主文档里。 九个 Fexp_* 与各检验变量的对应关系,官方没有列在编码本里,而是散在一份 ENS2017_FactoresExp.xlsx 的三个 sheet 中。多数使用者是通过第三方教程(如智利天主教大学的 R 工作坊材料)才知道这张表存在。
第二,变量命名混用语言。 主体是西班牙语(Edad、Sexo、Estrato),但部分变量是英语缩写(MMSE、CIDI),还有混合形式(aux_25_OH_Vitamina_D2)。国际用户需要额外查表。
第三,站点可达性不稳定。 epi.minsal.cl 对部分海外 IP 返回 403。这不是数据质量问题,但直接影响了复现性——同样的分析,在智利能跑,在别处可能连文件都下不到。
7.3 已知的、可枚举的偏差
| 偏差 | 来源 | 方向 |
|---|---|---|
| 未诊断偏倚 | 自报只覆盖被诊断过的人 | 低估真实患病率 |
| 幸存偏倚 | 横断面,重症患者可能不入组或无法应答 | 低估重症占比 |
| 无应答偏倚 | 应答率 67%,年轻男性应答低 | 需权重校正,校正不完全 |
| 回忆偏倚 | 自报行为(饮食、吸烟量) | 普遍低报不健康行为 |
| 社会期望偏倚 | 面对面访谈 | 同上 |
| 单次测量误差 | 单次空腹血糖、单次点尿碘 | 增加随机误差,回归稀释 |
| 排除偏倚 | 排除机构人群、孕妇、非西班牙语者 | 不代表这部分人群 |
| 时间滞后 | 2016–17 数据,截至 2025 仍最新 | 不代表当前 |
「回归稀释」这条值得单独说。用单次血糖测量去估计糖尿病患病率,会因为个体内变异导致分类错误——部分真实患者被归为非患者,部分非患者被归为患者。净效应通常是低估患病率(因为真实患者占比低,误分类非患者更多)。用 HbA1c 或重复测量可以减少这个问题。
7.4 它为何存在,以及靠什么持续
一个六千余人的调查,为什么值得做三轮、跨 14 年?
第一,它是智利卫生政策的度量工具。 智利的 GES(Garantías Explícitas en Salud, explicit health guarantees)体系需要知道哪些病负担最重、哪些人群覆盖不足。ENS 提供的就是这个基线。烟控政策收紧后吸烟率下降、肥胖上升,这些结论都直接来自 ENS 三轮比较。
第二,它有制度化的执行主体。 卫生部流行病司主持、智利天主教大学执行、DEIS 提供链接数据。三个机构各司其职,调查不是靠某个课题组的一次性经费,而是嵌在卫生行政体系里。
第三,它接入了行政数据链。 智利有全国唯一身份识别码,ENS 三轮样本都能与年度死亡登记、住院出院记录链接。这让一份横断面调查获得了纵向价值——「调查时测到的暴露 → 后续 5 年、10 年的结局」可以研究。这是很多国家的同类调查做不到的。
第四,它的边际成本低。 已有抽样框(大区 × 城乡分层)、已有执行团队、已有实验室链条。每多一轮,增加的主要是田野成本,设计成本几乎为零。
反过来看它的脆弱点:数据更新慢(2016–17 之后到 2025 年还没有新一轮)、站点可达性不稳、权重文档分散。这三条都不致命,但都会增加使用门槛。
7.5 与同类调查的位置
| 调查 | 国家 | 最新样本 | 体检 | 化验 | 链接行政数据 |
|---|---|---|---|---|---|
| ENS | 智利 | 6,233 | 有(护士访视) | 有(三组) | 可申请 |
| NHANES | 美国 | 约 5,000/轮(两年一轮) | 有(移动体检车) | 有 | 可申请 |
| ENSANUT | 墨西哥 | 数万 | 部分轮次 | 部分 | 有限 |
| CHARLS | 中国 | 约 1.7 万 | 有 | 有 | 可申请 |
| ELSA | 英国 | 约 8,000 | 有 | 有 | 有 |
| SHARE | 欧洲多国 | 十余万 | 部分 | 部分 | 部分 |
ENS 的独特之处在于小而全 + 模块化权重。NHANES 规模相近但体检在移动车里完成(依从性不同),CHARLS 样本大得多但权重体系没有分模块到九个这么细。
§8 基准与生态
8.1 基于 ENS 的典型研究产出
ENS 不是竞赛数据集,没有排行榜。它的「基准」表现为一批可复现的患病率估计,后来的研究常拿这些数字做对照。
| 主题 | 2016–17 轮的关键数字 |
|---|---|
| 糖尿病(自报 + 血糖疑似) | 12.3%(男 10.6%,女 14.0%) |
| 肥胖 | 35.9%(加权样本) |
| 吸烟 | 32.9% |
| 高血压 | 30.7% |
| multimorbidity(≥2 种慢病) | 54.9%(加权) |
| 65 岁以上高血压 | 78.9% |
| CKD 3a–5 期(eGFR<60) | 3.0%(95% CI 2.4–3.8) |
| 40 岁以上 CKD 1–5 期(扩展定义) | 15.4% |
| 抑郁症状(CIDI-SF 阳性) | 见各子样本研究 |
这些数字看起来零散,但合起来构成了一张智利成人健康的快照。任何新研究要报同类指标,都应与这些数字对照,差异超过抽样误差就必须解释。
8.2 数字口径差异的实例
同一个指标在不同论文里会有不同数字,原因通常有三:
样本限制不同。 有一篇研究用 4,151 人(有多病与牙齿数据的子集)算出肥胖 35.9%;另一篇用 4,985 人(18 岁以上、BMI 与糖尿病数据完整)扩展出约 1,296.5 万人;还有一篇用 5,033 人(有糖尿病、BMI、腰围、教育数据)扩展出约 1,330.7 万人。三个人数、两个扩展总体,都是对的,只是分析子集不同。
权重不同。 用 Fexp_F1F2p_Corr 还是 Fexp_F1F2EX1p_Corr,扩展出来的人口数不同。
年龄下限不同。 15 岁以上与 18 岁以上的分母不同。
所以引用 ENS 数字时必须写清三件事:用了多少人、用了哪个权重、年龄下限是多少。只写「据 ENS,肥胖率 35.9%」是不够的。
8.3 生态位
ENS 在数据生态里的位置,与它的邻居们对照最清楚:
| 资源 | 类型 | 与 ENS 的关系 |
|---|---|---|
| ENS | 全国代表性横断面 + 体检 | 本文 |
| DEIS 死亡登记 | 行政登记 | 可链接的结局数据 |
| DEIS 住院出院 | 行政登记 | 可链接的结局数据 |
| CASEN | 社会经济调查 | 可补充收入与贫困维度 |
| ENCAVI | 生活质量与健康调查 | 补充主观健康与生活质量 |
| ENETS | 劳动者就业与健康调查 | 补充职业暴露维度 |
| 血清生物样本库 | 生物样本 | ENS 采集后的留存样本 |
这张表说明一件事:ENS 不是孤岛,它是一组可链接调查与登记中的一个节点。真正的研究价值往往在链接之后——单独看 ENS 只能做横断面关联,链接死亡登记后能做生存分析。
§9 使用指引
9.1 四类用户的路径
公卫研究者: 从 §4.3 的设计设定开始,先算一遍加权人口规模做体检,再算目标指标的 svymean 与 deff。写论文时把权重名、样本数、DEFF 三项都报出来。
卫生政策分析师: 关注分层结果(svyby 按教育、收入、城乡、大区),比总体均值更有政策含义。注意大区级估计的置信区间会比国家级宽很多。
机器学习工程师: 这个行数适合做特征选择、缺失模式建模、外部验证。不要指望在这上面刷出高 AUC——它的价值是作为一个「真实世界的、有复杂缺失的、有抽样设计的小数据集」,用来检验你的管线在真实数据上会不会崩。
做跨国比较的研究者: 先把各调查的模块划分对齐。ENS 的 F1/F2/EX 三层结构,对应 NHANES 的问卷/体检/实验室,但权重设计不同(NHANES 用 2 年一轮的 4 个权重,ENS 用 9 个)。
9.2 引用要求
必须引用三样:
- 调查本身:Ministerio de Salud de Chile. Encuesta Nacional de Salud 2016–2017. Santiago: MINSAL, 2017.
- 使用条件页面:
http://epi.minsal.cl/condiciones-de-uso/ - 如果在英文期刊发表,需同时引用方法学文献。ENS 2009–10 的英文方法学概述见 Mindell JS 等 2017 年发表于 Am J Epidemiol(186:648-658)的七国健康检查调查方法比较。
9.3 版本与文件锁定
引用时至少要写清:
| 项目 | 应写内容 |
|---|---|
| 调查轮次 | ENS 2016–2017 |
| 使用的文件 | 主库 / 含 comuna 版 / 重金属子库 |
| 分析样本量 | 例如「n = 4,985(18 岁以上,BMI 与血糖完整)」 |
| 权重 | 例如 Fexp_F1F2EX1p_Corr |
| 扩展总体 | 例如「代表约 1,296.5 万名 18 岁以上居民」 |
| 下载日期 | 例如 2026-10-26 |
五项缺任何一项,别人就无法复现你的数字。
§10 AI 使用声明
| 项目 | 声明 |
|---|---|
| 数据性质 | 全国代表性横断面健康调查,含自报、体测、化验三层 |
| 可否直接用于训练 | 可以,须处理复杂抽样设计;建议作为外部验证集或特征工程沙盒 |
| 建议用途 | 慢病流行估计、知晓率/漏诊率研究、复杂抽样方法教学、跨国比较 |
| 不建议用途 | 因果推断、小区域估计(comuna 级)、罕见病研究、临床诊断模型训练 |
| 个体隐私 | 已去除姓名地址,以假名化方式提供;不得尝试结合其他数据重识别 |
| 伦理注意 | 原始调查经 PUC 与 MINSAL 伦理委员会批准(16-019),参与者在知情同意下参与 |
| 偏差风险 | 单一国家、2016–17 时点、排除机构人群与孕妇与非西语者 |
| 引用要求 | MINSAL 调查 + 使用条件页面 + 英文方法学文献(若发英文刊) |
| 版本标注 | 必须写轮次、文件名、样本量、权重名、下载日期 |
| 页面状态 | published |
常见误读(避坑清单)
| 常见说法 | 实际情况 | 证据 |
|---|---|---|
| 「ENS 就是生物信息学的 ENCODE」 | 完全无关,ENS = Encuesta Nacional de Salud | 全称即可判定 |
| 「样本量就是全部数据」 | 那个数只是 F1 问卷;有体测的更少;化验各自更少 | 三轮抽样框表 |
| 「有九个权重,随便用一个就行」 | 各权重对应不同模块集合,用错则点估计与 SE 双偏 | §3.4 权重清单 |
| 「权重变量叫 Strato」 | 变量名是 Estrato(西语),PSU 是 Conglomerado |
数据列名 |
| 「可以直接 na.omit 清洗」 | 会取所有模块交集,样本塌缩到几百 | §6.3 |
| 「这是纵向队列」 | 三轮抽的是不同人;纵向价值来自链接行政登记 | 官方设计与 cohort profile |
| 「样本能做 comuna 级估计」 | 官方只承诺国家/大区/城乡三级 | §1.4、§6.8 |
| 「65 岁以上占比就是样本占比」 | 老年被刻意超抽样,不加权会高估 | 官方明示 deliberate oversampling |
| 「糖尿病患病率 12.3% 是血糖确认」 | 是自报 + 空腹血糖疑似的合并口径 | 文献口径说明 |
| 「LDL 是直接测的」 | 是 Friedewald 计算的(变量名带 Calculado) | 变量命名 |
| 「抑郁患病率」 | CIDI-SF 是筛查短表,只能说「筛查阳性率」 | 量表性质 |
| 「2016 之后还有更新」 | 截至 2025 仍是最新一轮 | 多篇 2025 年论文均称 latest |
FAQ
Q1:ENS 与 ENCODE 到底什么关系?
没有关系。ENS 是西班牙语 Encuesta Nacional de Salud(全国健康调查)。ENCODE 是 Encyclopedia of DNA Elements,美国 NHGRI 的基因组注释项目。本库曾用「ENCODE 智利」命名,已纠正。
Q2:为什么改名?
旧名会让生物信息学同行以为是 ENCODE 计划的智利分支。实际是智利卫生部的入户健康调查,与基因组学无关。改名后 slug 仍保留 encode-chile 以维持已有排期与链接的连续性。
Q3:下载需要注册吗?
不需要。epi.minsal.cl 的 bases-de-datos 与 encuesta-ens-descargable 页面公开提供 .sav 文件、编码本、问卷、使用手册。使用须遵守 condiciones-de-uso 的条件。
Q4:为什么我访问官网返回 403?
站点用 Cloudflare,对部分海外 IP 段做了拦截,返回 “Sorry, you have been blocked”。换网络环境、用浏览器直接访问、或通过镜像可解决。这是可达性问题,不是权限问题。
Q5:2016–17 轮到底有多少人?
2016–17 轮有 6,233 人完成 F1 问卷(15 岁及以上)。其中约九成完成 F2 护士访视。实验室三组(EX1/EX2/EX3)各自覆盖人数不同且更少。
Q6:为什么样本里女性占 62.9%?
因为男性(尤其年轻男性)应答率低。这是真实的无应答模式,不是抽样错误。权重设计里有针对性的校正——年轻男性的权重会高于 1,老年人与女性的权重会低于 1。
Q7:九个权重怎么记?
按「模块组合」记:F1、F2、F1F2、EX1、F1F2EX1、EX2、F1F2EX2、EX3、F1F2EX3。前缀 Fexp_,后缀 p_Corr(corrected,已校正)。
Q8:加权求和应该等于多少?
2016–17 轮成人加权总数应在 1,300 万量级。文献里有三个略有出入的版本(其中两个常被引用的分别是 18 岁以上 n=4,985 与 n=5,033 的子集),差异来自年龄下限与缺失处理。如果求和得到几十万或几亿,说明权重用错了。
Q9:能算 comuna 级患病率吗?
不建议。单个 comuna 样本量常常个位数到几十。官方只承诺国家、大区、城乡三级代表性。数据里有 comuna 变量,是为了支持链接与细分,不是为了小区域估计。
Q10:能研究罕见病吗?
不能。这个规模对患病率低于 1% 的疾病,期望病例数不到 62 例,分性别、分年龄后每格只有个位数。置信区间会宽到没有实用价值。
Q11:ENS 可以和中国哪个调查类比?
最接近的是 CHARLS(中国健康与养老追踪调查),都有问卷 + 体检 + 化验三层、都可链接行政数据。差别是 CHARLS 是纵向追踪(同一批人随访),ENS 是横断面(每轮换人);CHARLS 样本 1.7 万,ENS 不到其一半。
Q12:为什么说它有纵向价值?
因为智利有全国唯一身份识别码,ENS 三轮样本都可与 DEIS 的死亡登记、住院出院数据链接,且链接是持续更新的(材料里提到数据截至 2019 年 4 月)。这让你能做「2016 年测的暴露 → 2017–2019 的死亡/住院」分析。
术语表
| 术语 | 解释 |
|---|---|
| ENS | Encuesta Nacional de Salud,智利全国健康调查 |
| MINSAL | Ministerio de Salud de Chile,智利卫生部 |
| DEIS | Dirección de Estadísticas e Información de Salud,智利卫生统计与信息司 |
| PUC | Pontificia Universidad Católica de Chile,智利天主教大学(执行机构) |
| F1 | Formulario 1,第一访入户问卷 |
| F2 | Formulario 2,第二访护士体检 |
| EX / EX1–EX3 | Exámenes,实验室检验的三组 |
| F4 | Formulario 4,附加模块 |
| Fexp_ | Factor de expansión,扩展因子(权重) |
| Estrato | 层(抽样设计变量) |
| Conglomerado | 初级抽样单元(PSU) |
| CAPI | Computer Assisted Personal Interview,计算机辅助面访 |
| GPAQ | Global Physical Activity Questionnaire,全球身体活动问卷 |
| CIDI-SF | Composite International Diagnostic Interview Short Form,复合国际诊断访谈短表(抑郁筛查) |
| MMSE | Mini-Mental State Examination,简易精神状态检查 |
| Pfeffer | Pfeffer 功能活动问卷,评估日常功能 |
| ATC | Anatomical Therapeutic Chemical,药物解剖治疗化学分类 |
| eGFR | estimated Glomerular Filtration Rate,估算肾小球滤过率 |
| CKD-EPI | 慢性肾病流行病学协作组的 eGFR 公式 |
| DEFF | Design Effect,设计效应(复杂抽样方差 / 简单随机抽样方差) |
| GES | Garantías Explícitas en Salud,智利 explicit health guarantees 制度 |
| DAIMS | 本百科用于多维质量评分的框架 |
§11 两类指标的口径分叉:自报层与客观层为什么对不上
这一节解决的问题是:拿到数据后,你把「自报高血压」和「体检血压 ≥140/90」各算一遍,会发现两个数差得很远,然后不知道该信哪个。答案不是「有一个错了」,而是两个数回答的是两个不同的问题。
11.1 三层数据的测量对象不同
先把三层各自测的是什么列清楚:
| 层 | 模块 | 测的对象 | 时间指向 |
|---|---|---|---|
| 自报诊断 | F1 | 「医生有没有告诉过你,你有高血压/糖尿病」 | 过去任何时候,无时限 |
| 自报治疗 | F1 | 「现在有没有吃药」 | 当下 |
| 体检 | F2 | 测量当天的血压、身高、体重、腰围 | 测量当天 |
| 化验 | EX | 采血当天的血糖、血脂、肌酐 | 采血当天 |
这三层的「时间指向」不一样,这是所有差异的根源。自报诊断是一个累积档案(历史最长),体检与化验是一个时点快照(历史只有一个点)。
11.2 差异的四种组合
把个体按「自报」和「体检」两维交叉,得到四个格子。每个格子的人不一样,解释也不一样:
| 体检异常 | 体检正常 | |
|---|---|---|
| 自报有病 | 已诊断且测量确认 | 已诊断、已控制(服药起效) |
| 自报无病 | 未诊断的潜在患者 | 一致阴性 |
第二个格子(自报有病、测量正常)常常是治疗有效的证据,而不是数据错误。一个服药中的高血压患者,测量当天血压 128/78,被算进「体检正常」是必然的。所以把「自报有」与「体检有」直接相减,得到的东西既不是未诊断率也不是控制率,只是两者的混合。
第三个格子(自报无、测量异常)才是真正的「未诊断」。这个数才是公卫上最有价值的:它刻画出筛查体系漏掉的人群规模。
11.3 为什么不能拿文献里的患病率直接比
文献里同一个国家、同一轮数据,糖尿病患病率能报出好几个不同的数,原因通常在这四个地方:
| 口径 | 定义 | 数值通常 |
|---|---|---|
| 纯自报 | 仅 F1 自报医生诊断 | 最低 |
| 自报 + 空腹血糖 | 自报或 FPG ≥126 mg/dL | 中 |
| 自报 + 空腹血糖 + HbA1c | 三者任一阳性 | 最高 |
| 已治疗者单独计入 | 服药者无论血糖如何都算 | 视人群而定 |
引用时必须写明用的是哪一种。写「智利糖尿病患病率 12.3%」而不写口径,使用者无法判断这个数可不可比。
11.4 建议的写法
做分析时,把三个数一起报,比只报一个更有说服力:
#--三种口径并列:自报 / 自报+血糖 / 全部阳性
prev_self <- svymean(~I(Diabetes_Self == 1), des, na.rm = TRUE)
prev_fpg <- svymean(~I(Diabetes_Self == 1 | Glu_Fast >= 126), des, na.rm = TRUE)
prev_full <- svymean(~I(Diabetes_Self == 1 | Glu_Fast >= 126 | HbA1c >= 6.5), des, na.rm = TRUE)
rbind(自报 = prev_self, 自报加血糖 = prev_fpg, 三者任一 = prev_full)
注意三个数的分母不同:加了血糖之后,样本量会掉到有采血的那部分人。所以三个数不能直接比较,必须分别加权、分别给置信区间。
11.5 与中国的对照
中国同类问题在 CHARLS、CHNS 里也存在,处理方式可以互相参考:
| 项目 | 智利 ENS | 中国 CHARLS | 中国 CHNS |
|---|---|---|---|
| 血压测量 | 三次,左臂 | 三次,单臂 | 三次 |
| 血糖 | 空腹静脉血 | 空腹末梢血 + 部分静脉血 | 空腹静脉血 |
| 糖化血红蛋白 | 有 | 有 | 部分年份有 |
| 自报诊断问法 | 「医生告诉过你」 | 同 | 同 |
| 权重层次 | 九个分模块权重 | 分县/个人两层 | 分省/个人两层 |
智利 ENS 在权重上做得比两者都细,代价是每个分析都得先想清楚「涉及哪几个模块、最小的一块样本是什么」。CHARLS 与 CHNS 的权重更简单,误用风险小,但跨模块分析时校正不如 ENS 精确。后两者的优势在纵向,ENS 的长处在横断面的测量深度与权重精细度,不宜用同一把尺子比。
再补一句实操上的差别:ENS 的体检与化验是同一天完成的,CHARLS 的体检与血样采集有时会间隔数周,跨指标做联合分析时要留意时间窗。这一点在国内文献里讨论不多,但在做代谢综合征这类需要多指标同时在场的分析时,会影响结果的可解释性。
§12 版本、文件与引用纪律
如果用 ENS 写论文,这三个问题迟早会碰上:用哪个文件、怎么引用、结果怎么复现。
12.1 文件层面的三个选择
| 选择点 | 选项 | 影响 |
|---|---|---|
| 是否含 comuna | 主库 / 含 comuna 版本 | 行数不变,列数增加;含 comuna 便于地理分层,但也提高重识别风险 |
| 是否含重金属子库 | 合并 / 不合并 | 重金属是单独文件,只有子样本,合并后大面积缺失 |
| 用 SPSS 还是转换后的 CSV | .sav / 自行转换 |
转换过程容易丢值标签,尤其是带西语重音的标签 |
建议:以 .sav 原文件为准,转换后的 CSV 只作为分析副本,并记录转换脚本。值标签一旦丢失,后续所有人对着数字猜含义,成本远高于保留原格式。
12.2 引用怎么写
官方要求在出版物中注明数据来源。一个可用的写法:
Ministerio de Salud de Chile, Departamento de Epidemiología. Encuesta Nacional de Salud 2016–2017. Santiago: MINSAL, 2018.
如果用了链接的死亡或住院数据,须同时注明 DEIS,并说明链接是经批准后完成的。不要只写「数据来自智利卫生部网站」,那不足以让他人定位到具体轮次。
12.3 复现需要记录什么
| 必须记录 | 原因 |
|---|---|
| 文件名与下载日期 | 官方文件会静默更新,同名文件内容可能不同 |
变量数与行数(dim()) |
一眼能确认文件版本对不对 |
用了哪个 Fexp_* |
换权重后点估计会变 |
nest = TRUE 是否设置 |
影响标准误,不影响点估计——最容易漏 |
| 缺失处理策略 | listwise / 多重插补 / 分模块分析,结论差别很大 |
| R 与 survey 包版本 | 复杂抽样函数在版本间有行为变化 |
最后一条常被忽略。survey 包在 4.x 之后对单 PSU 层的处理方式有调整,同样的代码在两个版本上可能给出不同的标准误。
12.4 一次完整的最小复现
把上面所有纪律压成一段可直接运行的脚本,作为「我这篇论文用的是哪份文件、哪个权重、哪种缺失处理」的可执行证据:
library(haven); library(dplyr); library(survey)
#--1) 读入并立刻记录指纹
df <- read_sav("ENS_2016_2017.sav")
cat("dim:", dim(df), "\n") # 应为 6233 x 1165 左右
cat("cols sample:", head(names(df), 5), "\n")
#--2) 只保留分析需要的列,避免整表 listwise
vars <- c("IdEncuesta", "Estrato", "Conglomerado", "Fexp_F1F2EX1p_Corr",
"Edad", "Sexo", "Zona", "Region",
"Diabetes_Self", "Glu_Fast", "HbA1c",
"HTA_Self", "Presion_Sist", "Presion_Dias")
dat <- df %>% select(any_of(vars))
#--3) 建设计对象,nest = TRUE 不可省
des <- svydesign(ids = ~Conglomerado, strata = ~Estrato,
weights = ~Fexp_F1F2EX1p_Corr, data = dat, nest = TRUE)
#--4) 分别算三个口径,各自 na.rm
a <- svymean(~I(Diabetes_Self == 1), des, na.rm = TRUE)
b <- svymean(~I(Diabetes_Self == 1 | Glu_Fast >= 126), des, na.rm = TRUE)
c <- svymean(~I(Diabetes_Self == 1 | Glu_Fast >= 126 | HbA1c >= 6.5), des, na.rm = TRUE)
#--5) 同时报有效样本量,否则无法判断精度
out <- data.frame(
口径 = c("自报", "自报+血糖", "三者任一"),
点估计 = c(coef(a), coef(b), coef(c)),
标准误 = c(SE(a), SE(b), SE(c)),
有效n = c(sum(!is.na(dat$Diabetes_Self)),
sum(!is.na(dat$Diabetes_Self) & !is.na(dat$Glu_Fast)),
sum(!is.na(dat$Diabetes_Self) & !is.na(dat$HbA1c)))
)
print(out)
这段脚本的价值不在算得多准,而在它把口径、权重、缺失处理三件事写死在代码里。后来的人照着跑,能复现出同一组数;如果复现不出来,第一件事是比对 dim()。
12.5 常见的一处误判
有人看到自报患病率比合并口径低,就写成「智利有大量糖尿病患者未被诊断」。这个推论在方向上通常成立,但幅度不成立,因为两者的分母不同:分母大的一方(自报)本身包含了更多健康人,分子小的原因里既有「未诊断」,也有「未采血」。
正确的算法是只在有血糖值的人里算「自报阴性但血糖阳性」的比例,再对这个子样本加权。分母统一之后,得到的才是「未诊断率」。这个数一般会明显高于两个患病率之差。
附录 F:三轮问卷的题器变化——跨轮比较前必须核的六处
跨轮比较是 ENS 最常见的使用方式,也是最容易出错的地方。问卷在 14 年里改过,题器变了、切点变了、选项变了,直接拿两轮的同一个变量名相减,结论可能整个反掉。下面六处是已被文献记录、且影响估计的变动。
F.1 年龄下限
2003 轮是 17 岁以上,2009–2010 与 2016–2017 两轮是 15 岁以上。做「成年人患病率」的跨轮比较,必须把 2003 轮截到 17 岁以上,或者把后两轮按同一年龄下限重算。不处理这一步,2003 轮的分母会小一截,患病率被抬高。
F.2 血压测量次数与取值规则
2003 轮每人测两次,2016–2017 轮测三次。三次测量取平均还是取后两次平均,会明显影响高血压患病率。文献里两种做法都有,报告时必须写明。若跨轮比较,建议统一为「后两次平均」,因为 2003 轮第二次测量的稳定性明显好于第一次。
F.3 体力活动的问卷工具
早期轮次用的是简版问卷,2016–2017 轮改用 GPAQ(Global Physical Activity Questionnaire)。GPAQ 有标准化的 MET 计算规则,能算「每周 MET-分钟」,早期简版只能算「是否达到推荐量」。这意味着「身体活动不足率」在两轮之间不可直接比。
F.4 抑郁筛查量表
CIDI-SF 短表在不同轮次的条目数与切点有调整。表现为同一人群的「筛查阳性率」在换量表后出现跳变。跨轮比较抑郁时,必须确认两轮用的是同一版本、同一判定规则。
F.5 食盐与饮食频率题
饮食频率题的选项粒度改过,从「每天/每周几次」改为「具体份数」的年份不同。把「每周吃蔬菜几次」跨轮相减,得到的差值里混着题器变化,不能全归因于行为改变。
F.6 自报慢病清单的长度
30 类慢病的清单是逐轮扩充的。清单越长,自报患病率越高——不是因为人变病了,而是因为问到了更多病。跨轮比较多病共存(multimorbidity)时,必须限定在两轮共有的那部分疾病上重算。
F.7 一张核查清单
| 核查项 | 怎么查 | 查不到怎么办 |
|---|---|---|
| 年龄下限 | 看各轮编码本的第一题筛选条件 | 统一截到最严的那一轮 |
| 血压取值规则 | 看派生变量说明 | 自己从原始三次测量重算 |
| 体力活动工具 | 看问卷原件 | 放弃跨轮,只做单轮 |
| 抑郁量表版本 | 看编码本的变量名后缀 | 只报筛查阳性率,不比差值 |
| 饮食题选项 | 对比两轮问卷原件 | 归入「不可比」 |
| 慢病清单 | 取两轮交集重算 | 用交集,不用并集 |
这张表的用法很简单:准备做跨轮分析之前,逐行填一遍。填不出来的行,就是这篇论文里不能下的结论。
附录 A:核心数字核对表
| 数字 | 值 | 来源 | 可复算性 |
|---|---|---|---|
| 2016–17 样本量 | 6,233 | 多篇论文一致 | 可直接数行 |
| 护士访视人数 | 5,520 | cohort profile Table 1 | 可数非缺失 |
| 变量数(列) | 1,165 | R 工作坊 dim() 输出 |
依赖文件版本 |
| PSU 数 | 158 | cohort profile Table 1 | 可数 n_distinct(Conglomerado) |
| 分层数 | 30 | cohort profile Table 1 | 可数 n_distinct(Estrato) |
| 大区数 | 15 | cohort profile Table 1 | 可数 n_distinct(Region) |
| 选中住户数 | 9,901 | cohort profile | 不可从数据复算 |
| 住户应答率 | 67% | cohort profile | 不可从数据复算 |
| 女性人数 | 3,918 | cohort profile | 可数 |
| 女性占比 | 62.9% | 女性人数 ÷ 样本量 | 派生 |
| 65 岁以上人数 | 1,517 | cohort profile | 可数 |
| 平均年龄 | 48.9 ± 19.3 | 文献 | 可复算 |
| 加权成人总数(18+,n=4,985) | 12,965,059 | 文献 | 依赖子集 |
| 加权成人总数(n=5,033) | 13,307,139 | 文献 | 依赖子集 |
| 糖尿病自报率 | 12.3% | 文献 | 可复算 |
| 2009–10 对比 | 8.3% | 文献 | 需另一轮数据 |
| 2003 对比 | 4.2% | 文献 | 需另一轮数据 |
两处口径差异需注意:加权成人总数有两个常见版本(约 1,296.5 万与约 1,330.7 万),来自不同的分析子集;两者都正确,引用时必须连子集条件一起写。
附录 B:数字的来源分层
| 类别 | 例子 | 可信度 | 引用方式 |
|---|---|---|---|
| 官方调查参数 | 6,233 / 158 / 30 / 15 / 9,901 / 67% | 高(cohort profile 与官方报告) | 直引,注明轮次 |
| 官方手册 | 变量名、值标签、模块划分 | 高 | 引编码本 |
| 第三方复现 | 1,165 列、dim() 输出 |
中(依赖文件版本) | 注明「据 R 工作坊复现」 |
| 文献派生 | 12.3% / 35.9% / 3.0% | 中(依赖分析子集) | 必须写子集与权重 |
| 本文派生 | 62.9% 女性占比 | 中(算术正确) | 标明派生并给算式 |
最容易混的是第四类。ENS 上的患病率数字几乎没有「官方唯一值」,每个都是某篇论文在某个子集上用某个权重算出来的。写论文时抄数字不抄条件,是最常见的错误。
附录 C:完整参考文献
| 编号 | 文献 | 用途 |
|---|---|---|
| 1 | Ministerio de Salud de Chile. Encuesta Nacional de Salud 2016–2017. Primeros Resultados. 2017 | 首轮结果 |
| 2 | MINSAL, Subsecretaría de Salud Pública. Diseño Muestral ENS 2016–2017. 2016 | 抽样设计 |
| 3 | MINSAL. Manual de uso, Base de Datos ENS 2016–2017. 2018-02-14 更新 | 使用手册 |
| 4 | MINSAL. Libro de códigos F1, F2, F3 y F4 | 编码本 |
| 5 | MINSAL. ENS2017_FactoresExp.xlsx(三个 sheet) | 权重映射 |
| 6 | Mindell JS, et al. Am J Epidemiol. 2017;186:648–658 | 七国健康检查调查方法比较 |
| 7 | Bachelet VC, Lanas F. Rev Panam Salud Publica. 2018 | ENS 2016–17 首轮结果评述 |
| 8 | 智利天主教大学 R 工作坊材料(Muestras complejas y uso de bases de datos ENS Chile en RStudio) | 复杂抽样读入与权重识别 |
| 9 | 智利天主教大学 ENS cohort profile 材料 | 三轮抽样框对照表 |
| 10 | Multimorbidity and capacity impairment, Chile ENS 2016–2017(PMC12314964) | 30 类慢病、24 题 8 维度 |
附录 D:它为何存在,以及靠什么持续
一份六千余人的调查,凭什么做了三轮、跨度 14 年,还被持续引用?这个问题决定了你该把多少信任放进去。
D.1 需求端:政策需要一个能问责的基线
智利在 2004 年建立了 GES(Garantías Explícitas en Salud)制度,用法律形式承诺一批疾病的诊疗保障。要让这个制度运转,必须知道两件事:这些病在人群里有多普遍、哪些人群没被覆盖到。医院数据回答不了——它有分母问题。全国代表性调查才能回答。
所以 ENS 从诞生起就不是学术项目,而是行政工具的一部分。它的问卷设计、抽样框、发布节奏,都服务于「给政策提供基线」这个目标。这也是为什么它能跨政府换届持续做下去——换个部长,制度还在。
D.2 供给端:三个机构各管一段
| 机构 | 职责 | 为什么是它 |
|---|---|---|
| 卫生部流行病司 | 主持、抽样框、发布 | 行政职能 |
| 智利天主教大学公共卫生系 | 田野执行、访员与护士培训、质量控制 | 学术能力 |
| DEIS | 死亡与住院登记的链接 | 数据持有方 |
| 中心实验室 | 血尿检测 | 标准化平台 |
这种分工降低了单点失败的风险。执行机构换了,抽样框还在;实验室换了,编码本还在。
D.3 让它持续被引用的三个特征
第一,可链接。 全国唯一身份码让横断面调查获得纵向价值。这一点是很多同类调查做不到的——没有统一身份码的国家,只能靠概率匹配,匹配率与误差都不可控。
第二,模块化。 F1/F2/EX 分离,各配权重。这让不同预算的研究者可以只用其中一部分——只做问卷分析的人不必为化验的缺失结构头疼。
第三,公开。 免费下载,不需签 DUA。这大幅降低了使用门槛,也解释了为什么基于它的论文数量远超很多同类调查。代价是隐私保护依赖去标识而非访问控制,官方对此的处理是移除姓名地址并以假名化形式提供。
D.4 它的脆弱点
更新慢。 2016–17 之后到 2025 年还没新一轮。对于慢病监测,十年的间隔意味着趋势判断会滞后。
文档分散。 权重映射不在编码本里,而在一个单独的 Excel 里;使用手册 2018 年之后没再维护。新用户上手成本因此偏高。
可达性不稳。 Cloudflare 拦截让部分海外用户连文件都下不到。这不是设计缺陷,但直接影响复现性。
排除人群固定。 机构居住者、孕妇、非西语者被排除。随着人口老龄化,机构居住者的占比会上升,这个排除带来的偏倚也会变大。
D.5 什么情况下它会失效
| 情形 | 后果 |
|---|---|
| 智利启动新一轮 ENS 并改动模块划分 | 跨轮比较需重做映射,旧代码失效 |
| DEIS 收紧链接数据申请 | 纵向价值大幅缩水 |
| 站点长期不可达 | 国际复现性受损,引用下降 |
| 出现覆盖更全的替代调查 | ENS 退居历史对照角色 |
最后一条值得单独想:ENS 的不可替代性来自「三轮可比 + 可链接行政数据」这两点的组合。任一点消失,它的价值都会显著下降。
附录 E:与三条替代路线的对照
要研究智利成人健康,除了 ENS,还有几条路。
E.1 路线一:行政登记(最全,但缺暴露)
DEIS 的死亡登记与住院出院记录覆盖全体人口,无抽样误差。但只有结局,没有暴露——你知道谁死了、死于什么,不知道他生前的血压、血糖、吸烟量。
适合:死亡率趋势、住院负担、疾病别经济负担。
E.2 路线二:专项队列(最深,但窄)
智利有几个专项队列,比如营养与肥胖相关的出生队列、心血管专项随访。深度远超 ENS(有重复测量、有生物样本连续采集),但只覆盖特定人群、特定主题。
适合:机制研究、暴露-反应关系。
E.3 路线三:CASEN 等社会经济调查(补充社会维度)
CASEN 覆盖收入、贫困、教育、住房,样本量大,但不做体检与化验。与 ENS 链接可补社会决定因素。
| 方案 | 覆盖 | 暴露深度 | 结局 | 成本 |
|---|---|---|---|---|
| ENS | 全国代表性 | 中(一次体检+化验) | 横断面 + 可链接 | 低(免费) |
| 行政登记 | 全体 | 无 | 死亡/住院 | 需申请 |
| 专项队列 | 特定人群 | 深 | 多次随访 | 高 |
| CASEN | 全国代表性 | 仅社会经济 | 自报健康 | 低 |
E.4 怎么选
| 你的问题 | 推荐 |
|---|---|
| 某病在人群中的患病率 | ENS |
| 某暴露与死亡的关联 | ENS + DEIS 链接 |
| 剂量-反应、机制 | 专项队列 |
| 健康不平等的经济维度 | ENS + CASEN 链接 |
| 医院负担、费用 | 行政登记 |
最实际的组合仍然是分层:用 ENS 做基线患病率,用链接的行政数据做结局,用专项队列验证机制。三者不是替代关系。
编辑说明
本篇的三类来源已分层标注在附录 B:官方调查参数(样本量、PSU 数、层数、住户数、应答率、三轮抽样框)取自智利天主教大学公共卫生系发表的 cohort profile;.sav 文件结构(dim()、变量名、九个 Fexp_* 全名、Estrato / Conglomerado 命名)取自该系公开的 R 工作坊教程;患病率与加权成人总数取自基于 ENS 2016–17 的已发表论文。核验时间 2026-10-26。
未能完成的核验:epi.minsal.cl 在本环境对部分请求返回 403(Cloudflare 拦截),无法直接下载 .sav 复核行列数,也无法直接调阅编码本 Libro de códigos。因此列数、九个权重的变量全名、模块划分等结构性描述,均依赖第三方复现材料的转录,未与官方编码本逐字比对。此限制已在 §4.1 与 §7.2 写明。
文中凡出现两个版本的加权成人总数(约 1,296.5 万与约 1,330.7 万),均为不同分析子集的合法结果,不是矛盾。§8.2 给出了子集条件,引用时须一并写明。
「智利 ENS」与「ENCODE 计划」无关。早年排期误用「ENCODE 智利」作为名称,已改正;slug 仍保留 encode-chile 以维持既有链接。此点已在导语、§9 与 FAQ 三处交代。
未覆盖内容:各检验项的分项有效样本量(需下载后统计);九个权重与每个变量的对应关系全表(官方仅以 Excel 提供);comuna 级样本量分布;重金属子库的实际覆盖人数;2025 年后是否启动新一轮(截至核验日未见官方公告)。
本篇不涉及数据文件本身的许可争议。ENS 的使用条件以 epi.minsal.cl 的 condiciones-de-uso 页面为准,链接死亡与住院登记须另行申请。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- brfss — 共享标签:公共卫生与流行病学 / 调查数据 / 公共卫生统计
- usda-fooddata-central — 共享标签:公共卫生与流行病学 / 调查数据 / 公共卫生统计
- ghdx — 共享标签:公共卫生与流行病学 / 调查数据 / 公共卫生统计
- enpd-2018 — 共享标签:公共卫生与流行病学 / 调查数据 / 公共卫生统计
- meps — 共享标签:公共卫生与流行病学 / 电子健康记录 / 调查数据
- sex-differences-hearing-loss — 共享标签:公共卫生与流行病学 / 电子健康记录 / 调查数据
- share — 共享标签:公共卫生与流行病学 / 电子健康记录 / 调查数据
- wuenic-immunization — 共享标签:公共卫生与流行病学 / 调查数据 / 公共卫生统计
- dryad — 共享标签:公共卫生与流行病学 / 调查数据
- charls — 共享标签:公共卫生与流行病学 / 电子健康记录 / 调查数据
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

