如何解决如何将诊断预测模型应用于新数据
在一些帮助下,我对 boostrapped 和多重插补数据集执行了 LASSO 回归,以构建一个诊断模型,该模型可以使用大量预测变量区分疾病 A 和疾病 B。
最终,我得到了下表,其中包含了选定的变量(都是以是/否作为结果的分类变量)及其系数:
预测器 | 平均回归系数 |
---|---|
拦截 | 10.141 |
var1 | 1.671 |
Var2 | -1.971 |
Var3 | -5.266 |
Var4 | -2.244 |
Var5 | 5.266 |
我的问题是:我如何使用上表来预测新患者(尚未用于构建 te 模型)是否患有疾病 A 或疾病 B。
我想到了以下几点:
拦截 + (1.671 (var1) x 0 or 1) - (1.971 (var2) x 0 or 1) - (5.266 (var3) x 0 or 1) ..... + (5.266 (var5) x 0或 1) = X
患疾病 A 的概率(在数据集中编码为 1)= e^X / (1+ e^X)
但是这种方法正确吗?
希望有人能帮我解决这个问题!
解决方法
是的,因为您描述的是逻辑回归,所以步骤是正确的。这些是根据模型计算预测的步骤。
a) 将系数乘以 x 个变量,如果适用,确保包括截距(值为 1)
b) 对 a) 的结果求和
c) 取幂以产生对数赔率
d) 用 log_odds / (1 + log_odds) 计算最终概率
您没有提到特定的语言,但这里有一些 python
中使用 pandas/numpy
的伪代码,假设数据集 x_variables
和 series
的熊猫 coefficients
1}}。
scores = x_variables.transpose()
scores = transpose_predictors.mul(coefficients,axis = 0)
sum_scores = scores.sum(axis = 0,skipna = True)
log_odds = np.exp(sum_scores)
final_scores = log_odds / (1 + log_odds)
编辑:R
中的相同代码,其中 coefficients
是系数值的向量。
# do the scoring via matrix multiplication
scores <- t(t(x_variables) * coefficients)
# sum the scores by row and exponentiate.
log_odds <- exp(rowSums(scores,na.rm = TRUE))
final_scores <- log_odds / (1 + log_odds)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。