⽤excel做logistic回归分析_Stephen的SEM博客
使⽤Excel进⾏逻辑回归预测-Kaggle泰坦尼克案例
背景介绍:
因为⼯作需要进⾏⼀些数据预测的⼯作,对于⽐较简单的预测可以⽤线性回归来做,Excel就⾃带线性回归的公式,点击⼏下就可以达到结果,⽐较简单,对于⽐较复杂的预测就需要⽤逻辑回归来进⾏预测
什么是线性回归:
线性回归解决变量是线性的数字,且预测结果是具体的数字,如根据各个渠道的⼴告费和销售额进⾏线性回归,拿到线性回归公式后,就可以根据指定的渠道费⽤预测销售额
什么是逻辑回归:
对于预测结果是分类的数据如根据⼀个⼈的特征指标如是否熬夜,是否压⼒⼤,年龄,抽烟喝酒状况预测⼀个⼈是60岁以后是否会得癌症以及根据⼀个邮件的标题,内容,称呼,发送时间,发送邮箱来预测⼀份邮件是否是垃圾邮件,对于这种根据⼀些特征指标(有的为具体数字如年纪,有的为类型如性别)预测结果为 是或者否的情况,我们需要使⽤逻辑回归来进⾏预测
逻辑回归怎么做:
对于逻辑回归,⽹上很多都是使⽤Python代码或者SPSS等专业软件来完成,但对于没有经验的⼩⽩或没有安装专业分析软件的,有没有⼀种能在Excel上操作, 像做线性回归那样点击⼏次⿏标就能轻松拿到结果
我先⽤百度查询了下逻辑回归excel的关键词,基本上很少,就算⽤excel也要使⽤复杂的公式来计算,然后⾕歌搜索,使⽤英⽂ excel logistic regression,终于到国外⼤神的办法,不需要什么懂公式,不需要编程, 点击⼏次按钮既可完成复杂的逻辑回归预测
案例介绍:
本⽂以excel插件(Robert Nau,美国杜克⼤学教授,为MBA课程开发)结合kaggle上(全球公认顶级有80万数据科学家进⾏机器学习竞赛的平台)⽹站上的案例-泰坦尼克号幸存者及遇难者名单, 使⽤幸存⼈员特征进⾏逻辑回归预测,到具备如何特征的⼈会在这场灾难中有更⾼的存活率
操作步骤:
Excel插件,推荐使⽤
软件截图如下
1,⼯具准备-Excel具体的插件安装⽅法
1.1下载逻辑回归插件⽂件xlam
需要注意它有很多版本,我们需要下载的是带有逻辑回归,mac也可以下载
2021喝奶茶发朋友圈的句子
1.2,从Excel导⼊逻辑回归插件
点击excel按钮,点击选项
再弹出的选项窗⼝ 选择add-in,然后选择goto
1.3 导⼊插件到excel库中
再打开插件的⽬录,把我们下载的xlam的插件放⼊这个⽬录中
1.4安装完成预览
感恩朋友在顶部tab位置可以看到 regressit的窗⼝,其中logistic regression就是我们⽤的功能
2,数据准备-kaggle案例数据下载及整理
2.1 访问kaggle⽹站下载样本数据
访问kaggle上泰坦尼克的案例⽹站
牌照螺丝
按截图所⽰选择数据,train.csv
⾥⾯存放了样本数据(891个真实⼈员的⾝份信息及最终是否存活)
2.2使⽤插件选择数据区域及命名变量
使⽤excel打开样本数据train.csv后,选择插件后,先点击 选择数据 以及创建名称
·PassengerID(ID)
·Survived(存活与否)
·Pclass(客舱等级,较为重要)
·Name(姓名,可提取出更多信息)
·Sex(性别,较为重要)
·
Age(年龄,较为重要)
·Parch(直系亲友)
结婚登记查询
·SibSp(旁系)
·Ticket(票编号)
·Fare(票价)
·Cabin(客舱编号)
·Embarked(上船的港⼝编号)
2.3 确认变量名称位置
点创建名称位置,选择top row,既使⽤第⼀⾏的名称做为变量的名称(有的数据名称写在第⼀列,就可以点击left column)
2.4 确定特征值与预测值对应关系
点击logstic regression 进⾏预测设置,主要是设置⾮独⽴变量(dependent,既别⼈影响的变量)为Survived这列,则独⽴变量(independent ⾃变量,能影响到别⼈的变量,特征值))
要选中分类表和roc曲线
2.5点击运⾏预览模型结果
这⾥要说明的⼏个选项
2.5.1 P-value说明每⼀个参数的可信度,要⼩于0.05,越⼩越好,理解为这个参数失误的可能性
2.5.2 percent correct,预测准确率,既预测的数据⾥⾯猜对的⽐例,(猜对分2种,预测死亡,实际死亡,和预测⽣存实际也⽣存)
2.5.3 true positive rate,正确召回率,既猜中⽣存的(预测活,实际活的⼈数) 除以所有活下来的⼈数,既能回多少⽐例活的⼈,或者根据预测结果,能把实际活下来的⼈到的⽐例
2.5.4 true negative rate,错误回率,既猜中死亡(预测死,实际死的⼈数)除以所有死的⼈的数字,既能召回多少⽐例死的⼈,或者根据预测结果,能把实际死亡的⼈到的⽐例
2.5.5 ROC曲线,0.76,既然整个公式预测的拟合度,你可以理解衡量整个公式正确率的数据,越接近1 越好,可以理解为公式的正确率吧
从截图数据看到,这⾥的正确召回率特别低 只有52%,意味着只能把幸存者中的52%给预测出来,所以这数据还是不怎么⾏
起码3个率(正确率,和2类情况下的召回率),都要80%以上
3,模型优化-优化参数 提升预测准确率
3.1 增加辅助变量 -性别信息进⾏数字化
这⾥考虑加上性别这个变量,因为电影⾥⾯船长说 让⼥⼈和⼩孩先⾛,所以性别应该会有结果有影响,然后我们看到有些⼈是没有年龄的数据的,需要 把缺失的数据补全
对于性别,因为逻辑回归⼯具只能识别数字,所以需要把男性都变成1,⼥性都变成0,既⽣成⼀个辅助列M,当为男性的时候 M列 Sex code为1, 反之为0
对于F列 年龄,对于缺失值,使⽤整个F列平均值补齐
3.2 优化先有变量-补齐缺失值
对于缺失的某些⼈的特征值,使⽤29.7 这个平均值补齐
李湘主持的节目3.3 从新配置逻辑回归变量
重新选择变量(增加了1个变量),点击select data,再创建名称
再弹出的窗⼝可以看到变成模型2,且可以选择独⽴变量既sex code这个新增加的变量
其他选择和之前保持⼀致
3.4 点击运⾏的到新结果
这次的结果中,ROC 有0.85,⽐之前⾼,且3个率 也⽐之前有⽐较⼤提升,认为模型2⽐模型1要好
3.6 多模型对⽐ 选优
可以点击excel中新增的对⽐模型的表格可以清楚看到2个模型的差距
变量数由4变成5
然后不同模型的ROC值和3个率
以及P值(扩后内是每个变量的P值) 括号外 是每个变量的系数,后⾯会⽤到
4,预测结果检验-预测公式整理及数据验证
通过上述2个模型,我们可以使⽤模型2进⾏预测,这⾥我们可以把模型2的公式进⾏
这⾥看到模型2最重要数据是4个参数,分别是对应变量的权重
既常数是5.241, 年龄的系数是-0.04 其他同理
那么我们可以计算出⼀个Z值,既使⽤每⾏⾥⾯的特征值乘以对应的权重,如下图,使⽤第2⾏这个⼈的各⾃的属性值乘以对应系数进⾏相加 得到Z值,
如第3⾏的⼈的Z值是2.214
第4⾏的⼈的Z值是0.682
.
为了最终能的到发⽣存活的概率(0-1)这样的值,我们需要使⽤公式将Z值进⾏变化,既⽆论Z值为什么值,最后Y值都是在0-1之间)使⽤线性回归转逻辑回归公式
这样的X就使⽤Z值进⾏替代
就的到Y值,如下图,Z值为-2.26,经过公式替换就变成y=0.09449
表⽰这个⼈的幸存概率不到10%, 接合我们前⾯的定义,⼤于50%的概率我们认为会幸存,所以这个⼈预测结果就是0, 代表遇难, 如果是1就是幸存,同时我们可以看到实际结果也确实为0,为遇难,所以我们增加⼀列预测正确次数,为true,既我们猜对了,公式为当都是0(预测是0,实际也是0,或者预测是1 实际是1)那么R列为预测正确,然后我们再区分猜中幸存的统计在S列,既猜1,且实际为1, 和猜中遇难(预测是0,实际是0)
那么就可以统计正确率,⽣存召回率及死亡回率
与我们之前算的结果⼀致
这样我们就算能精确计算每⼀个存活的概率和判断最终是否幸存的结论
5,获取新数据进⾏验证,参加⽐赛
我们可以从kaggle⾥⾯再下载新的数据(之前给的是部分样本数据)
下载test数据
移动充值卡
在test.csv的新的数据中,和之前的样本数据⼀致,但是没有结果指标,既没有是否遇难,我们可以根据之前的公式,就可以预测了.
最终输出下⾯的预测结果,id号和预测结果
然后上传到⽹页上就可以⽐赛 获得排名
排名不⾼,可以忽略
结语:
本⽂详细记录了Excel使⽤插件进⾏逻辑回归的办法,同时也例举了Kaggle上下载数据和进⾏预测,并参加⽐赛的办法
附上数据表格
results