◎汪 浩 李 瑩 曹遠龍(江西師范大學軟件學院,江西 南昌 330027)
概率論與數理統計課程是IT類相關專業的理論基礎,本文作者根據大數據/人工智能背景下IT類專業人才培養的需求,分析了概率論與數理統計課程教學存在的問題,提出根據IT類專業后續課程的需要,調整概率論與數理統計的教學內容,并將開源統計軟件R嵌入課程教學全過程,以便學生深刻理解、掌握和應用課程知識點的教學改革方法.
本文作者在講授概率論與數理統計課程相關知識點的同時,將R的相關函數嵌入知識點的講解中,利用R進行隨機試驗模擬、概率計算、統計分析等,探討了將開源統計軟件R融入概率論與數理統計課程相關知識點的具體舉措,以便學生能更深刻地理解、掌握和應用課程相關知識點,為后續專業課程的學習奠定堅實的基礎.
本文將按照教材的章節次序,依次討論將R軟件融入課程教學全過程及相關知識點的具體舉措,并用相應的R代碼舉例進行詳細說明.
為使學生對隨機現象和隨機試驗有更直觀的體會,并深刻理解其本質特征,在講解隨機現象、隨機試驗及其頻率的知識點時,教師可利用R代碼模擬投硬幣、投骰子和高爾頓板等隨機試驗,以便加深學生對隨機試驗的頻率波動性,以及隨著試驗次數的增加,其頻率趨于穩定的理解.例如教師可用R代碼sample(1:2,count,replace=TRUE)模擬投硬幣,sample(1∶6,count,replace=TRUE)模擬投骰子.高爾頓板試驗是一個經典的隨機試驗,制作一個高爾頓板的實物并不容易,但R代碼可模擬高爾頓板試驗.plot函數顯示了n個球(代碼中是10000個球)分別從最頂層落下,并計算最終落入最底層編號分別為1,3,……,17,19的球洞的球所占的比例(中間層是釘子的編號).教師通過修改n的值,多次運行此段R代碼.學生通過R代碼顯示的圖形,可以直觀地觀察到:隨著n的增加,落入最底層球洞的球所占比例的穩定性.
#記錄落入最底層球洞的球的個數
BallHole=rep(0,19)
n=10000 #試驗所用球的個數,可根據需要修改
for(i in 1:n)
{
CurrentLevel=10 #記錄球當前所在層次,球初始在第10層
CurrentHole=10 #記錄球當前所在釘子(球洞)的編號,球初始在編號為10的釘子處
while(CurrentLevel>1)
{ #如果球還沒有落到最底層球洞,則下降一層
CurrentLevel=CurrentLevel-1
#球隨機向左或向右落入下一層
CurrentHole=CurrentHole+sample(c(-1,1),1)
}
#球已落入最底層球洞,增加相應球洞的球的個數
BallHole[CurrentHole]=BallHole[CurrentHole]+1
}
plot(BallHole/n,type="h")#顯示落入最底層每個球洞的球所占的比例

