基于R软件的医学统计学案例教学
2021-06-18陈超潘海燕
陈超 潘海燕
摘 要:R软件具有强大的统计分析功能,将R软件作为辅助教学手段引入医学统计学课程的教学过程,能帮助学生加深对统计学理论知识的直观理解,提升教学质量,增强教学效果。以t检验这一章节为例,通过实际教学中的案例探讨进一步说明R软件辅助教学的优势。
关键词:R软件;医学统计学;教学
中图分类号:G642 文献标志码:A 文章编号:2096-000X(2021)02-0100-04
Abstract: R software has powerful statistical analysis functions. Using R software as an auxiliary teaching method into the teaching process of medical statistics courses can help students deepen their intuitive understanding of statistical theoretical knowledge, improve teaching quality, and enhance teaching effects. Taking the t-test as an example, the advantages of R software-assisted teaching are further explained through case studies in actual teaching.
Keywords: R software; medical statistics; teaching
医学统计学是多数医学专业的基础必修课程之一,该课程涉及方法学理论知识较多,计算量大,是学生觉得难度较大的几门课程之一。如何通过教学改革增强教学效果,提高教学效率,促使学生更好掌握统计学理论知识,是医学院校统计学教师时常思考的一个问题。该课程要求理论实践相结合,需要利用计算机辅助手段开展教学,在此前教学中,实习课常用SPSS软件对数据进行分析。然而在课堂教学中,一些特殊要求SPSS软件并不能给出满意的呈现。本研究以提高教学效果和学生的学习效率为根本出发点,在教学过程中引入R软件辅助教学,结合教学实际,运用任务驱动的方法,让学生更好地理解掌握统计学理论知识。
目前已有很多成功将R软件运用到教学过程当中的案例,沈新娣[1]和安丽霞等[2]分别在大学数学和概率论与数理统计课程引入R软件辅助教学;刘君娥[3]在统计学课程进行实践。将R软件运用到医学统计学教学实践当中是一个合适且值得推荐的方法。本研究将以t检验这一章节作为例子进行详细说明。
一、R软件简介
R软件是一项主要由奥克兰大学的Robert Gentleman和Ross Ihaka开发的统计计算系统,它提供了一个开源的统计编程环境,并且有一套完整的数据处理、计算和制图软件系统[4]。R软件最大优点是用户能够使用全球所有优秀的统计软件包,并且提供数据处理环境。基于R软件的开放软件包,在教学环节可以直接调用函数实现计算功能,十分方便。另外,教師若有新思路讲解知识点,R软件可以通过修改程序语句展示教学过程中需要的过程或结果,满足教学过程的需要,有助于学生直观理解。
二、医学统计学课程的教学现状
医学统计学课程是高等医学院校大多数专业的重要基础课程之一,对学生解决实际问题能力的培养和后续课程的学习起着重要的作用。目前,医科院校医学统计学课程教学过程中,重实践轻理论的趋势愈发明显,这跟专业特点有关。大多数医学专业的学生没有学习过概率论与数理统计课程,统计基础理论知识缺乏,导致学生对医学统计学课程的一些理论知识理解困难,进而对课程失去兴趣。如何帮助学生更好理解理论知识是教师在教学过程当中需要解决的一个问题。
陆守曾[5]指出目前医学统计学整个学科的一个特点是:基础理论与实际应用密切相关,但前者多处于弱势。重视实践而忽视理论会导致学生知其然而不知其所以然。比如很多学生学完该课程知道当P<0.05拒绝原假设,却不明白为何P<0.05等价于样本落入拒绝域。在课堂教学中加强学生对理论知识的理解尤为重要。
三、R软件在t检验章节的具体应用
(一)随机模拟说明Z检验不适用于总体方差未知且样本量较小的情况
例1.当总体方差未知且样本量较小时,令样本方差代替总体方差,若采用Z检验,即Z=■-?滋0/S■,当|Z|>1.96或P<0.05,在α=0.05水平下拒绝原假设。采用Monte Carlo随机模拟,运用R软件计算I型错误。程序如下:
n<-5 #样本量为5
miu<-1;delta<-1 #均值为1,标准差为1
n1<-0
for(i in 1:100000) #重复运行{}内语句100000次
{
x<-rnorm(n,miu,delta) #随机产生5个x
mx<-mean(x) #计算样本均值
d<-var(x) #计算样本方差
p<-1-2*abs(pnorm((mx-miu)/(d/n)^0.5)-0.5) #计算P值
if(p<0.05)n1<-n1+1 #若拒绝原假设,结论出错次数+1
}
zerror<-n1/100000 #计算I型错误
zerror #输出I型错误
运行该程序,输出结果为0.12,说明α=0.05,n=5,总体方差未知时,采用Z检验的I型错误率是0.12,所以在该条件下,Z检验不适用,需要考虑新的统计分析方法。
(二)比较总体方差已知与未知的区别
态分布更“扁”的分布,称为t分布。R程序如下:
set.seed(11)
n<-5 #每次抽样为5
time<-30 #重复抽样30次
x<-matrix(rep(0,n*time),time,n)
mx<-vector(); s<-vector()
for(i in 1:time)
{
x[i,]<-rnorm(n,2,4) #均值为2,标准差为4的总体中抽取5个样本
mx[i]<-mean(x[i,]) #计算5个样本的均值
s[i]<-sd(x[i,]) #计算5个样本的标准差
}
Z1<-(mx-2)/(4/n^0.5) #总体方差已知,计算(xl-?滋)/(?滓/■)
Z2<-(mx-2)/(s/n^0.5) #样本方差代替总体方差,计算(xl-?滋)/(S/■)
par(mfrow=c(1,2))
hist(Z1, freq=F) #Z1直方图
lines(density(Z1), col="red") #实线画Z1的密度函数曲线
lines(density(Z2), col="blue") #虚线画Z2的密度函数曲线
hist(Z2, freq=F) #Z2直方图
lines(density(Z1), col="red") #实线画Z1的密度函数曲线
lines(density(Z2), col="blue") #虛线画Z2的密度函数曲线
图1左右图分别为根据样本计算得到
(三)R软件协助探索t分布的特点
例3. 讲解t分布的特点。在R软件中,输入以下程序,通过修改自由度df的取值,可观察不同自由度的t分布密度曲线,让学生探索t分布密度函数曲线与自由度的关系以及t分布与标准正态分布的关系。
df1<-2 #设置自由度为2
df2<-5 #设置自由度为5
x<-seq(-5,5,length.out=1000); y<-dt(x,1,0)
plot(x,y,lty=1,xlim=c(-5,5),ylim=c(0,0.45),type='l',xaxs="i",yaxs="i", ylab='density',xlab='',main="The T Density Distribution") #实线画自由度为1的t分布密度函数
lines(x,dt(x,df1,0),lty=2) #自由度为2的t分布密度函数
lines(x,dt(x,df2,0),lty=3) #自由度为5的t分布密度函数
lines(x,dnorm(x),lty=4) #标准正态分布密度函数
legend(3.4,0.4,c("df=1","df=2","df=5","df=∞"), lty=1:4)
图2让学生直观了解到t分布的密度函数曲线关于x=0对称,形状和自由度有关,在接近0处比标准正态分布小,远离0处比标准正态分布大,且自由度越大越接近标准正态分布。课堂教学中可以通过修改df1和df2的取值向学生呈现不同自由度的t分布密度函数曲线。当自由度大于50时,t分布密度函数曲线和标准正态分布函数曲线差距很小。
(四)R软件比较Z检验和t检验原假设,当|A|>2.776,t检验拒绝原假设。Z检验拒绝原假设的可能性较大,犯I型错误率较大。两者比较程序如下:
n<-5 #样本量,分别输入5,50,500
miu<-1;delta<-1 #均值为1,标准差为1
z1<-0;t1<-0
for(i in 1:100000)
{
x<-rnorm(n,miu,delta) #随机产生5个值
mx<-mean(x) #求x得均值
s<-var(x) #求x得方差
A<-(mx-1)/(s/n)^0.5 #计算统计量
t<-qt(0.975,n-1) #计算t界值
z<-qnorm(0.975) #计算Z界值
if(abs(A)>=t)t1<-t1+1 #判断是否拒绝原假设
if(abs(A)>=z)z1<-z1+1 #拒绝则犯错次数+1
}
terror<-t1/100000 #t检验错误率
zerror<-z1/100000 #Z检验错误率
terror; zerror
n=5,50,500时,输出结果分别为(0.05,0.12),(0.05,0.055),(0.05,0.05),即t检验I型错误率为0.05,Z检验的错误率随着样本量的增加逐渐接近0.05。说明t检验的结果比Z检验结果更加精确,大样本情况下可以用Z检验。
(五)R软件协助计算t检验的P值
例5:计算出t值之后,根据自由度df和显著性水平α,计算t界值:双侧检验用语句qt(1-α/2,df),单侧上界用qt(1-α,df),下界用qt(α,df),其中α为显著性水平,df为t分布的自由度。程序如下:
alpha<-0.05 # α=0.05
n<-10 #样本数为10
df<-n-1 #自由度
qt(1-alpha/2,df) #双侧t界值
qt(1-alpha,df) #单侧t界值
将t值与t界值进行比较可得出结果,或直接求P值,程序如下:
n<-10 #样本数
t<-1.833 #计算得到的t值
p<-pt(t,n-1)
twop<-1-2*abs(p-0.5)
onep<-2*twop
twop #双侧P值
onep #单侧P值
四、结束语
医学专业的学生概率统计的知识基础不扎实,刚接触t检验这一章节,对知识点的理解比较吃力,尤其是分位点函数、累计分布函数这些专业概念,导致对理论知识难以理解。本研究针对该特点,通过在课堂中引入R软件协助教学,从问题出发,借助R软件让学生直观理解抽象的理论知识,引导学生思考探索,提高教学质量。
引入R软件辅助教学,既能运行程序语句辅助案例讲解,加深学生对知识点的理解,又能简单快速计算结果,提高学生运用统计知识解决实际问题的能力,并且能将理论知识和实际操作联系起来,大大提高学习效果,帮助学生更好地学习t检验。
参考文献:
[1]沈新娣.基于R软件的数学实验在大学数学教学中的应用初探[J].卫生职业教育,2018,36(06):77-79.
[2]安丽霞,卢丑丽,燕扬.初探R软件在独立院校概率论与数理统计教学中的应用[J].大学教育,2018(09):102-104.
[3]劉君娥.R软件在统计学教学中的应用——以因子分析模
型为例[J].广西科技师范学院学报,2019,34(03):149-152.
[4]薛毅.统计建模与R软件[M].北京:清华大学出版社,2007.
[5]陆守曾.对医学统计学应用现状的四点看法[J].中国卫生统计,2010,27(02):114-115.