玄英花
摘要:把R語言軟件融入醫(yī)學統(tǒng)計學教學中是培養(yǎng)學生應(yīng)用和實踐能力的一條有效途徑,是當前醫(yī)學統(tǒng)計學課程改革的一個重要方向。本文從醫(yī)學統(tǒng)計學教學的具體環(huán)節(jié)給出教學中使用R語言的具體步驟,并且探討了實施軟件教學的具體方法和應(yīng)該注意的幾個問題。
關(guān)鍵詞:R語言;醫(yī)學統(tǒng)計學;教學
中圖分類號:R195.1 文獻標志碼:A 文章編號:1674-9324(2016)22-0240-02
醫(yī)學統(tǒng)計學是高等醫(yī)學院校各專業(yè)學生的基礎(chǔ)必修課,是醫(yī)學教學、科研和實踐的重要工具。然而,因其概念抽象、邏輯性強、公式煩瑣、運算量大,學生普遍認為該課程較難理解,這直接影響了學生的應(yīng)用能力,給本課程的教學帶來一定的難度。隨著計算機軟件等現(xiàn)代技術(shù)在醫(yī)學領(lǐng)域中的廣泛應(yīng)用,在醫(yī)學統(tǒng)計學教學中利用計算機軟件進行計算機輔助教學,可以通過直觀和簡易的教學方法提高學生對醫(yī)學資料進行統(tǒng)計分析的實際應(yīng)用能力。本文試圖通過R語言統(tǒng)計軟件進行計算機輔助教學,提高對醫(yī)學數(shù)據(jù)的感知和應(yīng)用能力。
一、R語言簡述
R語言是一種為統(tǒng)計計算和圖形顯示而設(shè)計的語言環(huán)境,是貝爾實驗室(Bell Laboratories)的Rick Becker、John Chambers和Allan Wilks開發(fā)的S語言的一種實現(xiàn),提供了一系列統(tǒng)計和圖形顯示工具。它是一套開源的數(shù)據(jù)分析解決方案,由一個龐大且活躍的全球性研究型社區(qū)維護。它具有下列優(yōu)勢:(1)作為一個免費的統(tǒng)計軟件,R可運行于多種平臺之上,包括Windows、UNIX、MacOS和Linux;(2)R可以輕松地從各種類型的數(shù)據(jù)源導(dǎo)入數(shù)據(jù),包括文本文件、數(shù)據(jù)庫管理系統(tǒng)、統(tǒng)計軟件,乃至專門的數(shù)據(jù)倉庫。它同樣可以將數(shù)據(jù)輸出并寫入到這些系統(tǒng)中;(3)具有較高的開放性,R不僅提供功能豐富的內(nèi)置函數(shù)供用戶調(diào)用,也允許用戶編寫自定義函數(shù)來擴充功能;(4)R擁有頂尖水準的制圖功能。如果希望復(fù)雜數(shù)據(jù)可視化,那么R擁有最全面且最強大的一系列可用功能。
二、單組數(shù)據(jù)的描述性統(tǒng)計分析
(一)單組數(shù)據(jù)的圖形描述
單組數(shù)據(jù)的分布可以通過直方圖以及箱型圖和QQ圖考查。下文所用的數(shù)據(jù)集是R語言程序包MASS中有內(nèi)嵌數(shù)據(jù)集“Pima”,該數(shù)據(jù)集包含了532個樣本的血清胰島素記錄數(shù)據(jù),這些數(shù)據(jù)是由美國國家糖尿病和消化及腎臟疾病研究所收集的住在亞利桑那州鳳凰城附近的皮馬印第安人婦女的數(shù)據(jù)。
1.直方圖。直方圖是直觀了解數(shù)據(jù)分布情況最常用的圖形類型,它將連續(xù)型數(shù)據(jù)分為幾個等間距的組,并以矩形的高低來顯示相應(yīng)組中所含數(shù)據(jù)的頻數(shù)或頻率大小,有時可同時顯示出數(shù)據(jù)的密度曲線作為輔助。這是一種簡單快速的探索數(shù)據(jù)分布的方式。下文我們抽取Pima數(shù)據(jù)集中的血壓數(shù)據(jù)進行分析,具體步驟如下:
library(MASS) #加載MASS軟件包
data(Pima) #加載Pima數(shù)據(jù)集
Pima_n=Pima[Pima$type=='No'& Pima$age==22,] #抽取Pima數(shù)據(jù)集中年齡=22歲,非糖尿病患者的數(shù)據(jù)
attach(Pima_n) #把Pima_n設(shè)置為當前數(shù)據(jù)集
hist(bp) #畫出Pima_n中血壓的直方圖
2.箱型圖。箱型圖提供了識別異常值的一個標準:異常值通常被定義為小于Q■-1.5IQR或大于Q■+1.5IQR的值。Q■稱為下四分位數(shù),表示全部觀察值中有四分之一的數(shù)據(jù)取值比它??;Q■稱為上四分位數(shù),表示全部觀察值中有四分之一的數(shù)據(jù)取值比它大;IQR稱為四分位數(shù)間距,是上四分位數(shù)Q■與下四分位數(shù)Q■之差,其間包含了全部觀察值的一半。
箱型圖依據(jù)實際數(shù)據(jù)繪制,沒有對數(shù)據(jù)作任何限制性要求如服從某種特定的分布形式,它只是真實直觀地表現(xiàn)數(shù)據(jù)分布的本來面貌;另一方面,箱型圖判斷異常值的標準以四分位數(shù)和四分位距為基礎(chǔ),四分位數(shù)具有一定的魯棒性:多達25%的數(shù)據(jù)可以變得任意遠而不會很大地擾動四分位數(shù),所以異常值不能對這個標準施加影響。由此可見,箱型圖識別異常值的結(jié)果比較客觀,在識別異常值方面有一定的優(yōu)越性。在R中使用函數(shù)boxplot( )作盒形圖,程序如下:
boxplot(bp) #畫出Pima_n數(shù)據(jù)集中血壓的箱型圖
箱子中的五根橫線對應(yīng)的坐標分別是最小值,第一4分位數(shù),中位數(shù),第三4分位數(shù)和最大值。
3.正態(tài)性檢驗。
(1)使用QQ圖。
QQ圖是用來檢查數(shù)據(jù)正態(tài)性的一種統(tǒng)計圖形,圖中的點若呈直線狀(大致分布在對角線上),那么可以說明數(shù)據(jù)的正態(tài)性比較好,因此QQ圖經(jīng)常被用在對回歸模型殘差的正態(tài)性診斷上。程序如下:
qqnorm(bp,main="Normality Check via QQ Plot") #畫出Pima_n數(shù)據(jù)集中血壓的QQ圖
qqline(bp,col='red',lwd=3,)
得到表明數(shù)據(jù)與正態(tài)性略有差異,特別在圖形的上部。
(2)與正態(tài)密度函數(shù)比較。
dens <- density(bp)
xlim <- range(dens$x);ylim<-range(dens$y)
hist(bp,xlim=xlim,ylim=ylim,probability=T,xlab="total length")
lines(dens,col=par('fg'),lty=2)
m <- mean(bp); s <- sd(bp)
curve(dnorm(x,m,s),col='red',add=T)
使用經(jīng)驗分布函數(shù)
x <- sort(bp);n <- length(x);y <- (1:n)/n;m <- mean(bp);s <- sd(bp)
plot(x,y,type='s',main="empirical cdf of bp")
curve(pnorm(x,m,s),col='red',lwd=2,add=T)
(二)單組數(shù)據(jù)的描述性統(tǒng)計
樣本來自總體,樣本的觀測值中含有總體各方面的信息,但這些信息較為分散,有時顯得雜亂無章。為將這些分散在樣本中的有關(guān)總體的信息集中起來以反映總體的各種特征,需要對樣本進行加工得到統(tǒng)計量。均值、標準差、五數(shù)(最小值、第三4分位數(shù)、中位數(shù)、第一4分位數(shù)、最大值)是數(shù)據(jù)的主要的統(tǒng)計量,他們對數(shù)據(jù)的進一步分析很有幫助。
1.總體描述。
在R中,函數(shù)summary( )可以計算出單組數(shù)據(jù)的均值和五數(shù)。仍然用上一節(jié)的例子,考慮Pima_n數(shù)據(jù)集中的血壓。
summary(bp)
2.五數(shù)及樣本分位數(shù)概括。
計算五數(shù)用函數(shù)fivenum( ).若要得到分位數(shù)用函數(shù)quantile( ),計算中位數(shù)使用函數(shù)median( ), 最大值使用函數(shù)max( ),最小值使用函數(shù)min( ).
fivenum(bp);quantile(bp);median(bp);max(bp); min(bp)
3.離差的概括。
樣本的平均水平可以用上面介紹的平均值函數(shù)mean( )和中位數(shù)函數(shù)median( )來計算。樣本的變異程度可以用極值(max( )-min( ))、四分位極值函數(shù)(IQR( ))、標準差函數(shù)(sd( ))、方差函數(shù)var( )和絕對離差函數(shù)(mad())來表示。方差函數(shù)var( )也可用于計算兩個向量協(xié)方差或一個矩陣的協(xié)方差陣。mad( )在R中的定義為
1.4826*median(abs(x-median(x)))
其中系數(shù)1.4826約等于1/qnorm(3/4),目的是為了使mad(x)作為方差的估計具有一致性(在正態(tài)或大樣本下)。Pima_n數(shù)據(jù)集中的血壓為例:
max(bp)-min(bp);IQR(bp);sd(bp);var(bp);mad(bp)
三、教學中運用R語言需注意的問題
(一)區(qū)別教材內(nèi)容和R語言的主次之分
課程中的核心概念進行軟件演示,如幫助學生理解均值、方差、中位數(shù)和分布等概念,可適當引入。只要求學生通過掌握調(diào)整程現(xiàn)有的程序參數(shù)實現(xiàn)運算,不要求軟件的復(fù)雜操作,發(fā)揮輔助教學的作用。
(二)利用數(shù)學軟件切忌給學生制造新難點
醫(yī)學統(tǒng)計學教學的重點是基礎(chǔ)理論的學習、基本技能的訓(xùn)練、統(tǒng)計能力的培養(yǎng),并非軟件的編程。使用軟件是為了教學內(nèi)容的簡潔、直觀,幫助學生對抽象問題的理解。因而,在引入軟件程序,應(yīng)避免程序繁難、冗長,超出學生所學知識范圍。