潘 逵,谭 莹
(华南农业大学经济管理学院 广东 广州 510642)
统计学是经济管理类各专业的必修课程,随着大数据时代的来临,统计学作为理论基础模块地位越来越重要。对于高校而言,如何跟紧时代步伐,把握技术的脉搏,调整统计学的课程设计和教学方法,提升统计学课程的教学质量,值得深入讨论。
我院经管类专业教师一般会根据个人特长选择excel、spss、Eviews、stata等软件之一进行教学。这样在同一个学院选用不同的统计软件进行教学不利于统计学和计量经济学课程教研活动的开展。而且传统的软件或者传统的教学方式可能并不适合大数据环境下的统计学教学。统一使用一种流行且实用的统计软件势在必行。
相对于Eviews、Stata等购置成本较高的商业软件,R软件可以免费获取。R是一个面向统计计算和图形可视化的自由GNU软件[1]。它提供了各种各样的统计(线性和非线性模型,经典统计测试,时间序列分析,分类,聚类等)和可视化方法,且高度可扩展,拥有大量可在线安装使用的功能包,统计方法相对于商业软件更新速度更快,还可以编写实现自己的统计方法,有商业软件不具备的灵活性[2]。
国外大学和科研机构有相当一部分选择R语言进行数据的分析处理。在2022年5月编程语言排行榜TIOBE中,R语言排第13位,高于MATLAB,SAS等统计学语言[3]。
基于以上因素,R语言适合融入统计学的教学中。我院也在综合考察国内外同类院校的教学方式和方法后,明确从2022年开始,统计学和计量经济学课程使用R语言进行教学。
Shiny是R中的一个开源web开发框架,集成了bootstrap,ajax等特性。它将R的数据分析处理能力、可视化工作和web技术有机结合,用户不需要精通前端知识,只需要了解基本的网页知识即可以使用Shiny包快速搭建交互式的web应用[4],进行数据可视化工作,展现自己的想法。
相对于其他统计软件运行代码,展示分析结果,Shiny应用程序会自动刷新计算结果,这与电子钟表的实时刷新类似。当用户通过Shiny包提供的滑动条、单选框、文本输入框等输入控件修改输入时,即可以改变函数或模型的输入参数,实时动态地刷新网页,观察不同输入情况下的代码运行结果;甚至可以动态模拟输入输出,展示动画效果。
统计学课程涉及较多概率论和数理统计的知识,对于经济管理类专业的文科背景学生而言,学习相关知识比较吃力[5]。这里基于Shiny的交互性特点,使用R的Shiny包搭建交互式教学平台,实现统计学各个知识点,展示统计学的抽象理论和分析流程,更利于加深学生对知识的理解。
统计学课程主要分为描述性统计和推断性统计两大部分。描述性统计是对总体特征的概括,包括平均值、中位数、分位数、众数、极差和方差等,学生理解起来相对容易。推断性统计是现代统计学的主要研究组成,是通过分析样本的特征来推断总体特征情况的方法,特别是基本的理论和定理比较晦涩,难以理解需要转变传统思维方式来处理问题。我们对统计学各个知识点进行梳理,把难以理解的推断统计的部分内容进行了交互式实现,让学生可以直观感受,加深理解。
交互式平台的具体内容包括抽样分布理论、参数估计、假设检验、简单线性回归四个组成部分。抽样分布理论是推断统计的基础,而抽样分布理论的基石是大数定律和中心极限定理。本文以这两个知识点为例,介绍如何开展统计学课程的交互式教学。
大数定律是研究随机现象统计性规律的一类定理。描述在随机事件的大量重复试验中,呈现出的几乎必然的统计规律。当我们大量重复相同的实验时,其最后的结果稳定在某一数值附近。以伯努利大数定律为例,设k为n重伯努利实验中事件A发生的次数,p为事件A在每次实验中发生的概率,则对任意给定的实数>0,有 成立。即n趋向于无穷大时,事件A在n重伯努利事件中发生的频率k/n无限接近于事件A在一次实验中发生的概率p[6]。通俗地说,这个定律是指在试验前提不变的条件下,随着试验次数的增加,随机事件的频率慢慢趋于稳定,最后稳定在它的概率附近。因为随机事件的概率往往无法准确测量,但我们可以通过大量试验计算得到的频率来估计概率。为了让学生对大数定律有直观印象,在讲解定义和理论的同时通过交互式平台模拟投掷硬币和投掷骰子两个随机试验。投掷硬币试验中,1代表硬币正面,2代表硬币反面。根据古典概型知道正反面出现的概率各为50%,系统对投掷硬币进行概率为50%的随机抽样,通过调节滑动条选择试验次数n,模拟多次投掷硬币并计算不同投掷次数下 “1” 出现的频率,关键代码为:
在交互式仿真平台中我们通过滑动条选择不同的投掷次数,观察试验结果。从图1中(p119)可以看到,曲线为频率的连接线,直线为频率的线性回归拟合线,当选择试验次数为200次时,由于试验次数较少,出现正面的频率波动较大,频率并没有收敛到概率;实验次数少于30次时,出现为正面的频率甚至超过65%,与出现正面概率的差异较大。从图2中可以看到,当选择进行10000次投掷硬币试验时,图形显示投掷次数大于2500次后,出现正面的频率波动就变得较小,在0.5附近波动,投掷次数超过5000次后,频率在0.5上下小幅度波动,可以认为频率开始慢慢收敛,当超过7500次时基本稳定在50%,可以认为出现正面的频率约等于出现正面的概率。此外,点击滑动条右侧的播放按钮可以生成动画,展示随着试验次数增加频率变动的情况。通过上述交互式过程,学生可以直观体验到大数定律的含义;也可以自行操作,选择不同的输入参数,观察大量试验下的必然事件,频率会慢慢收敛到概率。
中心极限定理是讨论相互独立的n个随机变量组合成的统计量正态或近视正态分布的性质[7]。它指出不论随机变量x是连续型还是离散型,也不论x服从何种分布,一般只要样本容量大于30,当抽样次数趋于无穷时,就可认为x均值的抽样分布服从正态分布或近似服从正态分布。与大数定律描述随机变量均值和频率的期望不同,中心极限定理描述的是随机变量均值的抽样分布。本文根据总体分布的不同,进行k次样本容量为n的随机抽样,绘制样本均值的分布直方图和拟合密度曲线,计算抽样分布的均值和方差,检验样本均值的正态性。随机抽样和样本均值计算函数如下:
利用R的ggplot2包绘制直方图和拟合密度曲线:
ggplot(data=df,mapping=aes(x=xbar,y=..density..))+geom_histogram(bins=50,alpha=0.5)+geom_density(color="red")
通过三个输入控件,我们选择不同的参数进行模拟。从图3中可以观察到样本均值分布的直方图,黑色线条为拟合的密度曲线;当选择均值为1的指数分布总体、样本容量为30,抽样100次时,产生100个样本均值数据,对数据分布进行可视化和正态QQ图验证,其分布存在两个波峰并不服从正态分布。当选择均值为1的指数分布总体、样本容量为75、抽样2600次时,详见图4(p121),产生2600个样本均值数据,可以认为数据量较大,这时样本均值的均值为0.9962247,与总体均值1非常接近;从正态QQ图中看出样本均值数据基本服从正态分布;样本均值的分布曲线近似均值为1正态分布。所以可以得出从指数分布总体中抽样,在大样本容量和大量抽样的前提下,样本均值的分布是正态分布。
通过交互式平台可以选择指数分布、均匀分布、标准正态分布、柯西分布、逻辑分布五类不同的总体分布数据。再通过滑动输入条指定不同的样本容量和抽样次数进行试验,观察不同输入组合条件下样本均值的抽样分布是否服从正态分布,得以验证中心极限定理的特性。
传统讲授统计学知识的方式一般是讲定理与举例子,主角是教师。与传统讲授统计量理论教学方式不同,本文探索了一种新的交互式教学方法,利用R的shiny包实现的教学平台在教师讲解理论知识的同时,可以同步进行知识的演示;同时学生根据各自理解的不同进行不同的操作,观察结果的变化,加深对知识的理解。该平台涵盖了推断统计的主要内容,实现师生的互动,为相关知识点的教学提供了新的方法和手段。
由于该平台是用R语言实现的,与统计学课程所采用的教学语言是统一的,教师可以选择公开底层源代码供学生学习。这样学生不但可以获得学习R语言知识的机会,还可以把统计理论知识和R语言融会贯通。此外,R的Shiny包提供的是一种数据可视化和交互性方法,学生学习掌握后可以在项目实践和工作中向第三方展示自己的分析成果。