概括
您似乎正在查看症状(a、b、c、d 和 e,编码为线性数字变量)和癌症状态(是与否,以二进制编码)之间的关联。
关联与预测
我认为您正在研究症状与癌症状态之间的关联,而不是症状预测癌症状态的能力。如果你想真正研究预测能力,你需要将你的数据集分成两半,将模型拟合到一半的数据中,然后用它们来预测另一半数据集中患者的癌症状态。请注意,这描述了使用单个数据集验证模型的最简单情况。你实际上不应该这样做。您真正可以做的是使用 n 折交叉验证(例如,使用rms
R 中的包)来最有效地利用您的数据。
出发
您可能已经这样做了,但在使用逻辑回归建模之前,我认为您应该退后一步,只看一下您的数据。使用程序 R 计算一些基本的汇总统计...
# Load libraries
library(Rmisc)
library(metafor)
# Load data
data <- read.csv("example_data.csv", header = TRUE, na.strings = "")
attach(data)
# Summarize data
summary(data)
a b c d e cancer
Min. :11.0 Min. :13.00 Min. :13.00 Min. :12.00 Min. :17.00 Min. :0.0000
1st Qu.:19.0 1st Qu.:27.00 1st Qu.:28.00 1st Qu.:36.00 1st Qu.:33.00 1st Qu.:1.0000
Median :24.0 Median :31.00 Median :32.00 Median :40.00 Median :38.00 Median :1.0000
Mean :24.8 Mean :31.39 Mean :32.44 Mean :39.39 Mean :37.71 Mean :0.9169
3rd Qu.:30.0 3rd Qu.:36.00 3rd Qu.:37.00 3rd Qu.:43.50 3rd Qu.:42.00 3rd Qu.:1.0000
Max. :49.0 Max. :50.00 Max. :50.00 Max. :50.00 Max. :50.00 Max. :1.0000
NA's :20 NA's :18 NA's :21 NA's :20 NA's :20 NA's :6
现在绘制一些探索性散点图......注意突然出现的变量之间的任何线性关系。还要注意(正如本杰明下面提到的)症状变量与癌症状态的关系图。
plot(data)

并查看一些直方图以了解数据的分布......在将它们插入回归模型之前这样做总是好的
hist(data)

再进一步……
我会计算每个症状变量的平均值和 95% CI,并按癌症状态对它们进行分层并绘制它们……只要看看这个,你就会直观地知道哪些变量在你的逻辑回归模型中是显着的。这里我只是绘制数据...
forest(
x = c(24.44636,28.94667,31.63066,28.62963,32.59910,30.65852,39.79738,35.04111,37.99030,34.41185),
ci.lb = c(23.57979,25.72939,30.84611,26.15883,31.88579,28.52778,39.16493,32.27390,37.26171,32.10734),
ci.ub = c(25.31292,32.16395,32.41520,31.10043,33.31242,32.78926,40.42983,37.80832,38.71888,36.71637),
xlab = "Mean and 95% CI", slab = c("a cancer","a healthy","b cancer","b healthy","c cancer","c healthy","d cancer","d healthy","e cancer","e healthy"))

查看上面的图表,您可以直观地感受到这样一个事实:与非癌症患者相比,对数据集做出贡献的癌症患者要多得多。
最后的...
我只会计算每个症状变量与癌症结果相关的单变量效应估计值。然后我会将所有得到的 p 值乘以 5,因为您正在进行许多探索性测试。您可以在 SPSS 中轻松做到这一点。对于模型的结果,我将更多地关注结果效应估计的方向、幅度和置信区间。下面我绘制了每个单独症状变量的单变量模型的效果估计值及其置信区间...现在您应该建立针对年龄、性别、吸烟等进行调整的模型,并制作另一个像这样的图...我确实同意本杰明的观点,鉴于缺乏健康对照,您可能无法从这些数据中学到很多东西。
