n <- 300
df_pca <- tibble(
sbp = rnorm(n,110,20),
hr = rnorm(n,95,18),
rr = rnorm(n,18,4),
gcs = rnorm(n,13,3),
lactate = rexp(n, 0.5) + 1,
spo2 = rnorm(n,96,3)
)
pca_fit <- prcomp(df_pca, scale.=TRUE)
pca_df <- as_tibble(pca_fit$x[,1:2]) |>
mutate(severity = df_pca$lactate > 4)
ggplot(pca_df, aes(PC1, PC2, color=severity)) +
geom_point(alpha=0.6) +
scale_color_manual(values=c("FALSE"="#94a3b8","TRUE"="#e63946"),
labels=c("Normal lactate","High lactate")) +
labs(title="PCA of 6 physiologic variables — PC1 vs PC2",
color="Severity") + theme_di()