郭念國
摘要:大數據時代,概率統計課程作為數據科學重要的核心課程之一,如何更好地進行課堂講授成為許多專家學者關注的問題。基于R軟件的sample函數,對概率統計課程中的經典案例擲骰子進行模擬,對虛擬的骰子進行不同次數的投擲,并對投擲結果進行分析,指出統計規律性及其重要性。該模擬過程可以激發學生的學習興趣,培養學生的動手能力,達到理論與實踐相結合的課程教學目標。
關鍵詞:概率統計;骰子;R語言;模擬
隨著經濟、科技的快速發展,人們對信息精確化程度的要求越來越高,大數據的發展成為信息時代發展的必然趨勢。概率統計課程作為數據科學的核心課程之一,引發了許多專家學者對大數據時代的概率統計教育教學獻言建策。比如,趙彥云對我國統計教育進行了回顧與展望,指出運用統計思想和統計方法,讓大數據的價值最大;白雪梅和劉志龍對我國應用統計學專業及統計行業進行分析,指出大數據只有在統計學這門工具屬性學科的幫助下才能發揮其自身的作用,并對國內外統計實踐教育方法進行比較;孟生旺和袁衛對大數據時代美國統計學會發布的統計學本科專業指導性教學綱要的核心內容進行了簡單介紹,對我國統計類本科專業教育存在的問題進行剖析,指出了教學內容要突出數據的重要性,并建議在教學中使用專業的統計軟件R。R語言是免費使用的,而且其源代碼是開放的,這些特點使其已經成為概率統計教學中的標準語言之一,也成為國內外各大專院校開設的統計軟件課程之一。筆者結合多年的概率統計實踐教學經驗,以R語言為工具,通過模擬概率統計常用的擲骰子實驗,以更好地理解統計規律的思想及其重要性。
一、R語言簡介
R語言最初由Auckland大學的Robert Gentleman和Ross Ihake及其他志愿者合作開發,是對S語言統計編程語言的集成。R語言是一種用于統計計算和繪圖的編程語言和環境,是一種交互式編程語言,因為其免費使用且開源,已經成為統計分析和數據分析的全球化通用語言。如果在百度中輸入一個字母R,就會有將近1億個相關條目,而且有豐富的R語言學習資料。R語言還在持續發展中,而且還得到了CRAN(Comprehensive R Archive Network)社區的支持,在這里既有數據科學家也有程序員,他們很愿意為R語言用戶提供幫助。
二、R語言模擬骰子
擲骰子作為研究隨機現象的一個經典實例,受到很多概率統計教材的青睞,在介紹隨機現象及樣本空間的概念時,教師可以通過該實例幫助學生理解隨機現象的隨機性和所有可能結果的已知性。
我們知道,均勻的骰子具有六個面,分別刻有一個點、兩個點直到六個點,而擲一枚骰子出現的點數則是1到6之間的某個正整數,而擲一個骰子所有可能的結果構成的集合為Ω={1,2,3,4,5,6},一般稱“Ω”為擲骰子這個試驗的樣本空間。
基于上述的分析,我們可以構造一個具有這1到6的整數向量,并將其值賦給變量dice,即dice<-c(1,2,3,4,5,6),則dice為一枚虛擬的骰子,具有6個值。那么,如何讓這個虛擬的骰子像真實的骰子一樣,每投擲一次,產生一個點數?下面,我們結合R語言中的sample函數,讓這個虛擬的骰子和真實的骰子一樣,可以產生點數。
三、虛擬骰子的運轉
首先,現實生活中,每次擲骰子的結果,肯定是樣本空間Ω中的一個元素值,且這個值是隨機的,并與其他投擲結果相互獨立。骰子是均勻的,每個值出現的可能性相同,而且可以在相同條件下連續不斷投擲。
由上面的分析,我們可以這樣理解:擲骰子產生的結果實際上是從樣本空間中隨機抽取的結果,每次抽取是相互獨立的,而且每一個值被抽到的可能性是相同的。這其實就是統計中的有放回抽樣。
基于上述的分析,我們可以利用R語言中的sample函數來處理這個問題。運行下列代碼:sample(dice,size=1),就可以得到一個值,這就像擲一次骰子。若連續運行該語句,就好似連續投擲骰子,可以得到不同的點數,而且點數之間是相互獨立的。這樣,我們就完成了虛擬骰子的構建與運行。為更好地理解統計規律,我們有必要解釋一下sample函數。函數sample為“抽樣”函數,dice為抽取的對象,size為抽取的樣本大小,目前我們模擬的是投擲一枚骰子,故本語句中的size=1,即每次抽一個,只產生一個結果。
四、隨機現象的統計規律性
首先,我們將骰子擴展到兩枚,即每次產生兩個結果,可以運行下列語句sample(dice,size=2,replace=TRUE)。該語句的抽取對象沒有變化,但是size=2,表示產生兩個結果,因為投擲的是兩枚骰子;因現實中兩枚骰子產生的結果是相互獨立的,故我們設置參數replace=TRUE。
假如班里有60名學生,在各自執行語句后,相鄰同學比較執行結果是否相同?再運行一次該語句,能不能預測運行結果?多次重復執行語句,結果的平均值能不能知道?帶著這些問題,與現實生活中的投擲骰子相結合,上述問題中的前兩個就很容易回答了。關鍵是第三個問題,運行結果的平均值是否在投擲骰子前就可以預測出來?那么計算運行結果的平均值又有什么意義?
下面分析骰子均值預測和結果均值意義這兩個問題。首先,骰子理論上應該是均勻的,即每一個點出現的概率都是,結合期望的定義,可以計算出期望值,這就是我們預測投擲一枚骰子結果的平均值,兩枚骰子的平均值也應該為3.5,考慮到隨機因素,如果多次投擲,結果平均值應該在3.5左右。
然后,利用我們的虛擬骰子,分別模擬兩枚骰子投擲100次、1000次、10000次的平均值,這對應于抽樣200次、2000次、20000次。為了使得模擬可重復,在運行各語句前,先運行語句set. seed(1234),再運行以下各語句:mean(sample(dice,size=200,replace=TRUE);mean(sample(dice,size=2000,replace=TRUE);mean(sample(dice,size=20000,replace=TRUE)。三條語句運行結果分別為3.355、3.475和3.513,這和我們的期望的3.5相差很小,而且次數越多,與期望的3.5的距離也逐漸縮小,進一步驗證了我們的均值預測結果,這就是擲骰子這個隨機現象的統計規律性。
五、結語
概率論與數理統計作為研究隨機現象統計規律性的一門學科,越來越引起人們的關注,與其他學科的相互交叉的研究成果也越來越多。如何更好地進行課堂教學,使學生更好地理解概率統計的知識和思想,筆者結合擲骰子的實驗,基于R語言進行模擬,對概率統計課程教學進行了舉例。該模擬過程不僅可以提高學生的分析能力、動手能力和實踐能力,而且可以激發學生的學習興趣,更好地達到課堂教學目標。
參考文獻:
[1]趙彥云.加速開拓統計學的應用價值——中國統計教育回顧與展望[J].統計信息論壇,2016,(6).
[2]白雪梅,劉志龍.我國應用統計學專業與統計行業分析[J].中國統計,2015,(5).
[3]孟生旺,袁衛.大數據時代的統計教育[J].統計研究,2015,(4).