进阶 可在线运行 更新于 2026-05-05

K-means 聚类在护理人群分型中的应用

1. 一句话告诉你这是什么

K-means 聚类将研究对象分成 K 个组,使得组内个体尽可能相似、组间尽可能不同。在护理研究中用于识别患者亚型——如”哪种衰弱模式的老年患者风险最高”。

2. 什么时候用,什么时候别用

适合用

  • 变量为连续数值(如量表得分、生化指标、生理测量值)
  • 存在理论上的亚群结构(如不同症状模式的患者)
  • 用于探索性分析,为后续建模生成分组标签

不适合用

  • 变量为分类或有序变量(应用 K-medoids 或谱聚类)
  • 样本量太小(n<50n < 50,聚类结果不稳定)
  • 数据包含大量噪声变量(聚类效果会被稀释)

3. 数据准备清单

  • 所有变量为连续数值型
  • 变量已标准化(均值 = 0,标准差 = 1),避免量纲影响
  • 无严重离群值(K-means 对离群值敏感)
  • 缺失值已处理(插补或行删除)
  • 已初步确定 K 的大致范围(如肘部图法)

4. 方法直觉

K-means 的核心思想:选 K 个中心点,每个样本归到最近的中心点,然后重新计算中心点位置,反复迭代直至稳定。

目标:最小化 i=1nj=1kwijxiμj2\text{目标:最小化 } \sum_{i=1}^{n} \sum_{j=1}^{k} w_{ij} \| x_i - \mu_j \|^2

其中 wij=1w_{ij} = 1 表示样本 ii 属于簇 jj,否则为 0。μj\mu_j 是第 jj 个簇的中心。

点击展开:如何确定最优 K

肘部法:对 K = 1, 2, …, 10 分别计算组内平方和(within-cluster SSE),绘制”K-SSE”曲线,选择拐点处的 K。

轮廓系数:综合每个点的凝聚度和分离度,取值 [1,1][-1, 1],越大越好。K 的选择应使平均轮廓系数最大。

5. R 代码(复制即可跑)

library(broom)

# 模拟护理研究数据
set.seed(2026)
n <- 300
df <- data.frame(
  fatigue   = c(rnorm(n/3, 3, 1), rnorm(n/3, 5, 1), rnorm(n/3, 7, 1)),  # 疲乏评分
  pain      = c(rnorm(n/3, 2, 1), rnorm(n/3, 5, 1), rnorm(n/3, 8, 1)),  # 疼痛评分
  sleep     = c(rnorm(n/3, 7, 1), rnorm(n/3, 5, 1), rnorm(n/3, 3, 1))   # 睡眠质量(高=好)
)

# 标准化
df_scaled <- scale(df)

# 肘部法确定 K
wss <- sapply(1:10, function(k) kmeans(df_scaled, centers = k, nstart = 25)$tot.withinss)
plot(1:10, wss, type = "b", xlab = "K", ylab = "组内平方和")           # ⬅ 找拐点

# 拟合 K = 3 的聚类
km <- kmeans(df_scaled, centers = 3, nstart = 25)

# 查看簇中心
km$centers                                                   # ⬅ 各变量在各簇的均值

# 将聚类标签加入原数据
df$cluster <- factor(km$cluster)

6. 结果怎么读

项目值(示例)含义
K 值3将患者分为 3 个亚型
每簇样本量98 / 102 / 100分布基本均匀,未出现极小簇
簇中心差异簇1: 疲乏低/痛轻/睡好”轻型”组,症状负担最轻
簇中心差异簇2: 中度”中度”组,症状居中
簇中心差异簇3: 疲乏高/痛重/睡差”高负担”组,症状最重

7. 论文里怎么写

中文: 采用 K-means 聚类基于三个核心症状指标(疲乏、疼痛、睡眠质量)对 300 例患者进行亚型识别。肘部法提示 K = 3 为最优解,三类患者分别命名为”低负担组”(32.7%)、“中度症状组”(34.0%)和”高负担组”(33.3%),三组在全部指标上差异有统计学意义(p<0.001p < 0.001)。

English: K-means clustering was applied to identify patient subgroups based on three core symptom indicators (fatigue, pain, and sleep quality). The elbow method suggested an optimal K of 3, classifying patients into “low-burden” (32.7%), “moderate-symptom” (34.0%), and “high-burden” (33.3%) groups, with significant differences across all indicators (p<0.001p < 0.001).

8. 三个最常见的坑

  1. K 值选择主观性过强。 肘部法不是总有清晰拐点,建议同时参考轮廓系数和领域可解释性,不要只看统计指标。
  2. 变量量纲未标准化。 得分范围大的变量(如 0-100 的 QoL)会主导距离计算,导致小范围变量(如 0-10 的疼痛评分)几乎不起作用。
  3. 将聚类标签直接用于后续回归不做不确定性考量。 聚类是估计结果而非观测变量,直接纳入回归会低估标准误。建议用一步法(如 LCA 同时建模聚类与结局)。

在线运行

在线运行

点击"运行"按钮,在浏览器中执行 R 分析。首次使用需等待 WebR 初始化。