APP下载

R 语言在医学统计学中的应用探索

2024-12-01邱越何蓉

电脑知识与技术 2024年32期

摘要:本文探讨了在医学院校中引入R语言进行医学统计学教学实践的策略,以提升学生处理医疗大数据的能力,培养适应医疗大数据时代需求的医学复合型人才。文章深入分析了医学院校在医疗大数据和医学统计学教学中存在的问题,并将R语言与医学数据相结合,设计了基于R语言的医学统计学教学案例。在教学过程中实施这些案例,观察R语言教学的效果。通过案例教学,学生能够更好地理解医学统计学理论,并将其应用于实际的医疗数据分析中,显著提升了他们在处理医疗大数据方面的能力。在医学统计学教学中引入R语言进行教学实践,有效提升了学生的医疗大数据处理能力,为培养适应医疗大数据时代需求的高素质医学复合型人才提供了有力支持。

关键词: 医疗大数据;医学统计学;R语言;数据可视化

中图分类号:G642 文献标识码:A

文章编号:1009-3044(2024)32-0055-03 开放科学(资源服务)标识码(OSID) :

0 引言

随着信息技术、云计算、物联网和人工智能的发展,医疗数据的收集、存储和处理能力大幅提升。生物医学数据、电子病历、健康监测等应用产生了海量的医疗大数据[1]。这些大数据已成为国家重要的基础性战略资源[2]。如何有效利用这些大数据已成为医疗领域面临的重要挑战和机遇[3]。然而,许多医生和学生缺乏医疗大数据统计分析和数据可视化技能,导致这些宝贵资源未能得到充分利用。因此,医学院校需加强数据科学相关课程的设置,包括医疗大数据统计分析、数据挖掘、机器学习等内容,培养学生的数据分析能力和数据驱动思维。

医学统计学以数理统计学为基础,旨在研究生物医学现象和规律。然而,当前医学院校的医学统计学教学存在诸多问题:教材理论性强,与实际应用脱节;教学孤立,缺乏跨学科整合;过度强调统计方法和公式,忽视统计思维培养;软件工具更新迅速,学生毕业后难以快速适应工作需求;课程模式单一[4]。很多医学院校仅开设SPSS的医学统计学课程,但SPSS课程教学中存在局限性,如操作烦琐、不适用于大数据分析,且正版需付费[5]。为了应对这些挑战,需要在医学院校引入新的统计学教材和软件工具。

与SPSS不同,R语言作为一款具备大数据分析和可视化功能的统计分析软件,在医学教育中展现出显著优势。其优点包括:

(1) 开源和免费。R语言降低了学习成本。

(2) 适用性广泛。R语言的灵活性和扩展性使其适合处理大规模医疗健康数据,这对于理解和预测复杂的生物医学现象至关重要。

(3) 强大的数据分析和可视化能力。R语言在数据分析、统计和结果可视化方面比Excel 和SPSS更强[7]。

(4) 编程能力培养。通过R语言的学习,学生可以培养编程能力。

鉴于R语言的这些特性,其在医学院校的推广教学具有重要价值。当前,R语言在医学统计学中的应用尚在探索阶段,将R语言课程融入医学统计学教学,并与SPSS课程互补,有助于发挥其在大数据处理和复杂统计分析方面的优势。同时,设计结合医学数据的教学案例,能让学生在实践中掌握R语言的应用。

1 教学设计

1.1 教学目标

本课程致力于培养学生在医学统计分析方面的核心能力,具体分为以下三个相互支撑的教学目标。

(1) 掌握医学统计分析理论基础。

学生将深入了解医学统计学的基本概念、原理和方法,掌握描述性统计和推断性统计的基础知识,并进一步学习高级统计技术,如回归分析、方差分析和生存分析等。此目标使学生能够根据不同研究问题,选择并应用合适的统计方法。

(2) 熟练应用R软件。

通过实际操作,学生将掌握R软件在数据输入、处理、模型建立及结果分析的应用。具体包括编写R 脚本、使用统计包及解读统计输出结果,确保学生能够有效利用R软件进行医学统计分析。

(3) 评价统计分析结果的准确性。

学生将学习如何结合实际背景和专业知识,批判性地评估统计分析结果,理解统计推断的可靠性和局限性。这一目标要求学生识别并处理潜在的偏差、误差和假设条件,并学会如何报告这些因素对统计分析结果的影响。

通过实现这三个目标,学生将具备医学统计分析和大数据处理的能力,为未来的研究和实践打下坚实基础。

