如何计算一个数据序列的中位数

4651
1

1505121235 数据老手Lv5

发表于2019-12-4 11:59

楼主
简介:中位数(Median)又称中值,统计学中的专有名词,是按顺序排列的一组数据中居于中间位置的数,即在这组数据中,有一半的数据比他大,有一半的数据比他小。(注意:中位数和众数不同,众数指最多的数,众数有时不止一个,而中位数只能有一个。)

计算中位数在这里介绍两种方法:

计算方法一
  • math.median(X)
参数说明:
  • X: 浮点型数组,表示需要计算中位数的数据序列。
返回值说明:
  • 返回数据序列的中位数,注意X中值为NaN的元素将会参与计算,由于NaN参与计算中位数时的排序并排在所有正常数值的后面,所以它将影响计算结果。

计算方法二
系统管理-》系统设置-》分析与展现-》
公式模板-》自定义函数

函数体定义:if(arlen(i)%2=0,(i[asint(arlen(i)/2)]+i[asint(arlen(i)/2-1)])/2,i[asint(arlen(i)/2))

PS:
ASINT(*):将某个值转换成整型
举例:ASINT(146.7)=146
ARLEN(R)返回数组中项目的个数
举例:ARLEN(a1:a5,b1,b3)=7

应用举例1:求不同机构的住院人数的中位数
报表设计:


结果展现:



高级进阶:报表期作为浮动维,希望求出浮动出的每个日期前10个月和后10个月和本日期的汽车销售价格的中位数
报表设计:


中位数合集表达式:GRID1.B2$$.select(@.leftcell.value<=od(self.leftcell(2),'m+10') and @.leftcell>=od(self.leftcell(2),'m-10'))查询汽车销售价格前10个月和后10个月以及本月的集合
中位数表达式:math.median(GRID1.B2$$.select(@.leftcell.value<=od(self.leftcell(3),'m+10') and @.leftcell>=od(self.leftcell(3),'m-10')))
PS:数组对象可参考http://bbs.esensoft.com/thread-133624-1-1.html


结果展现:



中位数是通过排序得到的,它不受最大、最小两个极端数值的影响。部分数据的变动对中位数没有影响,当一组数据中的个别数据变动较大时,在统计分析领域常用它来描述这组数据的集中趋势,所以计算中位数的新技能快快get起来吧!!!




















最近看过此主题的会员

chenliwei

esen_4Y3L5ADO80

eABI

esen_4ZMUBJKS7I

西瓜小姐

sddfvcww

前进者

esen_4OVUJ6KHN6

along0219

xy6228476

1个回答

只看楼主

小亿 管理员

发表于2019-12-5 09:54

只看该作者

取消 关注该作者的回复

沙发

非常棒的分享,替薏米们感谢你的分享哟!

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号