葛文秀 阮麗華
[摘 要]統(tǒng)計(jì)計(jì)算能力是現(xiàn)代統(tǒng)計(jì)學(xué)的一項(xiàng)重要培養(yǎng)內(nèi)容。基于多年的教學(xué)實(shí)踐,提出了以統(tǒng)計(jì)計(jì)算為改革重點(diǎn),以其他統(tǒng)計(jì)學(xué)專業(yè)課程為延伸的“點(diǎn)線”結(jié)合、貫穿始終的培養(yǎng)模式,提高了學(xué)生的動(dòng)手編程能力,取得了較好的成效。
[關(guān)鍵詞]統(tǒng)計(jì)計(jì)算;計(jì)算能力;教學(xué)改革
[基金項(xiàng)目]廣東省教育廳2016年度本科高校高等教育教學(xué)改革項(xiàng)目“數(shù)據(jù)時(shí)代統(tǒng)計(jì)學(xué)本科生計(jì)算能力建設(shè)”(粵教高函[2016]236號(hào));廣東食品藥品職業(yè)學(xué)院2019校級(jí)精品在線開放課程(2019KC09);廣東食品藥品職業(yè)學(xué)院2020校級(jí)質(zhì)量工程項(xiàng)目(2020JG08)
[作者簡介]葛文秀(1979—),男,河北唐山人,博士,華南師范大學(xué)數(shù)學(xué)科學(xué)學(xué)院講師,主要從事非(半)參數(shù)統(tǒng)計(jì)推斷、應(yīng)用概率統(tǒng)計(jì)研究;阮麗華(1980—),女,河北邢臺(tái)人,廣東食品藥品職業(yè)學(xué)院軟件學(xué)院講師,主要從事可靠性分析、應(yīng)用概率統(tǒng)計(jì)研究。
[中圖分類號(hào)] C32[文獻(xiàn)標(biāo)識(shí)碼] A[文章編號(hào)] 1674-9324(2020)46-0-03[收稿日期] 2020-10-07
一、引言
隨著傳感器技術(shù)、通信網(wǎng)絡(luò)和計(jì)算機(jī)存儲(chǔ)技術(shù)的飛速發(fā)展,人們無時(shí)無刻不在產(chǎn)生、儲(chǔ)存著大量的數(shù)據(jù),而且呈現(xiàn)快速增長的趨勢?!都~約時(shí)報(bào)》2012年2月在一篇專欄中指出:“大數(shù)據(jù)”時(shí)代已經(jīng)來臨,在商業(yè)、經(jīng)濟(jì)及其他領(lǐng)域中,決策將日益基于數(shù)據(jù)和分析而做出,而非基于經(jīng)驗(yàn)和直覺。因此,作為以數(shù)據(jù)為研究對象的統(tǒng)計(jì)學(xué)有著更加廣闊的用武之地。
盡管豐富、多樣的數(shù)據(jù)為統(tǒng)計(jì)學(xué)帶來了發(fā)展機(jī)遇,但同時(shí)也面臨巨大挑戰(zhàn)。挑戰(zhàn)之一就在于不論是數(shù)據(jù)的獲取、清洗、分析都離不開分析工具計(jì)算機(jī)。不具備計(jì)算能力(此處的計(jì)算能力既包括計(jì)算機(jī)的專業(yè)知識(shí)也包括編寫程序代碼的實(shí)際動(dòng)手能力)的統(tǒng)計(jì)專業(yè)人員很難得出很好的數(shù)據(jù)分析結(jié)果,有時(shí)甚至連數(shù)據(jù)都無法獲得,更談不上分析處理;因此,計(jì)算能力成為統(tǒng)計(jì)專業(yè)人員必備的能力。
統(tǒng)計(jì)學(xué)專業(yè)本科生作為未來的統(tǒng)計(jì)專業(yè)人員,在掌握統(tǒng)計(jì)學(xué)專業(yè)基礎(chǔ)知識(shí)的基礎(chǔ)上,統(tǒng)計(jì)計(jì)算能力也是培養(yǎng)的一個(gè)重要方面。然而,作者在多年的研究和教學(xué)實(shí)踐中發(fā)現(xiàn),在統(tǒng)計(jì)學(xué)專業(yè)本科生計(jì)算能力培養(yǎng)方面仍存在一些問題。
(一)培養(yǎng)目標(biāo)要求低,不適合當(dāng)今大規(guī)模數(shù)據(jù)分析的要求
目前,統(tǒng)計(jì)專業(yè)的培養(yǎng)方案通常要求學(xué)生掌握一種統(tǒng)計(jì)分析軟件,例如 R 或者 SAS;能夠利用統(tǒng)計(jì)軟件給出統(tǒng)計(jì)分析結(jié)果。這個(gè)要求不能滿足當(dāng)前大數(shù)據(jù)分析的實(shí)際需要。例如,在數(shù)據(jù)分析之前,首先要能夠獲得數(shù)據(jù)。一般獲得數(shù)據(jù)的方式包括直接錄入數(shù)據(jù)和讀入外部數(shù)據(jù)兩種類型,其中最常用的是讀入外部數(shù)據(jù)。統(tǒng)計(jì)軟件讀入文本數(shù)據(jù)、數(shù)據(jù)庫數(shù)據(jù),以及其他統(tǒng)計(jì)軟件的數(shù)據(jù),如Excel、Spss等。然而,當(dāng)前另外一塊重要的數(shù)據(jù)來源于網(wǎng)絡(luò),如何直接讀取網(wǎng)絡(luò)數(shù)據(jù)在一般的統(tǒng)計(jì)軟件中涉及很少。此外,由于數(shù)據(jù)規(guī)模過大,像R這樣的將數(shù)據(jù)讀入內(nèi)存的處理方式,會(huì)出現(xiàn)內(nèi)存溢出的問題。上述這些問題的解決需要具備較高的計(jì)算機(jī)專業(yè)知識(shí)。
(二)培養(yǎng)方式簡單
目前,統(tǒng)計(jì)專業(yè)通常通過開設(shè)統(tǒng)計(jì)計(jì)算或者統(tǒng)計(jì)計(jì)算與軟件,以及C語言、C++語言,或者Java 語言來培養(yǎng)學(xué)生的計(jì)算能力。而在講授其他統(tǒng)計(jì)專業(yè)課程時(shí),只注重統(tǒng)計(jì)專業(yè)知識(shí)的傳授與應(yīng)用,而忽略了統(tǒng)計(jì)計(jì)算能力的培養(yǎng)。例如,在應(yīng)用回歸分析中,學(xué)生利用R語言只需一條lm( ?)語句就可以實(shí)現(xiàn)線性回歸。但是這種高度封裝的函數(shù)不利于培養(yǎng)學(xué)生的編程計(jì)算能力,特別是在現(xiàn)有的統(tǒng)計(jì)方法無法解決實(shí)際數(shù)據(jù)分析所遇到的問題時(shí),需要具有較強(qiáng)的編程能力以探索新的分析方法。若能夠讓學(xué)生將線性回歸的過程以代碼的形式展示出來,不僅有助于學(xué)生深入理解統(tǒng)計(jì)方法,也有利于提高學(xué)生的編程計(jì)算能力。
(三)缺乏調(diào)動(dòng)學(xué)生提高計(jì)算能力的手段和方式
目前的統(tǒng)計(jì)計(jì)算能力的培養(yǎng)主要通過開設(shè)課程的方式實(shí)現(xiàn),在教學(xué)手段上雖然引入了多媒體技術(shù),但是仍然擺脫不了“滿堂灌”的方式。在教學(xué)過程中,缺乏師生之間的互動(dòng),難以調(diào)動(dòng)學(xué)習(xí)的興趣和發(fā)揮學(xué)生學(xué)習(xí)的自主性。
基于上述原因,作者提出以統(tǒng)計(jì)計(jì)算課程改革實(shí)踐為重點(diǎn),以其他統(tǒng)計(jì)學(xué)專業(yè)課程為延長線的“點(diǎn)線”結(jié)合、貫穿始終的統(tǒng)計(jì)學(xué)專業(yè)本科生計(jì)算能力培養(yǎng)模式,并將此模式在教學(xué)過程中付諸實(shí)施,提高了學(xué)生的編程動(dòng)手能力,增強(qiáng)了學(xué)生對統(tǒng)計(jì)專業(yè)的理解與應(yīng)用,在各類學(xué)科競賽中取得了理想的成績。
二、課程教學(xué)過程中統(tǒng)計(jì)學(xué)本科生計(jì)算能力的培養(yǎng)
(一)重點(diǎn):統(tǒng)計(jì)計(jì)算課程的改革
統(tǒng)計(jì)計(jì)算是統(tǒng)計(jì)學(xué)本科生的一門重要專業(yè)課程,其主要內(nèi)容包括誤差與數(shù)據(jù)處理,常用分布函數(shù)和分位數(shù)的計(jì)算、隨機(jī)數(shù)的產(chǎn)生與檢驗(yàn)、隨機(jī)模擬方法、統(tǒng)計(jì)計(jì)算中常用的矩陣算法、多元線性回歸的計(jì)算方法、非線性回歸分析及其算法。[1]然而,作為培養(yǎng)統(tǒng)計(jì)學(xué)專業(yè)本科生計(jì)算能力的重要課程,統(tǒng)計(jì)計(jì)算的課程建設(shè)在教學(xué)內(nèi)容體系、方法、手段和考核等方面有著不同的探索嘗試。[2-4]
為適應(yīng)大數(shù)據(jù)分析對現(xiàn)代統(tǒng)計(jì)學(xué)的要求,提高學(xué)生動(dòng)手編寫代碼能力,增強(qiáng)統(tǒng)計(jì)專業(yè)學(xué)生的計(jì)算能力,作者結(jié)合課程教學(xué),從課程定位、課程語言、教學(xué)內(nèi)容三個(gè)方面進(jìn)行改革嘗試。
1.統(tǒng)計(jì)計(jì)算課程定位。統(tǒng)計(jì)計(jì)算是現(xiàn)代統(tǒng)計(jì)學(xué)課程體系的重要組成部分。統(tǒng)計(jì)專業(yè)學(xué)生不僅需要掌握如何利用統(tǒng)計(jì)軟件得到結(jié)果,而且需要理解這些結(jié)果是如何實(shí)現(xiàn)的;因此,作者將本課程定位于面向統(tǒng)計(jì)學(xué)專業(yè)的編程課程。通過課程的學(xué)習(xí),學(xué)生將學(xué)習(xí)到編程的思想,包括數(shù)據(jù)結(jié)構(gòu)、函數(shù)、迭代、調(diào)試代碼等,進(jìn)而達(dá)到能夠通過編寫代碼完成統(tǒng)計(jì)分析的目的。學(xué)生將學(xué)到如何編寫、調(diào)試代碼;如何設(shè)置和完成隨機(jī)模擬;如何擬合基本的統(tǒng)計(jì)模型和模型效果的評(píng)價(jià)等。
2.課程編程語言。課程采用的語言為R。R既是一個(gè)統(tǒng)計(jì)分析軟件,又是一種高級(jí)編程語言;既能夠提供大量現(xiàn)成的統(tǒng)計(jì)分析模塊,也能夠?yàn)槭褂谜咛峁┚帉懶碌拇a解決所遇到的新的數(shù)據(jù)分析問題,它集靈活性與集成化于一體。同時(shí)利用R語言的開源特性,學(xué)生能夠查看到現(xiàn)有模塊的實(shí)現(xiàn),修改、模仿代碼模塊編寫。因此,將統(tǒng)計(jì)計(jì)算課程教學(xué)與R軟件相結(jié)合,能夠培養(yǎng)學(xué)生編寫代碼、解決問題的能力,形成具有扎實(shí)統(tǒng)計(jì)專業(yè)知識(shí),又具備很強(qiáng)編程分析數(shù)據(jù)的統(tǒng)計(jì)專業(yè)特色。
3.教學(xué)內(nèi)容及要求。不同于傳統(tǒng)統(tǒng)計(jì)計(jì)算側(cè)重隨機(jī)模擬、優(yōu)化算法等理論內(nèi)容,作者在教學(xué)內(nèi)容設(shè)計(jì)上側(cè)重編程實(shí)現(xiàn)。其具體內(nèi)容及要求如下:第一章介紹數(shù)據(jù)類型與數(shù)據(jù)結(jié)構(gòu),要求了解 R 編譯器;掌握基本的數(shù)據(jù)類型如向量、數(shù)組、矩陣與矩陣運(yùn)算、列表和數(shù)據(jù)框;理解表格數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。第二章介紹生成隨機(jī)數(shù)和擬合統(tǒng)計(jì)模型,要求理解隨機(jī)數(shù)發(fā)生器,隨機(jī)數(shù)種子;能夠利用R的d*,p*,q*,r*函數(shù)產(chǎn)生隨機(jī)分布;理解回歸模型的數(shù)據(jù)結(jié)構(gòu)。第三章介紹數(shù)據(jù)變形,要求掌握數(shù)據(jù)子集選擇方法;變換數(shù)據(jù)以適用問題;對數(shù)據(jù)排序、轉(zhuǎn)置、合并、拆分?jǐn)?shù)據(jù)框、將數(shù)據(jù)表轉(zhuǎn)換成長表或者寬表。第四章介紹文本,要求掌握基本的文本類型如字符、字符串、文本數(shù)據(jù);能夠抽取、替代子字符串,能夠拆分、構(gòu)建字符串;能夠計(jì)算字符串的個(gè)數(shù);掌握正則表達(dá)式的模型、規(guī)則;會(huì)利用正則表達(dá)式尋找模式匹配、拆分模式等。第五章介紹獲取外部數(shù)據(jù)方式,要求掌握讀入、保存為非 R 格式的數(shù)據(jù);掌握網(wǎng)絡(luò)數(shù)據(jù)爬取。第六章介紹數(shù)據(jù)庫,要求掌握關(guān)系數(shù)據(jù)庫的基本概念;能夠利用 R 訪問數(shù)據(jù)庫;掌握結(jié)構(gòu)查詢語句。第七章介紹循環(huán)與流控制,要求能夠?qū)?shù)據(jù)進(jìn)行條件計(jì)算;掌握循環(huán)語句;能夠利用 R的“向量化”避免循環(huán)操作。第八章介紹apply/split/combine,要求掌握R中的apply,lapply,sapply以及mapply函數(shù);掌握split,aggregate,subset等函數(shù);能夠利用plyr包完成split/apply/combine。第九章介紹編寫和調(diào)用函數(shù),要求掌握 R 編寫函數(shù)規(guī)則,輸入、輸出變量;掌握函數(shù)調(diào)用方法;能夠?qū)?fù)雜問題拆解成多個(gè)簡單問題。第十章介紹代碼調(diào)試,要求掌握代碼調(diào)試常用方法,理解錯(cuò)誤、警告等表示。第十一章介紹函數(shù)的函數(shù)與優(yōu)化,要求理解R中的函數(shù)是一個(gè)對象,可以被其他函數(shù)調(diào)用;掌握計(jì)算最值的基本方法如泰勒展開式、梯度下降和牛頓法。第十二章介紹帶約束優(yōu)化問題,要求掌握帶有約束的優(yōu)化問題求解方法如拉格朗日法;統(tǒng)計(jì)中的帶有懲罰的優(yōu)化問題如嶺回歸、LASSO、樣條回歸等。第十三章介紹隨機(jī)模擬與MCMC,要求掌握隨機(jī)變量、Markov鏈的產(chǎn)生方法,能夠利用MCMC方法計(jì)算概率。
(二)延長線:計(jì)算能力的培養(yǎng)在其他統(tǒng)計(jì)專業(yè)課程中的延伸
除了提高統(tǒng)計(jì)計(jì)算課程的編程能力要求外,作者認(rèn)為應(yīng)該將統(tǒng)計(jì)專業(yè)學(xué)生的計(jì)算能力建設(shè)貫徹于統(tǒng)計(jì)專業(yè)學(xué)習(xí)的全過程,而不是僅僅依賴于一門或者兩門具體的課程。因此,選取了應(yīng)用回歸分析、屬性數(shù)據(jù)分析和統(tǒng)計(jì)學(xué)習(xí)初步三門統(tǒng)計(jì)專業(yè)課程作為試點(diǎn),減少理論推導(dǎo)和證明的課時(shí),增加統(tǒng)計(jì)方法的編程實(shí)現(xiàn),以便學(xué)生能夠更好地理解統(tǒng)計(jì)方法,同時(shí)提高統(tǒng)計(jì)計(jì)算能力。
在這些課程中,一方面充分利用R的開源特性,將一些經(jīng)典統(tǒng)計(jì)方法的R實(shí)現(xiàn)函數(shù)打開,讓學(xué)生理解每一句語句的含義,進(jìn)一步增加對統(tǒng)計(jì)方法的理解,另一方面模仿方法的代碼實(shí)現(xiàn)。例如,在應(yīng)用回歸分析中,回歸模型恰當(dāng)性檢驗(yàn)中關(guān)于隨機(jī)誤差項(xiàng)的方差為常量的檢驗(yàn)方法有Brown-Forsythe檢驗(yàn)和Breusch-Pagan檢驗(yàn)。[5]在這兩種方法原理介紹完畢后,讓學(xué)生在實(shí)驗(yàn)課上將lmtest包下的bptest函數(shù)打開,查看 Breush-Pagan檢驗(yàn)方法的實(shí)現(xiàn)。而Brown-Forsythe檢驗(yàn)方法沒有現(xiàn)成的函數(shù)可以調(diào)用,可通過課后作業(yè)題目自己編寫代碼實(shí)現(xiàn)。這樣既有助于學(xué)生理解統(tǒng)計(jì)方法理論,又能幫助學(xué)生提高代碼實(shí)現(xiàn)能力。
三、教學(xué)措施與教學(xué)成果
為了能夠掌握學(xué)生代碼實(shí)現(xiàn)的程度,作者將R Markdown作為工具介紹給學(xué)生,使得學(xué)生能夠很好地編輯R的實(shí)現(xiàn)代碼以及文本描述,不僅能夠重復(fù)學(xué)生的分析過程,而且如果出現(xiàn)錯(cuò)誤能夠準(zhǔn)確找到錯(cuò)誤的原因。經(jīng)過這樣的訓(xùn)練,學(xué)生不僅更好的理解統(tǒng)計(jì)分析方法,而且提高了書寫代碼的能力。
在不斷提高學(xué)生統(tǒng)計(jì)計(jì)算能力的同時(shí),鼓勵(lì)和引導(dǎo)學(xué)生參加全國大學(xué)生統(tǒng)計(jì)建模競賽、全國大學(xué)生市場調(diào)查與分析大賽等學(xué)科競賽,培養(yǎng)鍛煉自己的編程能力和統(tǒng)計(jì)分析能力。經(jīng)過不斷的建設(shè),學(xué)生在這兩個(gè)比賽中取得了令人滿意的成績。2017年全國大學(xué)生統(tǒng)計(jì)建模比賽獲得的獎(jiǎng)項(xiàng)比前三屆都多。全國大學(xué)生市場調(diào)查與分析大賽,學(xué)生的獲獎(jiǎng)人數(shù)不斷增加。更難能可貴的是,2016年至2019年連續(xù)四年有參賽隊(duì)伍進(jìn)入國賽,這些成果進(jìn)一步展示了專業(yè)建設(shè)的效果。
四、結(jié)論
為了提高統(tǒng)計(jì)學(xué)專業(yè)本科生的計(jì)算能力,本文提出了“點(diǎn)線”結(jié)合、貫穿始終的建設(shè)思路,以適應(yīng)大數(shù)據(jù)時(shí)代對統(tǒng)計(jì)專業(yè)的計(jì)算要求。作者認(rèn)為,統(tǒng)計(jì)學(xué)專業(yè)本科生的計(jì)算能力培養(yǎng)是一個(gè)長期的需要貫徹始終的學(xué)習(xí)過程,不僅需要在統(tǒng)計(jì)計(jì)算課程上提高要求,同時(shí)需要在其他統(tǒng)計(jì)專業(yè)課程教學(xué)過程中將統(tǒng)計(jì)計(jì)算能力培養(yǎng)作為一個(gè)重要內(nèi)容。希望本文的探索與實(shí)踐能夠?yàn)榻y(tǒng)計(jì)學(xué)科乃至其他理科類專業(yè)學(xué)生的能力建設(shè)提供一些可借鑒的經(jīng)驗(yàn)。
參考文獻(xiàn)
[1]高惠璇.統(tǒng)計(jì)計(jì)算[M].北京大學(xué)出版社,1995.
[2]尹居良,王斌會(huì).《數(shù)據(jù)分析與統(tǒng)計(jì)計(jì)算》課程設(shè)計(jì)與教學(xué)探討[J].科教文匯,2008(28):72-73.
[3]武東.“統(tǒng)計(jì)計(jì)算方法”課程教學(xué)改革的探討[J].中國電力教育,2008(23):82-83.
[4]黃性芳.統(tǒng)計(jì)計(jì)算研討課實(shí)踐教學(xué)初探[J].科教導(dǎo)刊,2017, 321(11):84-85.
[5] Kutner M.H.,Nachtsheim,C.J.,Neter,J.,Li W.應(yīng)用線性統(tǒng)計(jì)模型 上冊(英文影印版,原書第5版)[M].機(jī)械工業(yè)出版社,2017.
Abstract: The capability of statistical computing is one of the key areas of modern statistics. Based on years of teaching practice, the author proposes a "point-line" continuous training model with Statistical Computing as the reform focus and other statistical professional courses as an extension, which improves students' hands-on programming ability and has achieved success.
Key words: Statistical Computing; computing ability; teaching reform