1.2 课程设计

针对医学院校的教学特点和学生需求,本课程结合医学数据,参考相关教材,将具体的教学内容和安排设计如下:

1.2.1 教学内容

(1) R语言编程基础。

介绍R语言的特点、安装和配置,讲解R语言中的数据结构,包括向量、矩阵、数据框、列表等。

教授如何导入和导出数据(例如CSV、Excel、数据库格式)。

介绍条件判断、循环语句以及自定义函数的方法。

教授数据预处理和清洗的基本步骤,包括缺失值处理、异常值检测和变量转换。

(2) 医学数据可视化。

使用R 函数绘制条形图、饼图、直方图、盒形图等。

深入讲解ggplot2包的使用,绘制多种复杂图形(如散点图、小提琴图、热图等)。

教授如何将图形导出为不同格式,并调整分辨率和大小。

(3) 医学统计分析方法。

增加统计理论基础的介绍,包括概率论、假设检验原理、置信区间等。

介绍常用描述统计量及分类变量的列联表分析等探索性数据分析。

讲解常见假设检验方法,如t检验、方差分析、卡方检验等。

教授高级统计方法,如多重线性回归分析、Logis⁃ tic回归分析和生存分析。

1.2.2 教学安排

在课堂上详细教授R语言编程基础和医学统计学的理论知识,以及其在医学研究中的应用背景。

上机实验课中,通过具体的医学数据统计案例,指导学生编写、调试和运行R语言程序,确保理论知识的实践应用。

实验课后,组织学生进行案例分析和讨论,加深对统计结果解读和应用的理解。

通过以上的教学内容和安排,学生将能系统地掌握R语言编程、医学统计分析及大数据分析和可视化能力,为医学研究和临床决策提供科学的数据分析支持。

2 使用R 语言实现医学数据统计的一个案例

t 检验是假设检验中最常用的方法之一,其运用较为简单、方便[8]。t 检验在医学研究中应用广泛,涵盖治疗、诊断、因素分析等多个方面,是医学研究与决策的重要统计工具。两个样本均数比较的t 检验,也称为两个独立样本t 检验,适用于比较按完全随机设计得到的两组数据,其目的是推断它们各自所代表的总体均数是否相等。

例如,为测定功能性子宫出血症中实热组与虚寒组的免疫功能,通过比较其淋巴细胞转化率(见表1) ,以判断实热组和虚寒组的淋巴细胞转化率均数是否存在差异。

为实热组与虚寒组的免疫功能淋巴细胞转化率进行两个独立样本t 检验的R编程步骤如下:

(1) 正态性检验。

先对实热组进行正态性检验,代码如下:

