Python使用逻辑回归估算OR值
第一种是统计学方法,需要用到 statsmodels包
statsmodels是统计和计量经济学的package,包含了用于参数评估和统计测试的实用工具
第二种是机器学习,需要使用sklearn中的LogisticRegression
下面以计算dis1-->dis2的OR值为例,也就是说dis1为自变量,dis2为因变量
首先我们先造一组数据: x为自变量,y为因变量
df = pd.DataFrame({'x': ['dis1', 'dis1', 'dis1', 'dis1', 'dis3', 'dis3', 'dis3', 'dis3'], 'y': ["dis2", "dis2",
"dis2", "dis4", "dis4", "dis4", "dis4", "dis2"]})

因为我要使用逻辑回归估计OR值,所以首先会计算出实际的OR值
| 患dis2 | 不患dis2 | |
| 患dis1 | A | B |
| 不患dis1 | C | D |
OR值的计算:OR_dis1_dis2 = AD/BC,其中A = 3, B = 1, C = 1, D = 3
ct = pd.crosstab(df.x, df.y)
oddsratio, pvalue = stats.fisher_exact(ct)
使用stamodel包中的逻辑回归进行OR值的估计:
df["intercept"] = 1.0 # 截距项,初始化截距项,不可省 # 拟合模型
logit = sm.Logit(df['y'], df[df.columns[1:]])
result = logit.fit() print(result.summary())
# 计算得到OR值
OR1 = np.exp(result.params)
使用机器学习方法计算OR
df = pd.get_dummies(df)
clf = LogisticRegression(penalty='none') clf.fit(df[['x_dis1']], df[['y_dis2']].values)
print(clf)
odds_ratio = np.exp(clf.coef_)
print(odds_ratio)
完整代码:
import pandas as pd
import statsmodels.api as sm
from sklearn.linear_model import LogisticRegression
import numpy as np # 构造数据
df = pd.DataFrame({'x': ['dis1', 'dis1', 'dis1', 'dis1', 'dis3', 'dis3', 'dis3', 'dis3'], 'y': ["dis2", "dis2",
"dis2", "dis4", "dis4", "dis4", "dis4", "dis2"]}) # 计算实际OR
ct = pd.crosstab(df.x, df.y)
oddsratio, pvalue = stats.fisher_exact(ct) # 使用统计学方法计算
df["intercept"] = 1.0 # 截距项,初始化截距项,不可省 # 拟合模型
logit = sm.Logit(df['y'], df[df.columns[1:]])
result = logit.fit() print(result.summary())
# 计算得到OR值
OR1 = np.exp(result.params) # 使用机器学习方法计算
df = pd.get_dummies(df)
clf = LogisticRegression(penalty='none') clf.fit(df[['x_dis1']], df[['y_dis2']].values)
print(clf)
odds_ratio = np.exp(clf.coef_)
print(odds_ratio)
Python使用逻辑回归估算OR值的更多相关文章
- 机器学习_线性回归和逻辑回归_案例实战:Python实现逻辑回归与梯度下降策略_项目实战:使用逻辑回归判断信用卡欺诈检测
线性回归: 注:为偏置项,这一项的x的值假设为[1,1,1,1,1....] 注:为使似然函数越大,则需要最小二乘法函数越小越好 线性回归中为什么选用平方和作为误差函数?假设模型结果与测量值 误差满足 ...
- 机器学习之使用Python完成逻辑回归
一.任务基础 我们将建立一个逻辑回归模型来预测一个学生是否被大学录取.假设你是一个大学系的管理员,你想根据两次考试的结果来决定每个申请人的录取机会.你有以前的申请人的历史数据,你可以用它作为逻辑回归的 ...
- Python之逻辑回归模型来预测
建立一个逻辑回归模型来预测一个学生是否被录取. import numpy as np import pandas as pd import matplotlib.pyplot as plt impor ...
- python机器学习-逻辑回归
1.逻辑函数 假设数据集有n个独立的特征,x1到xn为样本的n个特征.常规的回归算法的目标是拟合出一个多项式函数,使得预测值与真实值的误差最小: 而我们希望这样的f(x)能够具有很好的逻辑判断性质,最 ...
- python机器学习——逻辑回归
我们知道感知器算法对于不能完全线性分割的数据是无能为力的,在这一篇将会介绍另一种非常有效的二分类模型--逻辑回归.在分类任务中,它被广泛使用 逻辑回归是一个分类模型,在实现之前我们先介绍几个概念: 几 ...
- python实现逻辑回归
首先得明确逻辑回归与线性回归不同,它是一种分类模型.而且是一种二分类模型. 首先我们需要知道sigmoid函数,其公式表达如下: 其函数曲线如下: sigmoid函数有什么性质呢? 1.关于(0,0. ...
- 吴裕雄 python 机器学习——逻辑回归
import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot ...
- 用python实现逻辑回归
机器学习课程的一个实验,整理出来共享. 原理很简单,优化方法是用的梯度下降.后面有测试结果. # coding=utf-8 from math import exp import matplotlib ...
- Python之逻辑回归
代码: import numpy as np from sklearn import datasets from sklearn.linear_model import LogisticRegress ...
随机推荐
- WPF优秀组件推荐之FreeSpire
概述 Spire是一套可以轻松处理Word.Excel和PDF的商业组件,需要收费,但是他有一套对应的免费组件FreeSpire可以使用,免费组件在功能上有一些限制(比如:excel的sheet数量不 ...
- 在java的继承中你是否有这样的疑惑?
一.问题 最近在写代码,有两个属性很相近的类,其中80%的属性(字段)都是一样的,剩下的才是各自不一样的,在设计的时候,采用了继承的方式,抽象除了一个父类,大概如下, 有FirstChild和Seco ...
- 记一次mybatis-plus遇到的问题
在用了 springboot 和 mybatis-plus很久之后, 有一天突然看到配置文件有点繁杂, 想将相同的配置拉到application.yml里, 就在将配置拉过去后, 问题就开始出现了. ...
- 02 基础 卸载JDK 安装JDK Java程序运行机制
基础 JDK:Java Development Kit(Java开发者工具 包含JRE和JVM) JRE:Java Runtime Environment(java运行时环境,包含JVM) JVM:J ...
- ArcGIs创建企业级数据库
本文主要描述ArcGIs创建企业级数据库. 目标:创建企业级地理数据库,使用ArcMap通过SDE引擎 与Oracle交互数据,创建完成后将本地的mdb数据库中数据迁移到Oracle的地理数据库当中. ...
- 6月7日 python 复习 collections
collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple 我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: >>> ...
- RabbitMQ Go客户端教程1——HelloWorld
本文翻译自RabbitMQ官网的Go语言客户端系列教程,本文首发于我的个人博客:liwenzhou.com,共分为六篇,本文是第一篇--HelloWorld. 这些教程涵盖了使用RabbitMQ创建消 ...
- ModSecurity的规则
一.ModSecurity的规则 基本格式 SecRule VARIABLES OPERATOR ACTIONS SecRule:ModSecurity主要的指令,用于创建安全规则. VARIABLE ...
- ChIP-seq技术介绍|易基因
大家好,这里是专注表观组学十余年,多组学科研服务领跑者的易基因. 染色质免疫沉淀后测序(ChIP seq)是一种针对DNA结合蛋白.组蛋白修饰或核小体的全基因组分析技术.由于二代测序技术的巨大进步,C ...
- 分库分表之后分布式如何保证ID全局唯一性
分库分表之后分布式如何保证ID全局唯一性 韩师学子--小倪 2018-07-21 23:35:38 8139 收藏 3分类专栏: Mysql版权 分库分 ...