W=1 #用1表示白球
R=2 #用2表示紅球
A1=0 #放回抽樣時事件A出現的頻數
B1=0 #放回抽樣時事件B出現的頻數
A2=0 #不放回抽樣時事件A出現的頻數
B2=0 #不放回抽樣時事件B出現的頻數
n=100000 #隨機試驗總次數
x=c(W,W,W,W,R,R)#口袋中放6只球,其中4只白球,2只紅球
#總共做n次隨機試驗
for(i in 1:n){
r=sample(x,2,replace=TRUE)#放回抽樣取2只球
if(r[1]==W &&r[2]==W)A1=A1+1 #放回抽樣時,記錄事件A發生的頻數
if(r[1]==R &&r[2]==R)B1=B1+1 #放回抽樣時,記錄事件B發生的頻數
r=sample(x,2,replace=FALSE)#不放回抽樣取2只球
if(r[1]==W &&r[2]==W)A2=A2+1 #不放回抽樣時,記錄事件A發生的頻數
if(r[1]==R &&r[2]==R)B2=B2+1 #不放回抽樣時,記錄事件B發生的頻數
}
4/9;A1/n #打印放回抽樣時,事件A發生概率和頻率
1/9;B1/n #打印放回抽樣時,事件B發生概率和頻率
2/5;A2/n #打印不放回抽樣時,事件A發生概率和頻率
1/15;B2/n #打印不放回抽樣時,事件B發生概率和頻率
隨機變量及其分布是課程的重點內容,也是學生難以理解的內容之一.教師利用R提供的隨機變量相關函數,可使學生直觀理解隨機變量及其分布律等概念,并簡化復雜的概率計算.具體內容如下:
(1)針對離散型分布律,教師可用R代碼模擬生成m個服從該分布律分布的隨機數,以及模擬生成“多項分布”.
(2)教師利用R代碼sample(c(1,0),n,replace=TRUE,prob=c(p,1-p))可模擬n重伯努利試驗,其中1代表“成功”(其概率為p),0代表“失敗”(其概率為1-p),以加深學生對重復獨立試驗和“二項分布”的理解.
(3)教師可利用R提供的各種概率分布函數、密度函數、分位數函數、隨機數生成函數進行相關的概率計算,或繪制各種概率分布律或概率密度函數隨其參數動態變化的圖形.
(4)除了可用R代碼完成復雜的概率計算外,教師還可用R代碼繪制概率分布律/密度函數的圖形.例如,教師可用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")繪制正態分布N(2,102)的密度函數.教師通過調整分布律或密度函數的參數,可以讓學生觀察理解概率分布及其參數間的相互關系.
(5)此外,教師還可以利用R生成滿足特定概率分布的隨機數.例如教師可用rnorm(100)生成100個服從標準正態分布的隨機數,利用runif(100)生成100個服從(0,1)區間均勻分布的隨機數.
為使學生深刻理解大數定律和依概率收斂的概念,教師可用以下R代碼通過每次循環生成i個服從指數分布(分布可以任意選擇)的隨機數并計算其算術平均,然后繪制散點圖讓學生觀察:隨著i的增加,該算術平均將穩定在該分布的數學期望附近.
avg=vector()
n=10000
#循環n次,每次生成i個服從均值為5的指數分布的隨機數
for(i in 1:n)avg[i]=mean(rexp(i,rate = 1/5))#計算這i個隨機數的算術平均
plot(avg)#顯示這n個平均數
為使學生深刻理解中心極限定理,教師可用以下R代碼通過每次循環生成i個服從指數分布(分布可以任意選擇)的隨機數并對其和進行標準化(參見教材第五章定理2),然后繪制直方圖讓學生觀察:隨著n的增加,隨機數之和經標準化后的分布近似服從標準正態分布.
y=vector()
n=10000
rate=1/5
#循環n次,每次循環生成i個服從均值為5的指數分布的隨機數
#計算隨機數之和,并對該和進行標準化(參見教材第五章定理2)
#計算結果存放在向量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))#在直方圖上顯示密度曲線
教師可進一步將上述代碼中的指數分布隨機數生成函數rexp修改為其他分布(如二項分布)的隨機數生成函數:y[i]=(sum(rbinom(i,1000,0.8))-i*1000*0.8)/sqrt(i*1000*0.8*0.2),也可以得到類似的直方圖.也就是說,無論原始隨機數的分布服從何種分布,隨機變量之和經標準化后的分布(隨著隨機變量個數的增加),近似服從標準正態分布.
最后,借助R代碼,教師可以方便地進行大數定律或中心極限定理所涉及的復雜概率問題的計算.例如針對教材第五章例題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)快速得到計算結果.

描述性統計學是對數據進行進一步深入分析的前提和基礎,因為教師在以往教學過程中沒有引入相應的統計軟件作為支撐,這部分內容在傳統的概率論與數理統計課程中沒有得到充分的重視.引入R軟件后,教師可借助R軟件提供的函數充實擴充這部分內容,培養學生分析數據的初步能力.例如教師可用hist函數繪制樣本的直方圖,density函數獲得樣本的核密度估計,boxplot函數繪制樣本的箱線圖,ecdf函數獲得樣本的經驗分布函數,barplot函數繪制樣本的柱形圖,pie函數繪制樣本的餅圖,plot繪制樣本的散點圖,summary函數獲得樣本的最小值、最大值、均值、25%分位數、50%分位數及75%分位數,cor、table等函數對樣本進行相關性分析,R代碼計算樣本的偏度、峰度等.
對參數進行點估計或區間估計是IT專業機器學習等后續課程的基本內容之一.為了訓練學生對點估計或區間估計的充分理解,教師可根據點估計或置信區間的計算公式,編寫計算點估計值或區間端點值的R代碼.
假設檢驗是理解和掌握方差分析和回歸分析的基礎,為加深學生對假設檢驗理論的理解,教師不僅要具備能利用R軟件提供的t.test函數或軟件中的其他假設檢驗函數直接進行假設檢驗的能力,還要具備能根據檢驗統計量的公式或算法,編寫計算檢驗統計量及其p值的R代碼的能力.
為使學生理解并掌握方差分析的基本原理,熟悉方差分析算法的基本思想,教師可針對單因素方差分析的算法,編寫R代碼進行單因素方差分析(受篇幅所限,代碼省略),針對多因素方差分析和回歸分析.鑒于相應算法有點復雜,教師可直接調用R軟件提供的aov函數和anova函數進行方差分析,調用R軟件提供的lm函數進行回歸分析.
論文按照教材知識點的先后次序,系統討論了將開源統計軟件R融入概率論與數理統計課程知識點教學的具體舉措,并給出了相應的R代碼.實踐效果表明,這些舉措確實能顯著提高學生對課程知識點的理解和掌握,從而為IT專業的后續課程奠定堅實的基礎.