场景案例 ·

公共卫生营养调查数据怎么用 AI 做统计分析?膳食摄入与 BMI 分组比较 + 多元回归全流程

营养流行病学调查数据处理难题全解:从膳食摄入量的分组描述统计、Kruskal-Wallis 非参数检验、事后多重比较到多元线性回归,ChatSRS 三引擎一句话完成,全程 APA 7th 格式输出,可直接用于公共卫生、营养学、预防医学论文。

营养流行病学调查是公共卫生研究的重要数据来源,但从膳食频率问卷(FFQ)或 24 小时膳食回顾转成可分析的格式,再做 BMI 分组比较、混杂变量控制、多元回归建模……每一步都是坑。这篇文章把公共卫生营养调查最典型的统计链条一次串通,用 chatsrs.com 三引擎(SPSS + R + Stata)演示全流程,给出可直接抄进论文的 APA 7th 结果句式。


营养调查数据分析为什么比普通问卷更复杂

公共卫生营养研究的数据有几个让人头疼的特点:

  • 偏态分布严重:能量摄入、膳食纤维摄入量常呈右偏,不能直接用均值比较,需要先做正态性检验或对数变换
  • BMI 分组涉及切割点:WHO 标准(18.5 / 24.9 / 30)还是中国标准(18.5 / 24 / 28),分组后各组样本量可能严重不均衡
  • 混杂变量多:年龄、性别、城乡、受教育程度、体力活动水平……进多元回归之前要做共线性诊断
  • 多重检验膨胀:同时比较多种营养素摄入在不同 BMI 组间的差异,不做 Bonferroni 或 Tukey 校正直接被审稿人打回
  • 结果报告格式:中文期刊常要求"以 M(P25, P75)表示",英文期刊要求"M ± SD or median (IQR)",两套格式要兼顾

chatsrs.com 的三引擎对这些场景都有直接支持:SPSS 引擎处理描述统计和基础检验,R 引擎跑混合效应和多元回归,Stata 引擎处理复杂调查加权(svyset/svy)。一次上传数据,三引擎结果自动对照校验。


典型数据结构

以一个标准的横断面营养调查为例:

ID    年龄  性别  城乡  学历    体力活动  能量(kcal)  蛋白质(g)  脂肪(g)  碳水(g)  膳食纤维(g)  身高(cm)  体重(kg)  BMI
001   35    女    城市  本科    低        1820        68.4       62.1     245.3    18.2         162       58.4     22.2
002   42    男    农村  高中    高        2340        82.7       78.6     312.1    22.6         174       89.2     29.5
003   28    女    城市  研究生  中        1650        62.1       55.8     218.7    21.4         165       54.1     19.9
...   ...   ...   ...   ...     ...       ...         ...        ...      ...      ...          ...       ...      ...

分析目标:

  1. 按 BMI 分三组(偏低/正常/超重肥胖),比较各组主要营养素摄入量
  2. 多元线性回归:以 BMI 为因变量,营养素摄入量 + 人口学变量为预测变量

全流程分析演示

第一步:变量处理与 BMI 分组

打开 chatsrs.com,上传数据后输入:

"请按中国标准将 BMI 分为三组:偏低(<18.5)、正常(18.5-23.9)、超重肥胖(>=24),生成分组变量 bmi_group;同时对能量、蛋白质、脂肪、碳水化合物、膳食纤维做 Shapiro-Wilk 正态性检验,对非正态变量标注建议用中位数(P25, P75)报告。"

ChatSRS 输出:

BMI 分组结果
偏低(BMI < 18.5):n = 48,占 11.0%
正常(18.5 <= BMI < 24):n = 276,占 63.3%
超重肥胖(BMI >= 24):n = 112,占 25.7%

Shapiro-Wilk 正态性检验(n = 436)
能量摄入:W = 0.963,p = .003  → 非正态,建议报告 Median (P25, P75)
蛋白质:  W = 0.971,p = .016  → 非正态,建议报告 Median (P25, P75)
脂肪:    W = 0.958,p < .001  → 非正态,建议报告 Median (P25, P75)
碳水化合物:W = 0.974,p = .028 → 非正态,建议报告 Median (P25, P75)
膳食纤维:W = 0.986,p = .182  → 正态,可用 M ± SD

第二步:分组描述统计 — BMI 三组营养素摄入量

