当前位置: 首页 > news >正文

dataframe 筛选_python—变量筛选

撰文  Yotsunoha

编辑  袁老师

这里我们使用logit回归和OLS(最小二乘回归)回归展示一下python的变量筛选过程。

from scipy import statsfrom statsmodels.formula.api import olsfrom statsmodels.stats.anova import anova_lmfrom statsmodels.stats.multicomp import pairwise_tukeyhsdimport warningswarnings.filterwarnings("ignore")import itertoolsdata = pd.read_csv("完整数据.csv")

读取数据,加载所需要的包。

columns = ['age', 'bicarbonate_max','rdw_max',  'phosphate_max', 'alf', 'af','stroke', 'map_mean', 'aki', 'calcium_max',       'sodium_max','phosphate_max','ck_max']column_P_2 = [] # 保存p值小于0.2的变量for column in columns:    sts, p_val = stats.ttest_ind(data.loc[(data.hosp_mortality == 1), column].values , data.loc[(data.hosp_mortality == 0), column].values)    if p_val < 0.2:        column_P_2.append(column)print(column_P_2)

这里是选取了p值小于0.2的变量进行下一步分析。多元回归分析中的变量筛选标准的争论从未停止。临床医生和统计学家之间对于变量的筛选标准各有建议。下面这篇文章中对于这个问题讲述的非常清晰,建议围观。

https://cloud.tencent.com/developer/article/1628699

一、logit回归

# Logit回归import statsmodels.api as smimport pylab as pldf = data[(data['hosp_mortality'] == 0) | (data['hosp_mortality'] == 1)]label_df = df['hosp_mortality']train_df = df[column_P_2]logit = sm.Logit(label_df, train_df)result = logit.fit()result.summary()

结果展示

bddaf4dc2974d8d925cb1445ab4675ea.png

计算OR值及可信区间

import numpy as npnp.set_printoptions(suppress=True)params = result.paramsconf = result.conf_int()conf['OR'] = paramsconf.columns = ['2.5%', '97.5%', 'OR']np.exp(conf)

结果保存

dt = pd.DataFrame(np.exp(conf))dt.to_csv("conf-mortality.csv")

二、OLS回归

# OLS回归temp = 'hosp_mortality~'for col in column_P_2:#     if col in categorical:#         temp += 'C(' + col + ')' + '+'#     else:    temp += col + '+'# print(temp[:-1])model = ols(temp[:-1] ,data=pd.concat([data[column_P_2], data['hosp_mortality']], axis=1)).fit()model.summary()

结果展示

7ba8df9f4ca23b5de9ef9ded5e9deb12.png

这里只是展示了一下计算过程,具体该根据什么标准纳入什么变量需要结合数据实际和临床实践。

既往文章

Python的下载与安装

python数据可视化-相互关系及分布

python数据可视化-小提琴图

临床研究中Table 1的五步生成法

Python在医学领域中的应用

MIMIC-IV数据库

预印本来袭,投还是不投?

重症数据库知多少?除了MIMIC和eICU,AMDS和HiRID你知道吗

相关文章:

  • avenir字体可以商用吗_版权丨这个网站可以免费一键查询字体版权是否可用,建议收藏...
  • mybatis collection_基于Springboot,Mybatis九种数据库sql实操方式,你get到了吗?
  • python timesleep函数_Python 3.3中的time.sleep()函数?
  • flutter 折线图_详解:Flutter内存泄漏解决方案
  • 如何用python随机生成字符串_教你如何用Python生成随机数字和随机字符串
  • cas 登录之后不跳转_连环画解析“单点登录”原理,保证你能看懂
  • int数据类型范围_数据类型之间的转换
  • python接入图灵机器人_python3 调用图灵机器人API实现语音聊天
  • 排队论仿真软件_LINGO 实现M / M / s / s 损失制排队模型
  • http服务器_http服务器
  • python相关知识介绍_Python基础知识(一)—简介
  • easyui datagrid url不请求请求_渗透或CTF中使用请求头绕过认证模式
  • 子程序调用与宏定义的异同_新代系统:宏编程的基本概念和基本书写格式
  • python小结和体会_Python学习心得总结
  • jar包对比工具_如何下载Commons下的IO组件以及工具类的使用
  • $translatePartialLoader加载失败及解决方式
  • Angular数据绑定机制
  • bearychat的java client
  • Cookie 在前端中的实践
  • ES6系统学习----从Apollo Client看解构赋值
  • JavaScript中的对象个人分享
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • spring security oauth2 password授权模式
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 精彩代码 vue.js
  • 你真的知道 == 和 equals 的区别吗?
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 学习笔记:对象,原型和继承(1)
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (1)(1.9) MSP (version 4.2)
  • (AngularJS)Angular 控制器之间通信初探
  • (C语言)fread与fwrite详解
  • (NSDate) 时间 (time )比较
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (一)基于IDEA的JAVA基础12
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • .Net Redis的秒杀Dome和异步执行
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .net项目IIS、VS 附加进程调试
  • /boot 内存空间不够
  • @ModelAttribute 注解
  • @TableLogic注解说明,以及对增删改查的影响
  • [ C++ ] STL_list 使用及其模拟实现
  • [ 手记 ] 关于tomcat开机启动设置问题
  • []新浪博客如何插入代码(其他博客应该也可以)
  • [daily][archlinux][game] 几个linux下还不错的游戏
  • [FZSZOJ 1223] 上海红茶馆
  • [hdu1561] The more, The Better 【树形DP】