【问题标题】:Odds ratios using Python statsmodels使用 Python statsmodels 的优势比
【发布时间】:2021-09-23 19:25:13
【问题描述】:

我正在使用 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 的对比)

【问题讨论】:

    标签: python pandas statistics regression logistic-regression


    【解决方案1】:

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

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

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

    要做到这一点,请确保您已将 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。

    所以你可以在这里说两件事中的一件:

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

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

    【讨论】:

    • 感谢您的精彩回答,Gabe。我的理解是优势比的单位也可以通过将 OR 提高到指数来直接转换。例如,使用您的示例,2.75^(0.1)。我很高兴这会产生相同的结果。
    • 正确!仔细检查的好方法。很高兴我能帮上忙。
    猜你喜欢
    • 2016-10-05
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 2021-11-10
    • 2018-04-06
    • 1970-01-01
    • 2010-10-22
    相关资源
    最近更新 更多