0.69, x0 <.8-) c(0.71, 0.76, 0.66, 0.71, 0.72, 0.69, 0.62, 0.67,

shapiro.test(x)

运行上述代码,结果如下:W = 0.97123, p- value = 0.902。

然后对虚寒组进行正态性检验,代码如下:

y<-c(0.62,0.61, 0.62, 0.64, 0.59, 0.68, 0.69)

shapiro.test(y)

运行上述代码,结果如下:W = 0.91237, p- value = 0.4126。

实热组和虚寒组的p 值分别是0.902 和0.4126。两组p 值均大于0.05,说明两组数据均来自正态分布的总体。

(2) 方差齐性检验。

对实热组和虚寒组进行方差齐性检验,代码如下:

var.test(x, y)

运行上述代码,结果如下:p-value = 0.4504,即p值为0.4504,大于0.05,表明实热组和虚寒组两组数据的方差差异没有统计学意义,可以认为实热组和虚寒组的淋巴细胞转化率总体方差齐。

(3) 两个独立样本t 检验。

两个独立样本t 检验的代码如下:

t.test(x, y, var.equal = TRUE)

运行上述代码,结果如下:p-value = 0.009249,即p 值为0.009249。按照α=0.05的检验水准,实热组和虚寒组两组数据差别具有统计学意义,可以认为两组的淋巴细胞转化率不同,且实热组高于虚寒组。

(4) 数据可视化。

(4) 数据可视化。

对于实热组和虚寒组数据绘制箱线图,并显示显著性水平,代码如下:

行上述代码,结果如图1中A图所示。

3 使用R 语言实现医学数据可视化的一个案例

例如,有一个体检数据,包含部门、性别、身高和体重四个字段,可以对数据进行一些统计和数据可视化。

3.1 对体检数据进行统计

(1) 创建数据框。

将这四个字段的数据组成一个数据框,代码如下:

(2) 统计各个部门的人数。

代码如下:

stat1 <- table(health2$department)

stat 1

运行上述代码,结果如下:机关:30人,教师:50 人,退休:20人。

(3) 统计各个部门人数占总人数的百分比。

代码如下:

prop.table(stat1) * 100

运行上述代码,结果如下:机关:30%,教师:50%,退休:20%。

(4) 统计各个部门的男女人数。

代码如下:

table(health2$department, health2$sex)

运行上述代码,各个部门的男女人数结果如下:机关女性:1;机关男性:2;教师女性:3;教师男性:2;退休女性:1;退休男性:1。

3.2 体检数据的可视化

可以使用ggplot2包中的ggplot函数绘制体检数据中身高和体重的散点图,散点图可以显示两个变量的关联程度。变量之间的相关关系是统计学中常用的方法。代码如下:

运行上述代码,结果分别如图1中B、C、D、E图所示。

4 教学效果

从医学统计学中应用R语言的教学经验来看,学生在学习过程中表现出一定的规律性和特点。在学习的最初阶段,通过案例教学法可以将抽象的统计理论具体化,使学生直观地了解统计学方法在实际问题中的应用,从而激发学习的动力。然而,学生在刚开始学习R语言时,可能会遇到一定的困难。这是因为R软件本身具有一定的学习曲线,需要学生掌握基本的编程概念和统计分析方法。在这个阶段,教师需要提供充分的指导和实践机会,帮助学生克服入门障碍。随着学习的深入,学生逐渐掌握了R语言编程和数据可视化的基本知识,能够运用所学的统计方法分析实际问题,能力得到显著提升,能够独立进行数据分析并理解统计分析的结果。通过动手实践,学生不仅学会使用R软件,还能更加深入地理解统计方法背后的原理和逻辑,这种理解更为深刻和持久。

5 在医学统计学中引入R 语言教学的益处

医学统计学课程内容繁多且理论抽象,直接让学生掌握大量公式推导可能难以消化。此外,学生普遍存在数理统计基础薄弱的问题[3],因此,教学策略应注重实践操作和应用导向。将R语言作为医学统计学的教学工具引入,是一个符合现代医学数据分析需求的重要举措,具有以下益处:

(1) 实现数据分析工具现代化。随着医学大数据时代的到来,传统统计软件如SPSS、SAS在处理大数据集时可能存在效率问题。R语言具有强大的数据处理能力和灵活的编程特性,能更好地适应现代医学研究的需求。

(2) 强化应用性。通过R语言,学生可以专注于实际操作和分析医学大数据,而非深入复杂的数学统计公式推导,这有助于他们更快地理解和掌握关键概念。

(3) 打下数据处理坚实基础。R语言的数据结构和数据操作是基础,让学生通过实践操作熟悉数据的读写和处理,为后续统计分析打下坚实基础。

(4) 促进统计思维的培养。通过R语言编程实现统计分析,有助于学生更深入地理解统计学原理和方法。编写代码可以使学生直观地看到统计分析的每一步过程,从而加深对统计概念的理解。

(5) 实践统计方法选择和编写程序。通过编写程序,学生可以学习如何根据实际需求选择和应用医学统计方法,提升问题解决能力。

(6) 增强数据可视化能力。R语言提供了丰富的数据可视化工具,通过学习,学生能够有效地展示数据,使他们直观地理解和解释统计结果,并帮助制作高质量的统计图表。在医学研究中,清晰、准确的数据展示对于研究结果的传达至关重要。

(7) 实践驱动学习和提高兴趣。通过将理论与实践相结合,学生能够将理论知识转化为实际技能,从而加深对统计学的理解。R语言的易用性和交互性有助于激发学生的学习兴趣。

(8) 获取开源社区支持。R语言拥有庞大的开源社区,这意味着学生可以方便地获取各种学习资源、教程和帮助。社区中不断更新的包和工具保证了R 语言的持续发展和适应性。

6 结束语

综上所述,将R语言引入医学统计学教学,不仅能够提升学生的医学大数据分析能力,还能培养他们的编程技能、统计思维和数据可视化能力。这有助于他们在解决实际问题中理解和掌握统计学,从而弥补基础理论薄弱问题,对于他们的学术研究和职业发展都具有重要意义。

【通联编辑:唐一东】

基金项目:昆明医科大学2023 年教育教学研究基金项目(J132101026)