糖尿病临床试验 数据分析

  • 糖尿病临床试验 数据分析

    • 一、项目背景

      • 1.1 胰岛素工作原理
      • 1.2 临床试验及其指标
      • 1.3 医疗数据 常见问题及原因
    • 二、数据评估(Assess)
      • 2.1 质量评估(Quality)

        • 目测评估
        • 编程评估
      • 2.2 整洁度评估(Tidness)
    • 三、数据清理
      • 3.1 数据缺失问题(Missing Data)
      • 3.2 数据整洁度问题
      • 3.3 数据质量问题
    • 四、后记
    • 注脚

一、项目背景

糖尿病(尤其是2型糖尿病)算得上是21世纪最大的流行病,在我国更是情况堪忧[^footnote]。20世纪20年代之前,人们闻“糖”色变,因为无法治疗,患病就相当于慢性死亡。这种病会让血糖升高,伴随的症状有异常口渴、尿频、容易疲劳,严重的并发症有中风、失明、截肢、肾衰竭、甚至心肌梗塞。好在1920s,一种能降低血糖的胰腺分泌物 胰岛素(insulin)被 Frederick Banting 发现,他也因此获得1923年的诺贝尔医学和生理学奖。

1.1 胰岛素工作原理

我们吃下去的食物大部分转化为葡萄糖(glucose),为身体提供能量。位于胃(stomach)附近的胰腺(pancreas),会产生一种叫做胰岛素(insulin)的激素(hormone),这种激素能促进葡萄糖被人体细胞吸收。如果一个得了糖尿病,就意味着无法分泌足够的胰岛素(insulin),或者胰岛素不能发挥正常功能,血糖便由此增多。

虽然胰岛素不能治愈糖尿病,但仍然是医学史上最大的重大发现之一,挽救了很多人的生命。不过当时胰岛素默认是针管注射的,一天要注射多次,现在依然如此;但这不方便也不舒服,如果能口服胰岛素就好了,比如制成药片或胶囊,随身携带多方便。

所以,口服胰岛素[^footnote](oral insulin)一直以来都是活跃的研究领域。然而,最大的拦路石在于胰岛素本质上是一种蛋白质,无法通过厚厚的胃黏膜。

1.2 临床试验及其指标

在这个背景下,我们将接触一份 II 期临床试验数据,涉及一种新型口服胰岛素叫做 Auralin[^footnote]。Auralin 的研究员认为他们研发的胶囊能解决胃黏膜问题。

II 期试验会对药品的功效和剂量反应进行测试,还会找出药品常见的短期副作用(也即不良反应),通常涉及数百位患者。

在该试验中,我们有350名患者,分为两组,进行双盲试验[^footnote]。其中175人服用 Auralin 进行治疗,另外一半人则用市面上流行的注射型胰岛素 Novodra 进行治疗。通过比较两种药物的关键指标(key metrics),可以判断 Auralin 是否有效。最重要的指标就是 HbA1c 水平。HbA1c 是血液中的一种物质(糖化血红蛋白),能够衡量过去几个月来人体血糖水平的控制情况,正常值为4%-6%。如果 Auralin 能够让 HbA1c 水平降到跟注射型胰岛素 Novodra 相似的程度,就能表明 Auralin 是有效的,能够提高患者的生活质量。(比如:能引起0.4%的下降就可以认为是成功的)

数据集的几点说明:
- Auralin 和 Novodra 都不是真的胰岛素产品,是模拟数据;
- 为了合理性,数据集是在咨询专业医生的情况下建立的;
- 由官方授意,密切模拟了真正的 新型吸入胰岛素 Afrezza 的临床试验;
- 模拟了 医疗保健数据中的真实常见数据质量问题;
- 患者信息是使用 虚假姓名生成器 生成。

1.3 医疗数据 常见问题及原因

医疗数据中经常存在问题:数据冗余、数据缺失、数据不准确等。在我们的临床试验数据也存在以上问题。(下面是造成脏数据的原因截图,完整档案见此)

二、数据评估(Assess)

Unclean data 存在两类问题:数据质量低,数据不整洁。可以从这两方面分别进行评估。(详细见此笔记)

2.1 质量评估(Quality)

为了尽可能多得练习,这里先用目测的方法进行数据评估,再用编程方法进行数据评估。

目测评估

导入数据:

import pandas as pdpatients = pd.read_csv('patients.csv')
treatments = pd.read_csv('treatments.csv')
adverse_reactions = pd.read_csv('adverse_reactions.csv')

查看数据:

问题记录:

编程评估

编程评估要用到代码,而不是对整个数据进行浏览。就 pandas 而言,它的很多函数和方法都可以用来检查数据的质量和整洁度,比如 .sample().head().tail().info().describe().value_counts() 等。

