联系我们 |
 |
合作经济与科技杂志社
地址:石家庄市建设南大街21号
邮编:050011
电话:0311-86049879 |
|
|
经济/产业 |
[提要] 在已经划分组距的状况下,为了处理某些单位的标志值正好等于组上限下限数值的情形,一般把这种特别的数值划归到下限组,这一原则称为“上限不在内原则”,这种统计界的行规是否具备内在的理性?可否可以改进?
关键词:统计分组;上限不在内原则;变量分布
中图分类号:TP31 文献标识码:A
原标题:现代统计分组的处理原则——基于R语言的处理方法
收录日期:2014年4月10日
一、统计界行规
统计界一直存在一个这样的惯例,统计分组时使用上限不在内原则。这一原则存在于各大教科书中,也是国家统计局主导的全国统计资格考试的官方标准答案。
在google搜索引擎中输入“统计学上限不在内”,可以找到169本教材,千篇一律、异口同声地对这个问题,进行全部一致的表述。我们抽取第一本教材,《统计学教程》(清华大学出版社2006年,卢小广主编),在采用重合组限场合,为了贯彻“不重不漏”原则,一般采用“上限不在内”统计惯例的处理方式。所谓上限不在内,完整表述是“下限在内、上限不在内”,凡是其数值恰好等于某组上限的数据,在重合组限场合必然同时等于其以上一组的下限……中国国内所有统计学教科书中众口一词,千篇一律,进行这样的表述。
国家统计局主导的2012年度全国统计专业技术中级资格考试,统计基础理论及相关知识试卷(A卷)第一大题单项选择题的第四小题,在统计分组中,如果某一数值恰好等于某一组的组限时,则采取(B.上限不在内的原则)。
国家统计局作为行业领导,采取这样一种观念,更加重了统计界对这个问题的看法。
仔细分析可以发现,上限不在内原则是基于重叠分组而产生,一个组的上限和另一个组的下限相等时,我们人为裁定:上限不在内。这个数据就要划归到下限组。如果我们在分组的时候,不采取重叠分组,这个问题就简简单单地规避了,也不会有上限不在内的说法了。
统计分组的最基础原则应该是:全面覆盖,不重不漏。以此为出发点,可以避免人为硬性规定“上限不在内”的做法。无论如何分组,只要做到全部覆盖,相邻区间端点不重合,不遗漏,就无需再提“上限不在内”。重叠分组将导致某个值正好等于区间端点,如何将它划入哪个区间的两难境地。这种做法也符合数学上的美:完备性。你分割的区间对所研究问题的值域,构成一种无重复的完备分割。
进一步查看国内的统计学教材,你会发现,居然是用手工检测的方式来保证这种上限不在内的原则得以履行。
二、国际统计软件的处理方法
国际统计学界最流行的软件是R,它是一个有着统计分析功能及强大作图功能的软件,在GNU协议General Public Licence4下免费发行。它是面向对象的统计编程语言,是由AT&T贝尔实验室所创的S语言发展出的一种方言。R是一种为统计计算和图形显示而设计的语言及环境。它是以开源项目形式发展出来的一套国际通用统计科学计算包,http://www.r-project.org/,已成为统计界的标准学术语言。
R采取了一种怎样的处理方式呢?R软件的处理原则是:全面覆盖、不重不漏。由于它没有采用重叠分组,因此无需硬性规定“上限不在内”。
下面,我们给一个具体的实例,用R语言进行编程处理,并给出全部的代码。某班50名学生的统计基础课程期中测试成绩如下,请统计分组后,编制变量数列。
[,1][,2][,3][,4][,5][,6][,7][,8][,9][,10]
[1,] 82 68 86 94 89 63 77 76 84 89
[2,] 75 78 81 82 76 99 80 84 89 88
[3,] 60 83 72 83 85 56 86 68 75 100
[4,] 90 84 75 86 74 77 95 63 80 76
[5,] 100 43 76 81 79 74 96 52 69 86
依照不重叠分组的原则,对于这次考试成绩,我们可以分成5组,前面4组全部是左开右闭,最后一组两侧区间全部封闭。
[0-60) 0<=考试成绩<60
[60-70) 60<=考试成绩<70
[70-80) 70<=考试成绩<80
[80-90) 80<=考试成绩<90
[90-100] 90<=考试成绩<=100
从这里可以看到,只要我们实行不重叠分组,采用全部覆盖,不重不漏的原则,无需再提及“上限不在内”的说法。
下面我们用R语言来实现变量数列的编制。
raw_data='
82 68 86 94 89 63 77 76 84 89
75 78 81 82 76 99 80 84 89 88
60 83 72 83 85 56 86 68 75 100
90 84 75 86 74 77 95 63 80 76
100 43 76 81 79 74 96 52 69 86'
#raw_data=" " 是进行原始数据的赋值.
data<-scan(textConnection(raw_data))
#将原始数据正式读入成一个向量table(cut(data,include.lowest=TRUE,right=FALSE,breaks=c(0,60,70,80,90,100)))
或者,table(cut(data,include.lowest=TRUE,right=TRUE,breaks=c(0,60,70,80,90,100)))
#cut切割函数,breaks=c(0,60,70,80,90,100)是用来分组的区间端点;include.lowest=TRUE表示,包含最小值0,在0这个地方是闭区间;right=FALSE表示,每个小区间的右侧是开放的,不是封闭的。
#table是产生变量数列的语句。
请看下面两句R语言语句运行的不同结果。
语句1:table(cut(data,include.lowest=TRUE,right=FALSE,breaks=c(0,60,70,80,90,100)))
下面是运行结果:
[0,60)[60,70)[70,80)[80,90)[90,100]
3 6 14 20 7
得分在0~60(不包含)的有3人,得分在60~70(不包含)的有6人,
得分在70~80(不包含)的有14人,得分在80~90(不包含)的有20人,
得分在90~100的有7人。
语句2:table(cut(data,include.lowest=TRUE,right=TRUE,breaks=c(0,60,70,80,90,100)))
[0,60] (60,70] (70,80] (80,90](90,100]
4 5 16 19 6
语句1和语句2的唯一区别在于right=TRUE还是right=FALSE,区间的右侧开合状态不同。无论如何分割,都是区间不重叠,全面覆盖,计算机自动完成数值归属的检测,并且无需是用“上限不在内”这个不合时宜的规定。
三、结论
现代统计软件的编制过程中,考虑了统计分组的区间端点处理方式,采用“全面覆盖、不重不漏”的原则,用来分组的区间可以是左开右闭,也可以是左闭右开,只要满足“全面覆盖、不重不漏”的原则,就无需提出“上限不在内”的说法,“全面覆盖、不重不漏”的原则有利于统计分组的计算机软件实现,传统统计教科书的说法需要进行修订,以反映现代统计在IT化过程中的最新成果。
传统的分组方式,由于分组区间的端点允许重叠,导致端点处的取值划归存在一定的人为因素,这种强制划入下限组的做法,缺乏必要的逻辑依据,采用现代统计软件R语言的做法是一种更加符合学术潮流的作为。
(作者单位:海南三亚理工职业学院)
主要参考文献:
[1]卢小广.统计学教程.清华大学业出版社,2006.
[2]R语言R:A Language and Environment for Statistical Computing Vienna,Austria,2013.http://www.R-project.org/
[3]格罗布纳等著.商务统计.机械工业出版社,2008.7. |
|
|
|