K-means 聚类在护理人群分型中的应用
1. 一句话告诉你这是什么
K-means 聚类将研究对象分成 K 个组,使得组内个体尽可能相似、组间尽可能不同。在护理研究中用于识别患者亚型——如”哪种衰弱模式的老年患者风险最高”。
2. 什么时候用,什么时候别用
适合用
- 变量为连续数值(如量表得分、生化指标、生理测量值)
- 存在理论上的亚群结构(如不同症状模式的患者)
- 用于探索性分析,为后续建模生成分组标签
不适合用
- 变量为分类或有序变量(应用 K-medoids 或谱聚类)
- 样本量太小(,聚类结果不稳定)
- 数据包含大量噪声变量(聚类效果会被稀释)
3. 数据准备清单
- 所有变量为连续数值型
- 变量已标准化(均值 = 0,标准差 = 1),避免量纲影响
- 无严重离群值(K-means 对离群值敏感)
- 缺失值已处理(插补或行删除)
- 已初步确定 K 的大致范围(如肘部图法)
4. 方法直觉
K-means 的核心思想:选 K 个中心点,每个样本归到最近的中心点,然后重新计算中心点位置,反复迭代直至稳定。
其中 表示样本 属于簇 ,否则为 0。 是第 个簇的中心。
点击展开:如何确定最优 K
肘部法:对 K = 1, 2, …, 10 分别计算组内平方和(within-cluster SSE),绘制”K-SSE”曲线,选择拐点处的 K。
轮廓系数:综合每个点的凝聚度和分离度,取值 ,越大越好。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%),三组在全部指标上差异有统计学意义()。
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 ().
8. 三个最常见的坑
- K 值选择主观性过强。 肘部法不是总有清晰拐点,建议同时参考轮廓系数和领域可解释性,不要只看统计指标。
- 变量量纲未标准化。 得分范围大的变量(如 0-100 的 QoL)会主导距离计算,导致小范围变量(如 0-10 的疼痛评分)几乎不起作用。
- 将聚类标签直接用于后续回归不做不确定性考量。 聚类是估计结果而非观测变量,直接纳入回归会低估标准误。建议用一步法(如 LCA 同时建模聚类与结局)。
在线运行
在线运行
点击"运行"按钮,在浏览器中执行 R 分析。首次使用需等待 WebR 初始化。