"请按 bmi_group 分三组,对能量、蛋白质、脂肪、碳水化合物以中位数(P25, P75)报告,膳食纤维以均值 ± 标准差报告,生成 APA 格式三线表,并在表格底部注明各营养素的推荐参考值(中国膳食参考摄入量 DRI 2023)。"

ChatSRS 输出:

表 1  三组被试主要营养素摄入量比较

                          偏低组         正常组          超重肥胖组
                          (n = 48)       (n = 276)       (n = 112)
能量 (kcal/d)        1624(1410,1812) 1978(1742,2214) 2356(2082,2651)
蛋白质 (g/d)         58.2(51.3,67.4) 72.6(63.8,82.1) 84.3(74.2,96.7)
脂肪 (g/d)           52.4(44.6,61.8) 68.4(59.2,78.6) 87.6(76.3,101.2)
碳水化合物 (g/d)     214.8(187,248)  258.6(226,294)  298.4(261,338)
膳食纤维 (g/d, M±SD) 19.42 ± 5.18   20.84 ± 5.62    18.76 ± 6.34

注: 括号内为 P25~P75。DRI 参考值:能量 1800-2250 kcal/d(成年女性/男性),
膳食纤维 >= 25 g/d(中国 DRI 2023)。

第三步:Kruskal-Wallis 检验 + 事后多重比较

由于主要营养素摄入量非正态,用非参数检验替代单因素方差分析:

"对能量、蛋白质、脂肪、碳水化合物在三个 BMI 组间做 Kruskal-Wallis H 检验,H 值显著时做 Dunn 事后检验(Bonferroni 校正),在三线表中用字母标注显著性(a/b/ab),同时输出每个营养素对应的 epsilon 平方(epsilon^2)效应量。"

ChatSRS 输出(节选):

能量摄入:H(2) = 87.43,p < .001,epsilon^2 = .201(大效应)
  Dunn 事后检验(Bonferroni):偏低 vs 正常 p < .001;正常 vs 超重肥胖 p < .001;偏低 vs 超重肥胖 p < .001

蛋白质:H(2) = 64.28,p < .001,epsilon^2 = .147(大效应)
  Dunn:偏低 vs 正常 p < .001;正常 vs 超重肥胖 p = .003;偏低 vs 超重肥胖 p < .001

膳食纤维(正态):单因素 ANOVA F(2, 433) = 2.14,p = .119 — 三组无显著差异

如果你的数据满足正态性,可以改用单因素方差分析 + Tukey HSD,详见:方差分析 ANOVA 完整教程


第四步:相关分析 — 营养素与 BMI 的线性关系

在进多元回归之前,先看各预测变量与 BMI 的双变量关系:

"对能量、蛋白质、脂肪、碳水化合物、膳食纤维与 BMI 做 Spearman 相关分析(因营养素非正态),同时对年龄、体力活动评分(数值型)与 BMI 做 Pearson 相关,输出相关矩阵,标注显著性(* p<.05, ** p<.01)。"

ChatSRS 自动区分 Pearson / Spearman,输出完整相关矩阵,标注显著性星号。


第五步:多元线性回归 — BMI 的营养素预测模型

这是公共卫生营养论文的核心分析。分三个模型层层递进,控制混杂变量:

"以 BMI 为因变量做三个嵌套线性回归模型: 模型 1 仅纳入人口学变量(年龄、性别、城乡、受教育程度); 模型 2 在模型 1 基础上加入体力活动水平; 模型 3 在模型 2 基础上加入能量摄入、蛋白质供能比、脂肪供能比、膳食纤维。 报告每个模型的 R 方、调整 R 方、F 变化量(delta-F)及其 p 值;模型 3 报告各自变量的标准化回归系数 beta、t 值、p 值、95% CI 和 VIF;做 Durbin-Watson 自相关检验。"

ChatSRS 输出(模型 3 节选):

表 2  BMI 多元线性回归结果(模型 3,n = 436)

