符 輝 陳法霖 袁桂香
(湖南農(nóng)業(yè)大學(xué)資源環(huán)境學(xué)院 湖南 長沙 410128)
近年來,針對生物及環(huán)境的監(jiān)測技術(shù)手段與能力得到快速發(fā)展和不斷更新完善,如高分辨率遙感對地觀測技術(shù)、無人機(jī)遙感技術(shù)、飛速增長的無線傳感器網(wǎng)絡(luò)、全基因組測序的遺傳學(xué)研究及數(shù)據(jù)的自動采集、存儲與傳輸技術(shù)的發(fā)展等。[1-2],大數(shù)據(jù)時代不僅促進(jìn)了理論進(jìn)步如生物信息學(xué)、生物多樣性信息學(xué)、生態(tài)信息學(xué)等新學(xué)科的誕生,也使科學(xué)家們逐漸認(rèn)識到提高數(shù)據(jù)處理分析能力的重要性。[3-7]生態(tài)環(huán)境學(xué)科快速發(fā)得益于技術(shù)進(jìn)步、大數(shù)據(jù)可用性、統(tǒng)計方法(如貝葉斯建模、機(jī)器學(xué)習(xí))發(fā)展,進(jìn)而提升對人與自然系統(tǒng)的新認(rèn)識。因此,如何基于高通量數(shù)據(jù)流將多學(xué)科知識用于解決現(xiàn)實問題、并提高學(xué)生發(fā)現(xiàn)和解決問題的能力,是生物統(tǒng)計學(xué)課程在新時代面臨的巨大挑戰(zhàn)。
生物統(tǒng)計學(xué)課程是農(nóng)業(yè)院校生命科學(xué)及生態(tài)學(xué)領(lǐng)域相關(guān)專業(yè)的核心基礎(chǔ)課程,但其教學(xué)本身存在較多問題。[8-13]例如,理論教學(xué)與軟件分析難以高度融合,傳統(tǒng)的考試和課后千篇一律的作業(yè)報告考核方式難以避免學(xué)生之間互相借鑒參考,不能有效提高每個學(xué)生的數(shù)據(jù)分析能力,更無法使教師掌握每個學(xué)生對教學(xué)知識的理解程度。為適應(yīng)大數(shù)據(jù)時代對數(shù)據(jù)分析人才的需求,促使學(xué)生熟練掌握R軟件操作技能和提高數(shù)據(jù)分析能力,筆者結(jié)合R語言軟件教學(xué),對生物統(tǒng)計學(xué)課程的考核方式提出改革建議,以期為改善該課程的教學(xué)效果、提高本科生的培養(yǎng)質(zhì)量提供參考。
R語言是一款優(yōu)秀的數(shù)據(jù)分析和數(shù)據(jù)可視化軟件工具,主要用于統(tǒng)計分析、繪圖、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)等。[14]4-7R語言擁有一套完整的數(shù)據(jù)清洗、處理、分析、建模和可視化的系統(tǒng),可以完成數(shù)據(jù)科學(xué)中幾乎所有的工作任務(wù)。相較于眾多傳統(tǒng)統(tǒng)計工具如SPSS、Statistics、SAS等軟件,R語言有以下優(yōu)點[14]3-4:第一,完全開源免費。它的代碼是公開的,用戶既可以查看函數(shù)的源代碼學(xué)習(xí)統(tǒng)計編程,也可以通過修改源代碼實現(xiàn)新的功能;第二,可跨平臺使用??蛇\行于多種操作系統(tǒng),如UNIX、Windows、MacOS等;第三,編程簡單。它是一種解釋性和交互式高級語言,在掌握一些基礎(chǔ)函數(shù)和語法后即可使用;第四,數(shù)據(jù)分析功能強(qiáng)。它是專門為統(tǒng)計和數(shù)據(jù)分析開放的語言,目前平臺上已開放了數(shù)以萬計的功能強(qiáng)大的程序包,涵蓋了從基礎(chǔ)統(tǒng)計到機(jī)器學(xué)習(xí)再到深度學(xué)習(xí)最前沿的分析方法,用戶均可免費下載使用。
近年來,R語言已普遍應(yīng)用于國外大學(xué)的統(tǒng)計學(xué)相關(guān)課程的教學(xué)。如賓夕法尼亞大學(xué)、杜克大學(xué)、加利福尼亞大學(xué)、劍橋大學(xué)、牛津大學(xué)、康奈爾大學(xué)等高校的生命科學(xué)相關(guān)專業(yè)均開設(shè)了R語言與生物統(tǒng)計課程,還出版了一系列書籍,如Biostatistics with R、A Primer in Biological Data Analysis and Visualization Using R、Bioinformatics with R Cookbook、Introduction to Data Analysis and Graphical Presentation in Biostatistics with R等。目前,國內(nèi)已出版R語言在生命科學(xué)領(lǐng)域應(yīng)用的專著,如《數(shù)量生態(tài)學(xué)——R語言的應(yīng)用》《試驗設(shè)計與數(shù)據(jù)分析——基于R語言應(yīng)用》《R語言與生物統(tǒng)計學(xué)實習(xí)指導(dǎo)書》《環(huán)境與生態(tài)統(tǒng)計——R語言的應(yīng)用》,然而將R語言貫穿于生物統(tǒng)計學(xué)課程教學(xué)過程的仍不多見。
事實上,R語言社區(qū)已經(jīng)有大量專門為生物科學(xué)、生態(tài)學(xué)、環(huán)境學(xué)領(lǐng)域的學(xué)者開發(fā)出來的應(yīng)用程序包,如基礎(chǔ)統(tǒng)計程序包“stat”、農(nóng)林類程序包“agricolae”、混合模型程序包“l(fā)me4”、廣義模型程序包“mgcv”、數(shù)量生態(tài)學(xué)程序包“vegan”、結(jié)構(gòu)方程模型程序包“piecewiseSEM”、數(shù)據(jù)可視化程序包“ggplot2”等。這些程序包不僅含有大量簡單易學(xué)的函數(shù),且每個函數(shù)都有詳細(xì)的參數(shù)使用說明、實戰(zhàn)數(shù)據(jù)及案例解析,為上機(jī)操作提供了極大便利;因此,將R語言與生物統(tǒng)計學(xué)課程教學(xué)相結(jié)合,對于推動生物統(tǒng)計學(xué)課程教學(xué)改革具有重要的積極意義。
為避免學(xué)生之間互相借鑒參考課后作業(yè)的問題,同時旨在提高學(xué)生應(yīng)用R語言進(jìn)行數(shù)據(jù)處理分析的能力,文章應(yīng)用R語言數(shù)據(jù)操作技能,給每位學(xué)生隨機(jī)產(chǎn)生包含課程主要知識點的作業(yè)組合,以保證每位學(xué)生所使用的數(shù)據(jù)資料和作業(yè)的獨立性。具體操作步驟如下:
Step 1:將學(xué)生學(xué)號或名字編輯成一個向量;
Step 2:將所有要考核的知識點分成兩大類:第一大類為基礎(chǔ)知識點(如求均值、最大值、最小值、方差等);第二大類為進(jìn)階知識點(如t檢驗、方差分析、相關(guān)分析、回歸分析等);
Step 3:將每大類知識點按章節(jié)分成不同的組,然后給每組知識點編成一個向量;
Step 4:根據(jù)學(xué)生人數(shù)n準(zhǔn)備n個數(shù)據(jù)集,并將數(shù)據(jù)集的名字編成一個向量;
Step 5:根據(jù)完全隨機(jī)原則,應(yīng)用R語言中的隨機(jī)抽樣方法(sample函數(shù)),針對每組知識點隨機(jī)抽取一個知識點按序號分配給一個學(xué)生,總計抽取n次,并用同樣的方法分配數(shù)據(jù)集。
Step 6:將所有向量組成一個數(shù)據(jù)矩陣,命名為考核作業(yè)。
R語言代碼如下:
##選修名單(Step 1)
list<-read.csv(‘選修學(xué)生名單統(tǒng)計.csv',header=T)
ID<-list$學(xué)號
##基礎(chǔ)知識點1(Step 2,3)
descriptive_stat<-c(‘mean_value,standardized_deviation,minimum_vaule,maximum_value,coefficient_variation')
Descriptive<-c(rep(descriptive_stat,length(ID)))
##基礎(chǔ)知識點2,數(shù)據(jù)探索性分析(Step 2,3)
data.exploration<-c('正態(tài)分布檢驗,方差齊性檢驗,對數(shù)轉(zhuǎn)換,平方根轉(zhuǎn)換')
data.exploration0<-c(rep(data.exploration,length(ID)))
##進(jìn)階知識點1,基礎(chǔ)統(tǒng)計(Step 2,3)
model1<-c(‘t.test',‘a(chǎn)nova',‘correlati on',‘manova',‘pca')
##進(jìn)階知識點2,線性模型(Step 2,3)
model2<-c(‘可加模型',‘廣義線性模型',‘廣義可加模型',‘線性模型',‘廣義最小二乘法模型')
##進(jìn)階知識點3,混合模型(Step 2,3)
model3<-c(‘線性混合模型',‘可加混合模型',‘廣義線性混合模型',‘廣義可加混合模型')
##進(jìn)階知識點4,模型檢驗(Step 2,3)
model.test<-c(‘殘差正態(tài)性檢驗,殘差圖,殘差方差齊性檢驗')
##進(jìn)階知識點5,非參數(shù)統(tǒng)計(Step2,3)
nps<-c(‘wilcox.test',‘kruskal.test',‘friedman.test')
##進(jìn)階知識點6,繪圖
ggplot<-c(‘bar_plot,point_plot,box_plot,histogram_plot,scatter_plot').
plot<-c(rep(ggplot,length(ID)))
## 數(shù)據(jù)集(Step 4)
data<-paste(‘data',1:length(ID),sep=‘_')
##隨機(jī)抽樣(Step 5)
Model1<-sample(model1,length(ID),replac e=TRUE)
Model2<-sample(model2,length(ID),replac e=TRUE)
Model3<-sample(model3,length(ID),replac e=TRUE)
Model4<-sample(model.test,length(ID),replace=TRUE)
Model5<-sample(nps,length(ID),replace=T RUE)
##作業(yè)(Step 6)
Assignment<-data.frame(ID,data,Descriptive,data.exp0,Model1,Model2,Model3,Model4,Model5,plot)
write.csv(Assignment',考核作業(yè)2021.csv')
R語言統(tǒng)計分析是一門工具性課程,只有不斷地操作、練習(xí),才能促進(jìn)數(shù)據(jù)分析能力的提升,故而生物統(tǒng)計學(xué)課程考核方式的改進(jìn)應(yīng)有助于學(xué)生具備獨立自主的操作實踐技能及掌握解決實際問題的統(tǒng)計思維與分析思路。經(jīng)過三年的教學(xué)改革實踐,本方法能有效杜絕學(xué)生之間借鑒抄襲考核作業(yè)的情況,使學(xué)生主動探索學(xué)習(xí)R語言數(shù)據(jù),不斷進(jìn)行試錯操作,大大提高了應(yīng)用R語言解決實際問題與獨立思考能力。
相較于 C語言、C++、VB等計算機(jī)編程語言,R語言學(xué)習(xí)難度低、操作容易,且對于生物科學(xué)及生態(tài)學(xué)專業(yè)學(xué)生而言,進(jìn)行生物與環(huán)境相關(guān)數(shù)據(jù)分析是未來從事相關(guān)工作的必備技能;因此,在生物統(tǒng)計學(xué)課程引入R語言教學(xué)與考核是值得我們嘗試的實踐工作。這不僅能夠提高教師的數(shù)據(jù)分析能力與科研水平,也能培養(yǎng)從事生命科學(xué)、生態(tài)學(xué)、環(huán)境學(xué)等方面的專業(yè)人才。