智利 ENS 全国健康调查:三轮横断面的体检与问卷

1988–2017 / 三轮横断面 / 158 个 PSU / 1,165 个变量

来源 https://epi.minsal.cl/encuesta-ens-descargable/发布时间: 2026-10-26最后更新: 2026-10-26 阅读 11
智利 ENS 全国健康调查:三轮横断面的体检与问卷

信息速览

数据集名称智利 ENS 全国健康调查:三轮横断面的体检与问卷
数据类型原始数据,人工标注,调查数据
规模6,233 人(2016–17 轮);三轮合计 15,262 人(3,619 / 5,410 / 6,233)
接入方式https://epi.minsal.cl/encuesta-ens-descargable/
AI 就绪度

智利 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 引用要求

必须引用三样:

  1. 调查本身:Ministerio de Salud de Chile. Encuesta Nacional de Salud 2016–2017. Santiago: MINSAL, 2017.
  2. 使用条件页面:http://epi.minsal.cl/condiciones-de-uso/
  3. 如果在英文期刊发表,需同时引用方法学文献。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 — 共享标签:公共卫生与流行病学 / 电子健康记录 / 调查数据

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集