变量               B      SE_B   beta    t        p        95% CI           VIF
(截距)            18.42   1.34   —      13.75    < .001   [15.79, 21.05]   —
年龄(岁)         0.06   0.02   .14    3.21     .001     [0.02, 0.10]     1.18
性别(男=1)       0.84   0.24   .16    3.48     .001     [0.37, 1.31]     1.22
城乡(城市=1)    -0.41   0.23   -.08  -1.78     .075     [-0.86, 0.04]    1.19
体力活动(高=1)  -0.92   0.26   -.17  -3.54     < .001   [-1.43, -0.41]   1.31
能量摄入(kcal)   0.003  0.001  .22    4.87     < .001   [0.002, 0.004]   2.14
蛋白质供能比(%) -0.08   0.06   -.06  -1.33     .184     [-0.20, 0.04]    2.38
脂肪供能比(%)    0.12   0.04   .18    3.12     .002     [0.04, 0.20]     2.67
膳食纤维(g)     -0.04   0.02   -.08  -2.11     .035     [-0.08, -0.003]  1.44

模型拟合:R^2 = .312,Adjusted R^2 = .297,F(8, 427) = 24.18,p < .001
Delta-F(模型 3 vs 模型 2):F(4, 427) = 18.64,p < .001
Durbin-Watson = 1.93(无自相关问题,参考值 1.5-2.5)
VIF 最大值 = 2.67(无严重共线性,阈值 < 10)

论文方法/结果写法(APA 7th,公共卫生营养报告句式)

这是最直接帮到你的部分,可抄进论文的 APA 7th 格式句式。

方法章节:数据分析策略

正态性检验采用 Shapiro-Wilk 检验。连续变量以均值 ± 标准差(M ± SD)或中位数(四分位距,P25, P75)描述;分类变量以频率(百分比)描述。三个 BMI 组间营养素摄入量的比较采用 Kruskal-Wallis H 检验,显著时进行 Dunn 事后多重比较(Bonferroni 法校正),效应量以 epsilon 平方(epsilon^2)报告。BMI 影响因素分析采用嵌套多元线性回归(Enter 法),共构建三个层次模型;各预测变量的贡献以标准化回归系数(beta)反映;共线性以方差膨胀因子(VIF)诊断(阈值 < 10);自相关以 Durbin-Watson 统计量检验。统计分析使用 ChatSRS 完成(SPSS + R 双引擎交叉验证,显著性水平 alpha = .05)。

结果章节:分组比较(Kruskal-Wallis)

Kruskal-Wallis 检验显示,三个 BMI 组的能量摄入差异具有统计学意义,H(2) = 87.43,p < .001,epsilon^2 = .201,属于大效应。Dunn 事后检验(Bonferroni 校正)显示,各组两两间差异均显著(均 p < .001):偏低组中位能量摄入为 1624(IQR: 1410–1812)kcal/d,正常组为 1978(1742–2214)kcal/d,超重肥胖组为 2356(2082–2651)kcal/d,三组间呈递增趋势。

结果章节:多元线性回归

嵌套多元线性回归分析显示,纳入所有预测变量的模型 3 具有显著的统计学意义,F(8, 427) = 24.18,p < .001,可解释 BMI 变异的 29.7%(Adjusted R^2 = .297)。在控制人口学变量和体力活动后,能量摄入(beta = .22,p < .001)和脂肪供能比(beta = .18,p = .002)是 BMI 的正向预测变量,膳食纤维摄入量(beta = -.08,p = .035)是 BMI 的负向预测变量。蛋白质供能比对 BMI 的预测效应未达显著水平(beta = -.06,p = .184)。VIF 最大值为 2.67,表明各预测变量之间无严重共线性问题。


上面三段可以直接进论文的 Methods 和 Results 章节,替换你自己的数值即可。ChatSRS 的"APA 报告"功能在分析完成后自动生成对应段落,无需手动转写。


三引擎在营养调查分析中的分工

chatsrs.com 底层的三个引擎在处理公共卫生营养数据时各有优势:

分析任务推荐引擎原因
基础描述统计、频数表SPSS输出格式最接近中文期刊习惯
Kruskal-Wallis + Dunn 事后检验R (dunn.test 包)事后检验方法最完整
嵌套回归、Delta-F 变化量R / Statalm() 嵌套模型与 lrtest 最直接
复杂调查权重(svy)分析Statasvyset + svy: regress 是标准
APA 格式自动报告三引擎统一输出结果交叉验证后取一致数值

ChatSRS 默认同时跑三个引擎,如果三者数值出现差异(通常差异极小),会高亮标注并给出差异原因解释。


常见 FAQ

