使用 Python 状态模型的优势比

Odds ratios using Python statsmodels

我 运行 使用 statsmodels logit 进行逻辑回归,并且在下游计算每个自变量(即 exp(B))的比值比。

我知道,按照惯例,优势比是根据变量值每增加“一个单位”来解释的。我认为我的最终问题是我如何知道这里真正的“一个单位”是什么,以及它是否取决于相关列数据的精度。

一个参数 respiratory_rate 具有整数值(22、26、30、12 等)。所以我可以假设 respiratory_rate 增加一个单位就是一个整数。

但是,第二个参数温度的值具有小数点到十分位的值(97.8、98.4、99.5、100.3 等)。这里,对于温度的优势比,“一个单位增加”是十分之一的增加,即增加0.1?

(我认为这可能特定于回归引擎,即 statsmodels,因此我在这里发帖与 stats.stackexchange)

简单的答案是 1 个单位对应 1 度的温度变化。整数单位更改仍然适用,就像在 respiratory_rate 中一样,您只是碰巧对温度变量有更高的精度。 OR = 2.75 意味着温度升高 1 个单位(1 度),结果的几率会增加 2.75 倍。

现在,也许让您的听众真正了解十分之一度变化的温度变化(即从 100.1 增加 0.1 到 100.2)很重要。他们可能需要那种精确度,因为即使温度的微小变化也特别有意义,我不知道。

但是为了适应新的上下文,您需要直接转换对数赔率。对数赔率就是赔率的对数。

要做到这一点,请确保您已将 numpy 导入为 np.现在假设我们的 OR = 2.75。 np.log(2.75) = 1.014。要以正常单位的十分之一(即度数变化 0.1)进行解释,我们将采用 1.014 * 0.1 = 0.1014(您的新对数赔率)。然后将其转换回您的优势比:np.exp(0.1014) = new OR = 1.1067.

所以你可以在这里说 2 件事中的 1 件事:

  • 温度每升高 1 个单位(1 度),结果的几率就会增加 2.75 倍。
  • 温度每升高 0.1 个单位(0.1 度),结果的几率就会增加 1.11 倍。

查看这篇文章了解更多信息:https://online.stat.psu.edu/stat462/node/207/