GLM 回归预测 - 了解哪个因素水平是成功的

C. *_*ohn 3 regression r prediction glm

我建立了一个二项式 glm 模型。该模型预测两个潜在类别之间的输出:AD 或 Control。这些变量是具有水平的因素:{AD,控制}。我使用这个模型来预测并获得每个样本的概率,但我不清楚概率超过 0.5 是否表示 AD 或 Control。

这是我的数据集:

> head(example)
          cleaned_mayo$Diagnosis pca_results$x[, 1]
1052_TCX                      AD          0.9613241
1104_TCX                      AD         -0.9327390
742_TCX                       AD          1.6908874
1945_TCX                 Control          0.6819104
134_TCX                       AD          0.5184748
11386_TCX                Control          0.4669661
Run Code Online (Sandbox Code Playgroud)

这是我计算模型并进行预测的代码:

# Randomize rows of top performer
example<- example[sample(nrow(example)),]

# Subset data for training and testing
N_train<- round(nrow(example)*0.75)
train<- example[1:N_train,]
test<- example[(N_train+1):nrow(example),]
colnames(train)[1:2]<- c("Diagnosis", "Eigen_gene")
colnames(test)[1:2]<- c("Diagnosis", "Eigen_gene")

# Build model and predict   
model_IFGyel<- glm(Diagnosis ~ Eigen_gene, data = train, family = binomial())
pred<- predict(model_IFGyel, newdata= test, type= "response")

# Convert predictions to accuracy metric
pred[which(pred<0.5)]<- "AD"
pred[which(pred!="AD")]<- "Control"
test$Diagnosis<- as.character(test$Diagnosis)
example_acc<- sum(test$Diagnosis==pred, na.rm = T)/nrow(test)
Run Code Online (Sandbox Code Playgroud)

任何有助于澄清这些预测概率所表明的内容的帮助都是值得赞赏的。

Rei*_*son 5

?glm

\n\n
\n

细节:

\n\n

典型的预测变量的形式为 \xe2\x80\x98response ~ terms\xe2\x80\x99 其中\n \xe2\x80\x98response\xe2\x80\x99 是(数字)响应向量,而 \xe2\x80\x98terms\ xe2\x80\x99 是一系列项,用于指定 \xe2\x80\x98response\xe2\x80\x99 的线性预测器。\n 对于 \xe2\x80\x98binomial\xe2\x80\x99 和 \xe2\ x80\x98quasibinomial\xe2\x80\x99 系列响应也可以指定为 \xe2\x80\x98factor\xe2\x80\x99 (当第一级表示失败且所有其他级别表示成功时)或作为两个- 列矩阵,其中列给出了成功和失败的数量。

\n
\n\n

关键部分被突出显示。假设您没有指定级别(即发生了 R 的默认分配),那么AD将会是失败并且Control将会是成功。因此,系数/模型将根据观察结果属于该类的概率来表示Control

\n\n

如果您想更改此设置,请使用factor(...., levels = c('Control', 'AD'))或仅执行 1 - prob(Control) (1 - 预测值) 来获取 的形式AD

\n