patients 进行数据评估:


问题记录:

treatments 进行数据评估:

问题记录:

Q: 以上两个表中都存在数据类型错误的问题,为什么数据类型很重呢?
A: 因为在 pandas 中,可以对分类变量,数值变量,时间变量等进行特殊的计算和总结。比如说 patients 中的 birthdate必须是日期时间类型,这样才使用时序或日期时间功能,方便得进行年龄计算。

继续进行编程评估:

.value_counts()统计的是不同值的个数,不包括NaN。

以上姓氏中‘Doe’有6个,地址中‘123 main street’也有6个,很可能是重复,用 .duplicated() 方法筛选重复地址,发现关于‘Doe’的5条数据除 patient_id 外,其他信息都一样,现实中不可能存在这样的情况。这是一个有效性问题(validity issue)。类似的重复情况还有:

问题记录:

继续进行编程评估:

一般人的体重不太可能是48.8磅(1 lb = 0.4536 kg),所以该数据不准确,甚至是无效的,即存在有效性问题;但是如果深入思考的话,会发现情况并非如此,其实是一致性问题。48.8的单位是公斤,而不是磅。下面按照48.8kg来计算其 bmi(身体质量指数),验证一下:

四舍五入后与记录中的 bmi 值一样,所以这条记录的体重单位有误,应该 kg。这属于一致性问题(consistency issue)

进行最后的编程评估:

计算auralin和novodra的空值个数,结果均为0,但实际上存在空值;这是一种常见的问题,将空值存储为破折号、斜杠、‘none’等,而不存储为真正的空值。这是一个有效性问题(validity issue),因为空值应该为空值,而不是文本。

问题记录:

2.2 整洁度评估(Tidness)

何为整洁数据:
1. Each variable forms a column
2. Each observartion forms a row
3. Each type of observational unit form a table
by Hadley Wickham

(数据整洁度问题 详见此笔记)

按照以上定义对数据整洁度进行评估:

patients 表中 contact 列的问题在于,一个列中存储了两个变量:电话号码,email地址。并记录问题。

treatments 表的问题在于,auralin 列和 novodra 列的名称其实是变量,不应用作列标签,同时初始剂量、结束剂量应该为两个变量。并记录问题。

该医学试验的观察单元应该为2个,而非3个。病人信息为一张表,药物用量及不良反应为一张表。所以,patients表保持不变,treatments表和adverse_reactions表合二为一。并记录问题。

这里可以看出编程评估的优势:不必在不同table或tab之间切换,也不用滚动浏览。

因为要将三个观察单位变为两个,可以查看下三张表重复的列有哪些:

我们的目标结构应该如下:

三、数据清理

清理过程中,最好优先处理缺失数据的问题,即完整性问题。通过拼接(concatenate)、合并(join)、填充(impute)等手段,将数据补充完整,然后再清理其他问题。

该项目有三处缺失问题,patients表中有人口统计信息缺失的问题,暂时无法补充完整,先不管。treatments表中有两处缺失,一个是hba1c变化水平,该值可以计算获得;一个是缺少记录,可以在文件treatments_cut.csv中找到缺失数据。

3.1 数据缺失问题(Missing Data)

先处理这两处数据缺失问题。

清理前先拷贝数据:

patients_clean = patients.copy()
treatments_clean = treatments.copy()
adverse_reactions_clean = adverse_reactions.copy()

3.2 数据整洁度问题

缺失问题处理完之后,进行整洁度处理。整洁的数据可以使后续清理工作更容易进行。整洁的低质量数据 比 不整洁的低质量数据 要容易清理,所以,先解决 结构问题 再解决 质量问题

3.3 数据质量问题

四、后记

我本人之前对于糖尿病也是懵懂无知的状态,因为做这个项目的缘故,我主动了解糖尿病,并查阅了一些患病数据;也因为有家人得2型糖尿病,更促使我关注2型糖尿病的诱因防控手段

其来势汹汹(甚至是爆炸性的增长)主要跟不良的生活方式有关,在此郑重提醒 青年们 养成好的生活习惯:管住嘴,迈开腿。

注脚

[1] 果壳网 关于中国糖尿病患者的报告,另外还有中国疾病控制预防中心对糖尿病的一些实况报道。
[2] 全球糖尿病社区(the global diabetes community)关于口服胰岛素(oral insulin)的一篇文章
[3]

