首页 期刊简介 最新目录 过往期刊 在线投稿 欢迎订阅 访客留言 联系我们
新版网站改版了,欢迎提出建议。
访客留言
邮箱:
留言:
  
联系我们

合作经济与科技杂志社

地址:石家庄市建设南大街21号

邮编:050011

电话:0311-86049879
友情链接
·中国知网 ·万方数据
·北京超星 ·重庆维普
经济/产业

信息类别

首页/本刊文章/第492期/信息/科技/正文

发布时间

2014/7/2

作者

□文/彭 滔

浏览次数

1116 次

基于R语言的现代统计分组处理原则
  [提要] 在已经划分组距的状况下,为了处理某些单位的标志值正好等于组上限下限数值的情形,一般把这种特别的数值划归到下限组,这一原则称为“上限不在内原则”,这种统计界的行规是否具备内在的理性?可否可以改进?
  关键词:统计分组;上限不在内原则;变量分布
  中图分类号: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.
 
版权所有:合作经济与科技杂志社 备案号:冀ICP备12020543号
您是本站第 31449667 位访客