◎汪 浩 李 瑩 曹遠(yuǎn)龍(江西師范大學(xué)軟件學(xué)院,江西 南昌 330027)
概率論與數(shù)理統(tǒng)計課程是IT類相關(guān)專業(yè)的理論基礎(chǔ),本文作者根據(jù)大數(shù)據(jù)/人工智能背景下IT類專業(yè)人才培養(yǎng)的需求,分析了概率論與數(shù)理統(tǒng)計課程教學(xué)存在的問題,提出根據(jù)IT類專業(yè)后續(xù)課程的需要,調(diào)整概率論與數(shù)理統(tǒng)計的教學(xué)內(nèi)容,并將開源統(tǒng)計軟件R嵌入課程教學(xué)全過程,以便學(xué)生深刻理解、掌握和應(yīng)用課程知識點的教學(xué)改革方法.
本文作者在講授概率論與數(shù)理統(tǒng)計課程相關(guān)知識點的同時,將R的相關(guān)函數(shù)嵌入知識點的講解中,利用R進(jìn)行隨機(jī)試驗?zāi)M、概率計算、統(tǒng)計分析等,探討了將開源統(tǒng)計軟件R融入概率論與數(shù)理統(tǒng)計課程相關(guān)知識點的具體舉措,以便學(xué)生能更深刻地理解、掌握和應(yīng)用課程相關(guān)知識點,為后續(xù)專業(yè)課程的學(xué)習(xí)奠定堅實的基礎(chǔ).
本文將按照教材的章節(jié)次序,依次討論將R軟件融入課程教學(xué)全過程及相關(guān)知識點的具體舉措,并用相應(yīng)的R代碼舉例進(jìn)行詳細(xì)說明.
為使學(xué)生對隨機(jī)現(xiàn)象和隨機(jī)試驗有更直觀的體會,并深刻理解其本質(zhì)特征,在講解隨機(jī)現(xiàn)象、隨機(jī)試驗及其頻率的知識點時,教師可利用R代碼模擬投硬幣、投骰子和高爾頓板等隨機(jī)試驗,以便加深學(xué)生對隨機(jī)試驗的頻率波動性,以及隨著試驗次數(shù)的增加,其頻率趨于穩(wěn)定的理解.例如教師可用R代碼sample(1:2,count,replace=TRUE)模擬投硬幣,sample(1∶6,count,replace=TRUE)模擬投骰子.高爾頓板試驗是一個經(jīng)典的隨機(jī)試驗,制作一個高爾頓板的實物并不容易,但R代碼可模擬高爾頓板試驗.plot函數(shù)顯示了n個球(代碼中是10000個球)分別從最頂層落下,并計算最終落入最底層編號分別為1,3,……,17,19的球洞的球所占的比例(中間層是釘子的編號).教師通過修改n的值,多次運行此段R代碼.學(xué)生通過R代碼顯示的圖形,可以直觀地觀察到:隨著n的增加,落入最底層球洞的球所占比例的穩(wěn)定性.
#記錄落入最底層球洞的球的個數(shù)
BallHole=rep(0,19)
n=10000 #試驗所用球的個數(shù),可根據(jù)需要修改
for(i in 1:n)
{
CurrentLevel=10 #記錄球當(dāng)前所在層次,球初始在第10層
CurrentHole=10 #記錄球當(dāng)前所在釘子(球洞)的編號,球初始在編號為10的釘子處
while(CurrentLevel>1)
{ #如果球還沒有落到最底層球洞,則下降一層
CurrentLevel=CurrentLevel-1
#球隨機(jī)向左或向右落入下一層
CurrentHole=CurrentHole+sample(c(-1,1),1)
}
#球已落入最底層球洞,增加相應(yīng)球洞的球的個數(shù)
BallHole[CurrentHole]=BallHole[CurrentHole]+1
}
plot(BallHole/n,type="h")#顯示落入最底層每個球洞的球所占的比例
W=1 #用1表示白球
R=2 #用2表示紅球
A1=0 #放回抽樣時事件A出現(xiàn)的頻數(shù)
B1=0 #放回抽樣時事件B出現(xiàn)的頻數(shù)
A2=0 #不放回抽樣時事件A出現(xiàn)的頻數(shù)
B2=0 #不放回抽樣時事件B出現(xiàn)的頻數(shù)
n=100000 #隨機(jī)試驗總次數(shù)
x=c(W,W,W,W,R,R)#口袋中放6只球,其中4只白球,2只紅球
#總共做n次隨機(jī)試驗
for(i in 1:n){
r=sample(x,2,replace=TRUE)#放回抽樣取2只球
if(r[1]==W &&r[2]==W)A1=A1+1 #放回抽樣時,記錄事件A發(fā)生的頻數(shù)
if(r[1]==R &&r[2]==R)B1=B1+1 #放回抽樣時,記錄事件B發(fā)生的頻數(shù)
r=sample(x,2,replace=FALSE)#不放回抽樣取2只球
if(r[1]==W &&r[2]==W)A2=A2+1 #不放回抽樣時,記錄事件A發(fā)生的頻數(shù)
if(r[1]==R &&r[2]==R)B2=B2+1 #不放回抽樣時,記錄事件B發(fā)生的頻數(shù)
}
4/9;A1/n #打印放回抽樣時,事件A發(fā)生概率和頻率
1/9;B1/n #打印放回抽樣時,事件B發(fā)生概率和頻率
2/5;A2/n #打印不放回抽樣時,事件A發(fā)生概率和頻率
1/15;B2/n #打印不放回抽樣時,事件B發(fā)生概率和頻率
隨機(jī)變量及其分布是課程的重點內(nèi)容,也是學(xué)生難以理解的內(nèi)容之一.教師利用R提供的隨機(jī)變量相關(guān)函數(shù),可使學(xué)生直觀理解隨機(jī)變量及其分布律等概念,并簡化復(fù)雜的概率計算.具體內(nèi)容如下:
(1)針對離散型分布律,教師可用R代碼模擬生成m個服從該分布律分布的隨機(jī)數(shù),以及模擬生成“多項分布”.
(2)教師利用R代碼sample(c(1,0),n,replace=TRUE,prob=c(p,1-p))可模擬n重伯努利試驗,其中1代表“成功”(其概率為p),0代表“失敗”(其概率為1-p),以加深學(xué)生對重復(fù)獨立試驗和“二項分布”的理解.
(3)教師可利用R提供的各種概率分布函數(shù)、密度函數(shù)、分位數(shù)函數(shù)、隨機(jī)數(shù)生成函數(shù)進(jìn)行相關(guān)的概率計算,或繪制各種概率分布律或概率密度函數(shù)隨其參數(shù)動態(tài)變化的圖形.
(4)除了可用R代碼完成復(fù)雜的概率計算外,教師還可用R代碼繪制概率分布律/密度函數(shù)的圖形.例如,教師可用R代碼x=dbinom(0:20,20,0.2),plot(x,type="h")繪制二項分布b(20,0.2)的分布律;用R代碼x=seq((2-40),(2+40),length.out=1000),plot(x,dnorm(x,mean=2,sd=10),type="l")繪制正態(tài)分布N(2,102)的密度函數(shù).教師通過調(diào)整分布律或密度函數(shù)的參數(shù),可以讓學(xué)生觀察理解概率分布及其參數(shù)間的相互關(guān)系.
(5)此外,教師還可以利用R生成滿足特定概率分布的隨機(jī)數(shù).例如教師可用rnorm(100)生成100個服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù),利用runif(100)生成100個服從(0,1)區(qū)間均勻分布的隨機(jī)數(shù).
為使學(xué)生深刻理解大數(shù)定律和依概率收斂的概念,教師可用以下R代碼通過每次循環(huán)生成i個服從指數(shù)分布(分布可以任意選擇)的隨機(jī)數(shù)并計算其算術(shù)平均,然后繪制散點圖讓學(xué)生觀察:隨著i的增加,該算術(shù)平均將穩(wěn)定在該分布的數(shù)學(xué)期望附近.
avg=vector()
n=10000
#循環(huán)n次,每次生成i個服從均值為5的指數(shù)分布的隨機(jī)數(shù)
for(i in 1:n)avg[i]=mean(rexp(i,rate = 1/5))#計算這i個隨機(jī)數(shù)的算術(shù)平均
plot(avg)#顯示這n個平均數(shù)
為使學(xué)生深刻理解中心極限定理,教師可用以下R代碼通過每次循環(huán)生成i個服從指數(shù)分布(分布可以任意選擇)的隨機(jī)數(shù)并對其和進(jìn)行標(biāo)準(zhǔn)化(參見教材第五章定理2),然后繪制直方圖讓學(xué)生觀察:隨著n的增加,隨機(jī)數(shù)之和經(jīng)標(biāo)準(zhǔn)化后的分布近似服從標(biāo)準(zhǔn)正態(tài)分布.
y=vector()
n=10000
rate=1/5
#循環(huán)n次,每次循環(huán)生成i個服從均值為5的指數(shù)分布的隨機(jī)數(shù)
#計算隨機(jī)數(shù)之和,并對該和進(jìn)行標(biāo)準(zhǔn)化(參見教材第五章定理2)
#計算結(jié)果存放在向量y中
for(i in 1:n)y[i]=(sum(rexp(i,rate))-i*1/rate)/sqrt(i*1/rate^2)
hist(y,freq=FALSE)#顯示向量y的直方圖
lines(density(y))#在直方圖上顯示密度曲線
教師可進(jìn)一步將上述代碼中的指數(shù)分布隨機(jī)數(shù)生成函數(shù)rexp修改為其他分布(如二項分布)的隨機(jī)數(shù)生成函數(shù):y[i]=(sum(rbinom(i,1000,0.8))-i*1000*0.8)/sqrt(i*1000*0.8*0.2),也可以得到類似的直方圖.也就是說,無論原始隨機(jī)數(shù)的分布服從何種分布,隨機(jī)變量之和經(jīng)標(biāo)準(zhǔn)化后的分布(隨著隨機(jī)變量個數(shù)的增加),近似服從標(biāo)準(zhǔn)正態(tài)分布.
最后,借助R代碼,教師可以方便地進(jìn)行大數(shù)定律或中心極限定理所涉及的復(fù)雜概率問題的計算.例如針對教材第五章例題2,教師可用R代碼sum(dbinom(29500:30500,90000,1/3))或mean=90000*1/3;sd=sqrt(90000*1/3*2/3); pnorm(30500,mean,sd)- pnorm(29500,mean,sd)快速得到計算結(jié)果.
描述性統(tǒng)計學(xué)是對數(shù)據(jù)進(jìn)行進(jìn)一步深入分析的前提和基礎(chǔ),因為教師在以往教學(xué)過程中沒有引入相應(yīng)的統(tǒng)計軟件作為支撐,這部分內(nèi)容在傳統(tǒng)的概率論與數(shù)理統(tǒng)計課程中沒有得到充分的重視.引入R軟件后,教師可借助R軟件提供的函數(shù)充實擴(kuò)充這部分內(nèi)容,培養(yǎng)學(xué)生分析數(shù)據(jù)的初步能力.例如教師可用hist函數(shù)繪制樣本的直方圖,density函數(shù)獲得樣本的核密度估計,boxplot函數(shù)繪制樣本的箱線圖,ecdf函數(shù)獲得樣本的經(jīng)驗分布函數(shù),barplot函數(shù)繪制樣本的柱形圖,pie函數(shù)繪制樣本的餅圖,plot繪制樣本的散點圖,summary函數(shù)獲得樣本的最小值、最大值、均值、25%分位數(shù)、50%分位數(shù)及75%分位數(shù),cor、table等函數(shù)對樣本進(jìn)行相關(guān)性分析,R代碼計算樣本的偏度、峰度等.
對參數(shù)進(jìn)行點估計或區(qū)間估計是IT專業(yè)機(jī)器學(xué)習(xí)等后續(xù)課程的基本內(nèi)容之一.為了訓(xùn)練學(xué)生對點估計或區(qū)間估計的充分理解,教師可根據(jù)點估計或置信區(qū)間的計算公式,編寫計算點估計值或區(qū)間端點值的R代碼.
假設(shè)檢驗是理解和掌握方差分析和回歸分析的基礎(chǔ),為加深學(xué)生對假設(shè)檢驗理論的理解,教師不僅要具備能利用R軟件提供的t.test函數(shù)或軟件中的其他假設(shè)檢驗函數(shù)直接進(jìn)行假設(shè)檢驗的能力,還要具備能根據(jù)檢驗統(tǒng)計量的公式或算法,編寫計算檢驗統(tǒng)計量及其p值的R代碼的能力.
為使學(xué)生理解并掌握方差分析的基本原理,熟悉方差分析算法的基本思想,教師可針對單因素方差分析的算法,編寫R代碼進(jìn)行單因素方差分析(受篇幅所限,代碼省略),針對多因素方差分析和回歸分析.鑒于相應(yīng)算法有點復(fù)雜,教師可直接調(diào)用R軟件提供的aov函數(shù)和anova函數(shù)進(jìn)行方差分析,調(diào)用R軟件提供的lm函數(shù)進(jìn)行回歸分析.
論文按照教材知識點的先后次序,系統(tǒng)討論了將開源統(tǒng)計軟件R融入概率論與數(shù)理統(tǒng)計課程知識點教學(xué)的具體舉措,并給出了相應(yīng)的R代碼.實踐效果表明,這些舉措確實能顯著提高學(xué)生對課程知識點的理解和掌握,從而為IT專業(yè)的后續(xù)課程奠定堅實的基礎(chǔ).