Q1: 营养素摄入量一般都是偏态的,一定要用非参数检验吗?

不一定。有两种合理策略:

策略 A(非参数):直接用 Kruskal-Wallis + Dunn,以中位数(IQR)报告,不做任何变换。优点是透明,缺点是检验功效略低于参数检验。

策略 B(对数变换后参数检验):对摄入量做 log 变换,若变换后正态性满足则做单因素 ANOVA + Tukey 事后检验,以几何均数(95% CI)报告。优点是更高检验功效,缺点是报告结果的可读性稍低。

在 ChatSRS 输入:

"对能量摄入做自然对数变换(ln),检验变换后正态性,若满足则做单因素 ANOVA;若仍不满足则用 Kruskal-Wallis;输出两种方案并推荐选择。"

ChatSRS 自动检验两种方案并给出推荐。

Q2: BMI 分组的切割点用中国标准还是 WHO 标准?

取决于研究人群和投稿期刊:

  • 中文核心期刊 / 中国人群研究:建议中国标准(18.5 / 24 / 28),超重定义为 BMI 24–27.9,肥胖 >= 28
  • SCI 英文期刊 / 国际对比研究:用 WHO 标准(18.5 / 25 / 30),超重 25–29.9,肥胖 >= 30
  • 两套标准都报告:在结果章节同时呈现两种分组下的分析结果,在方法章节注明选择理由

ChatSRS 支持自定义分组切割点,在指令中说明即可。

Q3: 多元回归中营养素变量选择太多,如何避免过拟合?

常见处理方式:

  1. 供能比替代绝对摄入量:用蛋白质供能比(%)、脂肪供能比(%)、碳水化合物供能比(%)代替克数,三者之和为 100%(多重共线性风险降低,且已控制能量摄入)
  2. 逐步回归:让模型自动筛选变量(但要在方法中说明用 Enter 还是 Stepwise,审稿人偏好 Enter 法 + 理论驱动变量选择)
  3. 样本量检验:多元回归建议每个预测变量至少 10-20 个观测,10 个预测变量需 200+ 样本

在 ChatSRS 输入:

"做向后逐步回归(Backward elimination, p-out = .10),报告最终保留变量及 AIC 变化,与 Enter 法全变量模型做 R 方对比。"

Q4: 如何在结果中报告"各组营养素摄入达标率"?

这是营养流行病学论文中常见的一类描述。在 ChatSRS 输入:

"以中国 DRI 2023 为参考,计算各 BMI 组中能量摄入不足(< EAR)、适宜(EAR-UL 区间)、过量(> UL)的人数和比例;对比三组间达标率差异做卡方检验,报告 chi^2 值、自由度、p 值和 Cramer's V 效应量。"

卡方检验详细教程参见:卡方检验与列联表分析 AI 完整教程

Q5: 论文要求用 SPSS,能用 ChatSRS 的结果直接引用吗?

可以。ChatSRS 的 SPSS 引擎在底层调用等价的统计算法,数值结果与 SPSS 输出一致。方法章节规范写法:

"本研究统计分析采用 ChatSRS 平台(SPSS 引擎,v2026;https://chatsrs.com),Kruskal-Wallis 事后检验采用 Dunn 法(Bonferroni 校正),多元线性回归采用逐步强迫纳入法(Enter method)。"


公共卫生营养数据分析方法速查

分析目的方法ChatSRS 指令关键词
检验摄入量分布Shapiro-Wilk 正态性检验"正态性检验,Shapiro-Wilk"
分组描述统计分组均值/中位数三线表"按 BMI 组描述统计,APA 三线表"
非正态分组比较Kruskal-Wallis + Dunn"非参数多组比较,Bonferroni 校正"
正态分组比较单因素 ANOVA + Tukey"单因素方差分析,Tukey 事后检验"
达标率组间比较卡方检验 + Cramer's V"达标率卡方检验,Cramer's V 效应量"
营养素相关性Spearman 相关矩阵"Spearman 相关,显著性标注"
BMI 影响因素嵌套多元线性回归"嵌套回归三层模型,VIF 共线性"
复杂抽样调查Stata svy 加权分析"调查权重,svyset,Stata 引擎"

相关阅读


本文首发于 ChatSRS 官方博客。如有问题或反馈,欢迎在 ChatSRS 站内 [用户中心 -> 帮助与反馈] 联系我们。