- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在解释逻辑回归的结果时遇到困难。我的结果变量是 Decision
并且是二进制的(0 或 1,分别不采用或采用产品)。
我的预测变量是 Thoughts
,它是连续的,可以是正值,也可以是负值,并且四舍五入到小数点后第二位。
我想知道随着 Thoughts
的变化,获取该产品的概率如何变化。
逻辑回归方程为:
glm(Decision ~ Thoughts, family = binomial, data = data)
根据此模型,想法
对决策
的概率具有重大影响(b = .72,p = .02)。确定 Decision
的优势比作为 Thoughts
的函数:
exp(coef(results))
优势比 = 2.07。
问题:
如何解释优势比?
想法
增加(或减少)0.01 会影响采用(或不采用)产品的几率 0.07 或 Thoughts
增加(减少)0.01,采用(不采用)产品的几率会增加(减少)大约 2 个单位?如何将想法
的优势比转换为决策
的估计概率?
或者我可以只估计在某个Thoughts
分数下Decision
的概率(即计算当Thoughts == 1
时采取产品的估计概率) )?
最佳答案
r 中逻辑回归返回的系数是 logit,或几率的对数。要将 logits 转换为优势比,您可以对其求幂,就像上面所做的那样。要将 logits 转换为概率,您可以使用函数 exp(logit)/(1+exp(logit))
。但是,此过程有一些注意事项。
首先,我将使用一些可重现的数据来说明
library('MASS')
data("menarche")
m<-glm(cbind(Menarche, Total-Menarche) ~ Age, family=binomial, data=menarche)
summary(m)
这将返回:
Call:
glm(formula = cbind(Menarche, Total - Menarche) ~ Age, family = binomial,
data = menarche)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.0363 -0.9953 -0.4900 0.7780 1.3675
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -21.22639 0.77068 -27.54 <2e-16 ***
Age 1.63197 0.05895 27.68 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3693.884 on 24 degrees of freedom
Residual deviance: 26.703 on 23 degrees of freedom
AIC: 114.76
Number of Fisher Scoring iterations: 4
显示的系数适用于 logits,就像您的示例中一样。如果我们绘制这些数据和该模型,我们会看到 sigmoidal 函数,它是适合二项式数据的逻辑模型的特征
#predict gives the predicted value in terms of logits
plot.dat <- data.frame(prob = menarche$Menarche/menarche$Total,
age = menarche$Age,
fit = predict(m, menarche))
#convert those logit values to probabilities
plot.dat$fit_prob <- exp(plot.dat$fit)/(1+exp(plot.dat$fit))
library(ggplot2)
ggplot(plot.dat, aes(x=age, y=prob)) +
geom_point() +
geom_line(aes(x=age, y=fit_prob))
请注意,概率的变化不是恒定的 - 曲线首先缓慢上升,然后在中间更快,然后在最后趋于平稳。 10和12之间的概率差异远小于12和14之间的概率差异。这意味着如果不进行概率变换,就不可能用一个数字来概括年龄和概率的关系。
回答您的具体问题:
截距值的优势比是当 x = 0(即零想法)时“成功”的几率(在您的数据中,这是取乘积的几率)。系数的优势比是当您添加一个完整的 x 值(即 x=1;一个想法)时,高于该截距值的优势增加。使用初潮数据:
exp(coef(m))
(Intercept) Age
6.046358e-10 5.113931e+00
我们可以将此解释为年龄 = 0 时初潮发生的几率为 0.00000000006。或者说,基本上不可能。对年龄系数求幂可以告诉我们每个年龄单位初潮几率的预期增加。在这种情况下,它刚刚增加了五倍多。优势比为 1 表示没有变化,优势比为 2 表示加倍,等等。
优势比为 2.07,意味着“想法”每增加 1 个单位,获得该产品的可能性就会增加 2.07 倍。
您需要对选定的想法值执行此操作,因为正如您在上图中看到的那样,变化在 x 值范围内并不是恒定的。如果您想要思想具有某种值(value)的概率,请按如下方式获取答案:
exp(intercept + coef*THOUGHT_Value)/(1+(exp(intercept+coef*THOUGHT_Value))
关于R:计算和解释逻辑回归中的优势比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41384075/
首先对WCF与WebService的定义进行概括,接着介绍了WCF的优势,最后就是对WCF与WebService两者的根本区别进行比较,具体内容如下 1、定义 1.WebService:严格来
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 5年前关闭。 Improve t
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
谁能告诉我将下一个脚本标记放在 元素之后和将它放在 元素之前有什么好处? (function (){ var script = document.createElement("script"); s
我最近遇到了一个 JavaScript 脚本,其中作者似乎试图避免在代码中使用字符串并将所有内容都分配给一个变量。 所以代替 document.addEventListener('click', (e
Scott Meyers 在“Effective Modern C++”中说表达式 Matrix sum = m1 + m2 + m3 + m4 (其中所有对象的类型均为 Matrix)“如果 ope
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
免责声明:我是网络开发的新手,所以请多多包涵... 堆栈:Angular 前端,后端的 Tornado(基于 python)网络服务器 我一直在使用 RxJs 和 WebSocket 成功地与后端通信
我一直在调查我的 Flutter 应用程序的 JSON 解析,并且有一个关于我无法解决的工厂构造函数的问题。我试图了解使用工厂构造函数与普通构造函数的优势。例如,我看到很多 JSON 解析示例,它们使
添加 SQL 后尝试打开 TadsQuery 时出现 5400 AE_INTERNAL_ERROR。当我将相同的 SQL 直接放在 TadsQuery 中时,没有错误。您的帮助文件指示我联系 Adva
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 8年前关闭。 Improve this
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improv
我想定义一个函数,当给定一个整数时,它将返回一个字符串。像这样: # Pseudocode function get_string(i) return my_string_array[i] end
我曾尝试在 Linux 和 Windows 上使用 DBD::Advantage,但没有成功。 Windows 版本附带了一个看似完整的安装程序,但它留下了 DBD-Advantage-8.10.ta
为什么说 NoSQL 在结构上比某些 SQL 数据库更快?假设我在某个 SQL 表的列上添加了一些索引。有人可以提供某种更快的查询吗? 我正在阅读有关 redis 的内容。 class User <
我的问题很简单:如果接口(interface)由单个类实现,那么使用接口(interface)有什么好处吗? 我一直认为只有当该接口(interface)有多个实现时,接口(interface)才是好
考虑这些(或多或少)等价的类型签名: f1 :: [a] -> Int -> a f2 :: Integral b => [a] -> b -> a f2 比 f1 更通用,这是一个很大的优势,但是
我们在 Scala 中部分应用了函数- def sum(a:Int,b:Int,c:Int) = a+b+c val partial1 = sum(1,_:Int,8) 我想知道使用部分应用函数的优点
你看下面的代码,我是如何使用 session 变量的;所以这三个问题是: 它们存放在哪里? (服务器或客户端) 它们对于每个网页访问者来说都是独一无二的吗? 我可以在完成工作后使用 ajax 或简单的
我知道这是一个常见问题,互联网上有关于此主题的资源,但我想从这个社区了解每个人在部署博客时对子域与子文件夹的想法(SEO 优势)。 谢谢。 最佳答案 我研究过一次,根据社区反馈以及权衡利弊,我会说去一
我是一名优秀的程序员,十分优秀!