宋豪豪,賈俊梅,范洪雁,洪志敏
(內(nèi)蒙古工業(yè)大學(xué) 理學(xué)院,內(nèi)蒙古 呼和浩特 010051)
近年來,高校把學(xué)生的理論知識(shí)學(xué)習(xí)與實(shí)踐結(jié)合起來,普遍應(yīng)用了各種數(shù)理統(tǒng)計(jì)軟件。相對(duì)于Python等語言,R屬于GNU系統(tǒng)的一個(gè)自由、免費(fèi)、源代碼開放的軟件,是用于統(tǒng)計(jì)計(jì)算和統(tǒng)計(jì)制圖的優(yōu)秀工具。
目前大多數(shù)學(xué)校使用Spss、Excel等數(shù)據(jù)處理軟件,不僅功能簡(jiǎn)單[1],處理的數(shù)據(jù)結(jié)構(gòu)也單一,而Python、C++等語言,大多是商業(yè)軟件,相對(duì)于有些專業(yè)的師生,對(duì)數(shù)理統(tǒng)計(jì)計(jì)算知識(shí)了解并不全面,對(duì)日常數(shù)據(jù)處理與軟件工具的應(yīng)用也不夠了解,以至于R軟件在許多高校并未得到普及應(yīng)用。
R語言作為一種統(tǒng)計(jì)分析軟件,集統(tǒng)計(jì)分析與圖形顯示于一體,可以運(yùn)行于UNIX、Windows和Macintosh的操作系統(tǒng)上[2],相比于其他統(tǒng)計(jì)分析軟件,還具有以下特點(diǎn)。
R語言是完全免費(fèi)、開放源代碼的[3],可以在它的網(wǎng)站及其鏡像中下載任何有關(guān)的安裝程序、源代碼、程序包及其文檔資料。標(biāo)準(zhǔn)的安裝文件自身就帶有許多模塊和內(nèi)嵌統(tǒng)計(jì)函數(shù),安裝好后可以直接實(shí)現(xiàn)許多常用的統(tǒng)計(jì)功能。
它是一個(gè)開放的統(tǒng)計(jì)編程環(huán)境,具有易于理解的語法,很容易學(xué)習(xí)和掌握,比SPSS、SAS等普通統(tǒng)計(jì)軟件更新得更快。大多數(shù)現(xiàn)代統(tǒng)計(jì)方法和技術(shù)都可以直接在R中使用。
統(tǒng)計(jì)分析涉及數(shù)據(jù)的收集、分類、可視化和定量分析。在數(shù)據(jù)收集方面,R語言可以從許多不同類型的數(shù)據(jù)源中獲取數(shù)據(jù),包括文本文件、統(tǒng)計(jì)軟件、數(shù)據(jù)管理系統(tǒng),甚至網(wǎng)站和社交媒體,并將其轉(zhuǎn)化為可用的形式[4]。在數(shù)據(jù)處理方面,R語言有相應(yīng)的函數(shù)工具和包庫,可以用來處理和排序數(shù)據(jù),使其更容易使用,包括dplyr、data.table等。在數(shù)據(jù)可視化方面,用戶可以通過調(diào)用相應(yīng)的繪圖函數(shù)和設(shè)置相應(yīng)的繪圖參數(shù)來生成各種圖形結(jié)果。R語言的ggplot2與plot函數(shù)擴(kuò)展提供了各種繪圖組件,包括參考線、回歸曲線等繪圖函數(shù)。對(duì)于定量數(shù)據(jù)分析,R語言涵蓋了廣泛的數(shù)據(jù)分析技術(shù)[3],如描述性統(tǒng)計(jì)分析、線性和非線性回歸建模、時(shí)間序列分析、相關(guān)性分析、神經(jīng)網(wǎng)絡(luò)分析等。
本研究選擇2021—2022年內(nèi)蒙古某高校概率論與數(shù)理統(tǒng)計(jì)課程的期末考試成績(jī)作為數(shù)據(jù)源進(jìn)行統(tǒng)計(jì)分析。選取4個(gè)不同專業(yè)的學(xué)生成績(jī)進(jìn)行分析比較。收集到的數(shù)據(jù)主要包括考試卷面第一、第二部分成績(jī),課堂表現(xiàn)第一、第二部分成績(jī),如表1所示。
表1 部分學(xué)生成績(jī) (單位:分)
R語言支持讀取xlsx、csv、txt等格式文件,本文將統(tǒng)計(jì)得到的4個(gè)專業(yè)級(jí)期末成績(jī)保存為xlsx文件,利用read_xlsx()函數(shù)進(jìn)行讀取數(shù)據(jù)。為方便計(jì)算,利用as.data.frame()將成績(jī)轉(zhuǎn)化為數(shù)據(jù)框,具體代碼如下:
>library(readxl);data[i]<-read_xlsx("成績(jī).xlsx",sheet=i)##i=c(1,2,3,4)
>class1<-as.data.frame(data1);class2<-as.data.frame(data2)
>class3<-as.data.frame(data3);class4<-as.data.frame(data4)
學(xué)生考試成績(jī)通常由期末考試成績(jī)分?jǐn)?shù)與課堂表現(xiàn)成績(jī)分?jǐn)?shù)按照一定比例計(jì)算得到最終成績(jī)。
首先,計(jì)算4個(gè)專業(yè)期末成績(jī)與課堂成績(jī)總分,期末成績(jī)=試卷第一部分成績(jī)+第二部分成績(jī);課堂成績(jī)=第一部分課堂成績(jī)+第二部分課堂成績(jī)。將各專業(yè)總分成績(jī)利用cbind()函數(shù)進(jìn)行合并得到,方便計(jì)算分析。
>Finalgrades1<-class1[,2]+class1[,4]; Classroomgrades1<-class1[,3]+class1[,5]
接著本文利用“期末成績(jī)×0.7+課堂成績(jī)×0.3”計(jì)算學(xué)生最終成績(jī)。
>grades1<-Finalgrades1×0.7+Classroomgrades1×0.3
其他3個(gè)專業(yè)學(xué)生成績(jī)分別重復(fù)以上代碼,得到4個(gè)專業(yè)學(xué)生最終成績(jī)grades1、grades2、grades3、grades4。為了后續(xù)方便計(jì)算,利用cbind()函數(shù)將各專業(yè)學(xué)生具體成績(jī)合并到一個(gè)數(shù)據(jù)框內(nèi)。代碼如下:
>Data[i]<-cbind(class[i],Finalgrades[i],Classroomgrades[i],grades[i])##(i=1,2,3,4)
其次,對(duì)各專業(yè)學(xué)生成績(jī)進(jìn)行描述性統(tǒng)計(jì)與正態(tài)性檢驗(yàn),描述出成績(jī)分布狀況。
最后,計(jì)算各班級(jí)學(xué)生成績(jī)達(dá)標(biāo)率,有助于了解學(xué)生學(xué)習(xí)情況,提高學(xué)校教學(xué)水平。利用colmean()函數(shù)計(jì)算學(xué)生期末成績(jī)與課堂成績(jī)各部分的均值,本文成績(jī)分配為第一部分70分,第二部分30分,達(dá)標(biāo)率以7∶3的權(quán)重進(jìn)行計(jì)算。
利用R語言summary()函數(shù)以及psych函數(shù)包里面的describe.by()函數(shù)計(jì)算各專業(yè)學(xué)生成績(jī)的特征計(jì)算,可以直觀地判斷出學(xué)生成績(jī)的大致分布狀態(tài)。代碼與結(jié)果如下。
>library(psych)
>summary(grades);describe.by(grades)
代入grades1、grades2、grades3、grades4,得到4個(gè)專業(yè)學(xué)生成績(jī)的統(tǒng)計(jì)值。
如表2所示,可得到各專業(yè)學(xué)生成績(jī)的最大值、最小值、平均值、偏度、峰度以及分位數(shù),分析結(jié)果可以看出,應(yīng)用物理專業(yè)的學(xué)生該門課程的平均分最高,交通運(yùn)輸、金融、力學(xué)、應(yīng)用物理4個(gè)專業(yè)的學(xué)生偏度均小于0,呈現(xiàn)出左偏分布。
表2 生成各專業(yè)成績(jī)統(tǒng)計(jì)量
利用R語言可以進(jìn)行數(shù)據(jù)可視化操作,更直觀、清楚地觀察數(shù)據(jù)分布狀況。接著利用R語言hist()、density()、lines()畫出4個(gè)專業(yè)的學(xué)生成績(jī)的直方圖與核密度圖[5]。
>hist(grades,freq=F,main="學(xué)生期末成績(jī)",
xlab="成績(jī)",ylab="density",xlim=c(50,100),col="grey")
>lines(density(grades),col="red",lwd=1.5)
代入grades1、grades2、grades3、grades4重復(fù)以上代碼可得到交通、金融、力學(xué)、應(yīng)物專業(yè)學(xué)生成績(jī)的直方圖,如圖1所示。
圖1 部分成績(jī)直方圖
直方圖中橫坐標(biāo)為成績(jī)段,縱坐標(biāo)為密度值,可以直觀地看出,交通運(yùn)輸、金融、力學(xué)專業(yè)除個(gè)別學(xué)生,大部分均已及格,應(yīng)物專業(yè)學(xué)生全部及格,并且很多學(xué)生的成績(jī)集中在95分以上,90分以上偏多,交通運(yùn)輸、金融、力學(xué)專業(yè)學(xué)生整體成績(jī)比應(yīng)物專業(yè)學(xué)生低,并且4個(gè)專業(yè)學(xué)生的成績(jī)均不服從正態(tài)分布。
利用R的ggplot2函數(shù)包的boxplot()函數(shù)畫出各專業(yè)學(xué)生成績(jī)的箱線圖,如圖2所示。
圖2 部分專業(yè)箱線圖
>library(ggplot2);boxplot(grades,main="專業(yè)名稱")
由箱線圖可以更加直觀地看出不同專業(yè)學(xué)生的成績(jī)分布狀況,長(zhǎng)方形外部的上下兩條橫線分別表示該班級(jí)的最高分和最低分,長(zhǎng)方形的上下邊框分別表示該班級(jí)成績(jī)的1/4分位數(shù)和3/4分位數(shù),長(zhǎng)方形內(nèi)部黑橫線表示該班級(jí)成績(jī)的中位數(shù)。通過R語言制圖,解析得出成績(jī)的總體分布情況,更利于全面掌握教學(xué)情況。
R語言不僅可以對(duì)數(shù)據(jù)進(jìn)行描述性統(tǒng)計(jì)分析,還可以進(jìn)行數(shù)據(jù)的分布檢驗(yàn),在統(tǒng)計(jì)教學(xué)成果時(shí),檢測(cè)重點(diǎn)之一就是需要辨識(shí)成績(jī)是否符合正態(tài)分布。
優(yōu)秀率、不及格率這些與分布的尾部和偏態(tài)密切相關(guān),很多學(xué)校對(duì)學(xué)生的成績(jī)要求服從正態(tài)分布,成績(jī)要正態(tài)分布,試卷則不可能簡(jiǎn)單,也不會(huì)太難,這就要求老師在平時(shí)的教學(xué)中基礎(chǔ)與拔高兼顧,無形中有種制衡作用。
3.3.1 Q-Q圖
Q-Q圖可以輔助鑒別樣本的構(gòu)圖是否符合正態(tài)分布。利用R語言qqnorm()、qqline()函數(shù)對(duì)4個(gè)專業(yè)學(xué)生成績(jī)進(jìn)行檢驗(yàn)。部分專業(yè)Q-Q圖如圖3所示。
圖3 部分專業(yè)Q-Q圖
由Q-Q圖可以看出,成績(jī)分布均偏離正態(tài)分布線,交通運(yùn)輸、金融、力學(xué)、應(yīng)物4個(gè)專業(yè)學(xué)生的概率論與數(shù)理統(tǒng)計(jì)課程的成績(jī)均不服從正態(tài)分布,與上述描述性統(tǒng)計(jì)結(jié)果具有左偏結(jié)果相符。
3.3.2 W檢驗(yàn)
利用shapiro.test()函數(shù)可以對(duì)小樣本數(shù)據(jù)進(jìn)行正態(tài)性檢驗(yàn),即W檢驗(yàn)。代碼如下:
>shapiro.test(grades)
結(jié)果顯示,4個(gè)專業(yè)學(xué)生成績(jī)檢驗(yàn)P值均小于0.05,表明不服從正態(tài)分布假設(shè),與圖示結(jié)果一致。
利用代碼步驟計(jì)算得到各專業(yè)學(xué)生達(dá)標(biāo)率,結(jié)果如下:
>mean1<-colMeans(class1[,-1])
>pa1<-(mean1[1]*0.7+mean1[2]*0.3)/70;pa2<-(mean1[3]*0.7+mean1[4]*0.3)/30
同理得到其余3個(gè)班級(jí)各部分達(dá)標(biāo)率,結(jié)果如表3所示。
表3 各專業(yè)學(xué)生成績(jī)達(dá)標(biāo)率
由表3結(jié)果得到,應(yīng)用物理專業(yè)學(xué)生各部分成績(jī)達(dá)標(biāo)率均為最高,反映應(yīng)物專業(yè)大部分學(xué)生對(duì)概率論與數(shù)理統(tǒng)計(jì)課程的學(xué)習(xí)情況較好,而力學(xué)專業(yè)學(xué)生成績(jī)達(dá)標(biāo)率較其他3個(gè)專業(yè)低,反映了提高工科與理科課程相結(jié)合的重要性。
本文利用R軟件對(duì)內(nèi)蒙古某高校4個(gè)不同專業(yè)學(xué)生的概率論與數(shù)理統(tǒng)計(jì)課程的成績(jī)進(jìn)行了計(jì)算分析比較,結(jié)果表明該校應(yīng)加強(qiáng)工科與理科教學(xué)內(nèi)容的結(jié)合。R語言的應(yīng)用可簡(jiǎn)化日常對(duì)數(shù)據(jù)的統(tǒng)計(jì)分析處理,可進(jìn)行視圖操作、函數(shù)檢驗(yàn)等統(tǒng)計(jì)需求,便于發(fā)現(xiàn)隱藏的數(shù)量關(guān)系。在實(shí)際應(yīng)用中,采用R語言統(tǒng)計(jì)分析學(xué)生成績(jī)是簡(jiǎn)便的、內(nèi)容充分的,對(duì)未來教學(xué)的發(fā)展起到一定的指導(dǎo)作用[5]。