糖尿病临床试验 数据分析相关推荐

  1. 药物临床试验数据分析(靶点|适应症|企业|登记信息)

    临床试验相关工作者在对药物进行系统性研究时都需要对药物做临床试验,且在对药物进行临床试验前和临床试验期间都需要对相关药物临床试验数据信息进行全面的分析及了解,有助于目标药物临床试验的顺利开展. 药物临 ...

  2. 视频教程-SAS数据分析:从入门到企业实战-数据挖掘

    SAS数据分析:从入门到企业实战 10年一线开发及项目管理经验,6年以上大数据项目架构.实施.开发与运维经验,骨灰级大数据玩家,对Hadoop.Storm.Spark.Flink.Kylin.Drui ...

  3. 全球最大医疗器械公司在中国寻找移动医疗新机会

    在传统营销路径之外,全球最大的医疗器械公司美敦力首次选择与中国本土的移动医疗平台展开合作. 美敦力糖尿病业务集团全球副总裁Annette Bruls对第一财经记者表示,美敦力在全球范围内都很关注移动医 ...

  4. 临床研究和医疗保健行业实现数据湖架构的机会和挑战

    ERT首席数据官Prakriteswar Santikary博士上个月在2018年数据架构峰会上做了演讲,在演讲中他谈到了他的团队在其临床研究组织开发的数据湖架构.他讨论了部署在云中的数据平台,使用无 ...

  5. 2017 JMP Discovery Summit China圆满落幕

    2017年5月18日,北京粤财JW万豪酒店5楼宴会厅座无虚席,热闹非凡,2017 JMP Discovery Summit China数据峰会迎来了它在中国的第3届盛典,这也是JMP Discover ...

  6. 临床试验数据的标准化之路,究竟还有多远?

    临床试验数据的标准化之路,究竟还有多远? 2020年,对于广大企业来说都将是不平凡的一年,对于医药行业来说,更是如此.在新药研发蓬勃发展的今天,数据的标准化和一致性也更加重要. 为了进一步提高新药注册 ...

  7. 中科大研究人工智能怎么样

    中科大算法教授盯上了王者荣耀,人工智能时代的"新能源"中国比好了吧! 是当下人工智能技术核心研究领域的最前沿--多智能体系统.电竞中,大量AI像人一样实时感知.理解.推理.决策.行 ...

  8. CDISC的ADaMIG (V1.2) 中英文对照【4】_第四章(下)实施问题,标准解决方案和示例

    本AdaMIG (v1.2)来自CDISC官网以下链接: https://www.cdisc.org/standards/foundational/adam/adam-implementation-g ...

  9. 流式细胞仪生物信息学CRO丨Cytapex功能简介

    Cytapex的自动化解决方案可以根据客户的细胞分析需求量身定制,速度快(60秒),并提供可靠.可重复的结果. 解决方案 01.质量检查 使用Cytapex的自动化方法,数据QC本身.Cytapex将 ...

最新文章

  1. JavaScript 之 typeof
  2. PHP学习(php概念、基本语法、流程控制)
  3. (zz)编译Ubuntu Linux内核
  4. POJ 2135 最小费用最大流
  5. 导入Anaconda中的第三方库运行时报错:ImportError: Missing required dependencies ['pandas']
  6. 开课吧-Java常见面试题:重载和重写的区别?
  7. 人工智能学习——模糊控制
  8. SWOT个人分析模板
  9. 嵌入式Linux系统uart串口编程详解及实例分析
  10. saltstack(九)returner
  11. 乔治城大学计算机科学专业,乔治城大学计算机系
  12. 利用Vue制作一个简单的走马灯
  13. 嵌入式开发板如何自动登陆校园网实现上网
  14. 网络安全观察报告 惯犯观察
  15. #300. 【CTSC2017】吉夫特
  16. 期末大作业+毕业设计:在线电影网站设计——影视大全(6页面)含登录注册HTML+CSS+JavaScript
  17. 【FPGA】8B/10B编码--转自wiki百科
  18. saber软件安装后怎么打开_关于 saber 仿真软件基本应用和案例的详细过程解析(上)...
  19. ruby中Thor用法雷神介绍,MyCLI < Thor详细介绍
  20. VScode安装与python环境搭建

热门文章

  1. 历史上最著名计算机病毒,似乎都成了我们的回忆
  2. Python---字符串操作
  3. maxcms整合html5播放器,MaxCMS4.0整合ckplayer6.4[支持手机]
  4. 最新产品 L1频段卫星导航射频前端低噪声放大器芯片AT2659
  5. 专科出身,苦学Android,最终圆梦阿里,2021最新Android框架体系架构面试题
  6. 海康录像机识别不到硬盘_海康威视监控硬盘录像机NVR画面显示资源不足解决办法设置方法...
  7. 通过PL-100微软认证的一些经验
  8. 硅晶圆出货量大涨带好消息:电脑手机数码产品价格暂时平稳
  9. 金蝶KIS旗舰版:禁用的物料如何显示出来,进行反禁用
  10. C#读取泛型变量的值