c语言的虚拟变量,含有分类变量(categorical variable)的逻辑回归(logistic regression)中虚拟变量(哑变量,dummy variable)的理解...
使用R语言做逻辑回归的时候,当自变量中有分类变量(大于两个)的时候,对于回归模型的结果有一点困惑,搜索相关知识发现不少人也有相同的疑问,通过查阅资料这里给出自己的理解。
首先看一个实例(数据下载自:http://freakonometrics.free.fr/db.txt)
> db
> head(db)
Y X1 X2 X3
1 1 3.297569 16.25411 B
2 1 6.418031 18.45130 D
3 1 5.279068 16.61806 B
4 1 5.539834 19.72158 C
5 1 4.123464 18.38634 C
6 1 7.778443 19.58338 C
> summary(db)
Y X1 X2 X3
Min. :0.000 Min. :-1.229 Min. :10.93 A:197
1st Qu.:1.000 1st Qu.: 4.545 1st Qu.:17.98 B:206
Median :1.000 Median : 5.982 Median :20.00 C:196
Mean :0.921 Mean : 5.958 Mean :19.94 D:197
3rd Qu.:1.000 3rd Qu.: 7.358 3rd Qu.:21.89 E:204
Max. :1.000 Max. :11.966 Max. :28.71
> reg
> summary(reg)
Call:
glm(formula = Y ~ X1 + X2 + X3, family = binomial, data = db)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.98017 0.09327 0.19106 0.37000 1.50646
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -4.45885 1.04646 -4.261 2.04e-05 ***
X1 0.51664 0.11178 4.622 3.80e-06 ***
X2 0.21008 0.07247 2.899 0.003745 **
X3B 1.74496 0.49952 3.493 0.000477 ***
X3C -0.03470 0.35691 -0.097 0.922543
X3D 0.08004 0.34916 0.229 0.818672
X3E 2.21966 0.56475 3.930 8.48e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 552.64 on 999 degrees of freedom
Residual deviance: 397.69 on 993 degrees of freedom
AIC: 411.69
Number of Fisher Scoring iterations: 7
该数据集三个自变量中 X1, X2为连续型变量,X3为分类变量(A,B,C,D,E)。 获取逻辑回归结果时发现X3变量的表示形式和X1,X2不一样,并且分别产生了X3B, X3C, X3D, X3E四个新的变量,但是又没有X3A变量。后来查阅相关资料才明白原来逻辑回归中处理分类变量和连续型变量是不一样的。
当分类自变量的类别大于两个的时候,需要建立一组虚拟变量(哑变量)来代表变量的归属性质。一般虚拟变量的数目比分类变量的数目少一个,少掉的那个就作为参照类(reference category)。例如本例中,A就是参照类,X3B, X3C, X3D, X3E就是四个虚拟变量。参照类的选取是随意的,R语言逻辑回归默认将分类变量的第一个factor设置为虚拟变量。此时的回归模型如下:
四个虚拟变量的取值为1或0,即当观测值中的分类变量属于某一组时,该组的虚拟变量值为1,剩下的虚拟变量值为0。
例如,当一组观测值(X1,X2,X3,Y)中 X3 的值为B时,虚拟变量X3B = 1, X3C, X3D, X3E 都为0,此时:
而当一组观测值(X1,X2,X3,Y)中 X3 的值为A时, 因为A为参照类,所以此时X3B, X3C, X3D, X3E都为0,此时:
因此在控制变量条件下,即假设两组观测值中,X1, X2相同,而X3分别为A和B, 由上面两式相减可得:
此处odds(B/A)为变量B对变量A的发生比率,即变量B的发生比与变量A的发生比的比值。大于1的发生比率表明事件发生的可能性会提高,或者说自变量对事件发生的概率有正的作用。例如,假如说odds(B/A)的数值大于1,那么说明在X1,X2不变的条件下,X3取值B比X3取值A有更大的概率使Y的值为1。(王济川,郭志刚. Logistic 回归模型 —— 方法与应用[M]. 北京:高等教育出版社)
回到开头的例子,根据结果我们得以得出这样的结论,变量X3取值A,C,D对Y的影响差不多,而变量X3取值B,E会使得Y取值为1的概率比去A,C,D显著增大。简单看一下:
> db_a db_b db_c db_d db_e table(db_a$Y)0 1
25 172
>table(db_b$Y)0 1
6 200
>table(db_c$Y)0 1
21 175
>table(db_d$Y)0 1
22 175
>table(db_e$Y)0 1
5 199
大致从结果看出确实变量B,E组的Y值为1的比例要高于A,C,D组。
我们也可以自己定义虚拟变量:
>levels(db$X3)
[1] "A" "B" "C" "D" "E"
> db$X3 levels(db$X3)
[1] "B" "A" "C" "D" "E"
同上面的回归模型:
> reg summary(reg)
Call:
glm(formula= Y ~ X1 + X2 + X3, family = binomial, data =db)
Deviance Residuals:
Min 1Q Median 3Q Max-2.98017 0.09327 0.19106 0.37000 1.50646Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept)-2.71389 1.07274 -2.530 0.011410 *X10.51664 0.11178 4.622 3.8e-06 ***X20.21008 0.07247 2.899 0.003745 **X3A-1.74496 0.49952 -3.493 0.000477 ***X3C-1.77966 0.51002 -3.489 0.000484 ***X3D-1.66492 0.50365 -3.306 0.000947 ***X3E0.47470 0.66354 0.715 0.474364
---Signif. codes:0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1(Dispersion parameterfor binomial family taken to be 1)
Null deviance:552.64 on 999degrees of freedom
Residual deviance:397.69 on 993degrees of freedom
AIC:411.69Number of Fisher Scoring iterations:7
主要内容就这么多,如果想要更详细的了解可以参考:王济川,郭志刚. Logistic 回归模型 —— 方法与应用[M]. 北京:高等教育出版社
以及链接:https://www.r-bloggers.com/logistic-regression-and-categorical-covariates/
版权声明:本文为博主原创文章,博客地址:http://www.cnblogs.com/Demo1589/p/8973731.html,转载请注明出处。
c语言的虚拟变量,含有分类变量(categorical variable)的逻辑回归(logistic regression)中虚拟变量(哑变量,dummy variable)的理解...相关推荐
- 机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)
之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradien ...
- R语言逻辑回归logistic regression对付费用户进行预测
对于某企业新用户,会利用大数据来分析该用户的信息来确定是否为付费用户,弄清楚用户属性,从而针对性的进行营销,提高运营人员的办事效率. 最近我们被客户要求撰写关于付费预测的研究报告,包括一些图形和统计输 ...
- 逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种。通过历史数据的表现对未来结果发生的概率进行预测。例如,我们可以将购买的概率设置为因变量,将用户的
逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种.通过历史数据的表现对未来结果发生的概率进行预测.例如,我们可以将购买的概率设置为因变量,将用户的 ...
- 机器学习入门与Python实战(三):分类与逻辑回归 Logistic Regression
目录 现实案例 分类预测 通过股价预测任务区分回归任务与分类任务 分类问题求解 更适合于分类场景的模型:逻辑回归 逻辑回归处理更复杂的分类任务 逻辑回归模型求解 Python实战:商业异常消费数据预测 ...
- R语言逻辑回归logistic regression对用户收入进行预测
逻辑回归对用户收入进行预测 对于某企业新用户,会利用大数据来分析该用户的信息来确定是否为付费用户,弄清楚用户属性,从而针对性的进行营销,提高运营人员的办事效率. 对于付费用户预测,主要是思考收入由 ...
- 交叉熵损失函数分类_逻辑回归(Logistic Regression)二分类原理,交叉熵损失函数及python numpy实现...
本文目录: 1. sigmoid function (logistic function) 2. 逻辑回归二分类模型 3. 神经网络做二分类问题 4. python实现神经网络做二分类问题 ----- ...
- R语言逻辑回归 logistic regression
R语言逻辑回归代码示例 rm(list=ls()) require(kernlab) data(spam) data <- spam n <- nrow(spam) id <- sa ...
- R语言逻辑回归Logistic回归分析预测股票涨跌
最近我们被客户要求撰写关于逻辑回归的研究报告,包括一些图形和统计输出. 视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠心病风 ...
- R语言可视化探索BRFSS数据并逻辑回归Logistic回归预测中风
第1部分:关于数据 行为风险因素监视系统(BRFSS)是美国的年度电话调查.最近我们被客户要求撰写关于BRFSS的研究报告,包括一些图形和统计输出.BRFSS旨在识别成年人口中的危险因素并报告新兴趋势 ...
- R语言VaR市场风险计算方法与回测、用LOGIT逻辑回归、PROBIT模型信用风险与分类模型...
全文链接:http://tecdat.cn/?p=27530 市场风险指的是由金融市场中资产的价格下跌或价格波动增加所导致的可能损失. 相关视频 市场风险包含两种类型:相对风险和绝对风险.绝对风险关 ...
最新文章
- 一起学Hadoop——实现两张表之间的连接操作
- 王飞跃谈GE艰难的数字化转型启示:从工业智联网到工业5.0
- (Matrix3D)坑爹的flash帮助文档
- URL中允许携带sessionid带来的安全隐患。
- 过程(栈帧结构是干货)
- pytest测试实战 电子书_电子书丨Selenium 3+Python 3自动化测试项目实战:从菜鸟到高手...
- 分页插件PageHelper的使用方法
- 前沿 | 阿里达摩院最牛科技~摄像头ISP处理器,提升夜间识别精准率
- Codeforces 510 E. Fox And Dinner
- 电暖器选购指南(包括暖风机)
- 【运维安全】-MySQL手工注入
- arcgis中python批处理_基于Python的ArcGIS空间数据格式批处理转换工具开发
- 2008 r2 server sql 中文版补丁_sql2008 r2 sp1下载
- WeTest质量云平台,618盛惠活动开启
- 使用Matlab绘制LFP锂离子扩散动态示意图
- 用JSON-server模拟REST API
- 流媒体弱网优化之路(NACK)——纯NACK方案的优化探索
- hazelcast java_Hazelcast
- Pitest内存泄露分析 (工具使用IDEA、Jprofiler)
- 使用gcc参数-Wl,–gc-sections,不链接未用函数,减小可执行文件大小