统计学原理的本质|有意思的统计学

2023年05月18日 08:09:56 35阅读 0评论

统计学原理的本质(有意思的统计学)(1)

一提到统计学,大家估计首先想到的是一页又一页的公式,求极限,求样本量,求条件概率,求显著性p值等等。一想到这些就头疼,一想到这些就开始头疼脚痛,假装没看见想趁机溜走。还有好多人以“文科生”身份来自保,觉得文科生不了解统计学是理所当然的事情。

但是其实在生活中我们已经无意间在使用一些统计学知识了。

❉ 统计统计,三份统计,七分估计

生活场景一:

“水果摊的老板总是热情的让我们试吃,可试吃的这个是不是足以代表那一箩筐的水果质量?”

这就是统计抽样,样本是否能代表整体的问题。

生活场景二:

“早高峰的时候你着急忙慌到了公交站,却发现公交站人很少,你根据周围环境推测估计是刚刚走了一辆。”

这就是拟合回归,通过一系列变量的观测,预估目标发生概率有多大?

生活场景三:

“工作很认真的你,突然打了个喷嚏,接着就流鼻涕了,你心里暗骂一声,糟糕,劳资这是要感冒的节奏么?”

这就是条件概率,当a发生了,发生b的概率有多大。

统计学原理的本质(有意思的统计学)(2)

❉ 统计世界里,绕得开公式,绕不开原理

今天让我来给你减减负,给你一个正大光明不用背公式的理由~请叫我仙女。

有很多公式、公式推演、公式前提条件大可不必都钻研透,不用懂公式的由来推演,也不需要实际运用公式计算。毕竟人生苦短。(我用python)

对于大部分童鞋来说只需要了解以下三点就足够了:

统计学中有哪些是我应该了解的原理?我在什么场景下可以使用?结果怎么解读?

下面跟着案例一起来学三种简单的统计学原理吧。

❉原理 案例的完美结合❉关联规则之条件概率

关联分析,也叫做购物篮分析,为了分析商品被一起购买的概率,从而可以指导商品陈列和摆放位置。最著名的关联分析例子就是啤酒和尿布了。

在关联分析里,就用到了条件概率计算原理。

“条件概率(conditionalprobability)就是事件a在另外一个事件b已经发生条件下的发生概率。联合概率表示两个事件共同发生的概率。需要注意的是,在这些定义中a与b之间不一定有因果或者时间序列关系。a可能会先于b发生,也可能相反,也可能二者同时发生。a可能会导致b的发生,也可能相反,也可能二者之间根本就没有因果关系。”

了解了条件概率计算原理之后,购物篮分析是需要我们计算商品a和商品b一起(只要在一笔订单里就可以,不区分先后顺序)被购买的概率有多大,并找出p(a b)概率最大的商品组合。

具体实践方法如下:

首先数据准备。我们能拿到某段时间内所有订单,以及订单中所有商品。数据可以准备成一条商品一行,需要订单编号、商品名称两列即可。数据集估计会有100万个订单500万行商品。

然后计算概率。我们挑选出来去重后的商品,假如有1万个,需要用组合的方式,组合出来5000*9999种商品组合方式,然后分别计算这些商品组合共同出现一个订单中的数量,再除以100万,就是每两个商品共同被购买的概率。挑选出来概率最大的组合即可。

但现实情况是,受限于算力、精力,第二步遍历所有的商品组合再去做计算实际上非常难。

因此apriority算法就诞生了,从英文名字上就不难理解,它首先通过商品库里最受“欢迎”的商品开始算起,也就是订单中被购买次数最多的商品。因为如果这个商品被购买最多,那么跟这个商品在一起组合的联合概率也会很大。

基本原理就是这些了,具体实践可以通过r的apriority来计算(r代码后附)。

关联分析结果有三个指标,支持度、置信度、提升度。

“支持度表示订单中含有{a,b}在总订单数里出现的概率,也就是ab出现的联合概率;

置信度是在含有a的订单中,含有b的可能性也就是条件概率;

提升度表示含有a的条件下,同时含有b的概率,与含有b的概率之比。”

这三个指标都是和条件概率相关的,浓浓的geek风。但是理解了之后一点也不难理解(这话好奇怪,自己再理解理解吧)。

#rlibrary(arules)gouwuche <- read.csv("gouwuche.csv",header=true) #默认工作空间为d盘r文件夹gouwuche <- read.transactions(file ="gouwuche.csv",format = "single",sep = ",",cols =c("orderno","goods_name"),rm.duplicates = true)#以算法读的懂的方式读取交易数据gouwuche.apriori <- apriori(data =gouwuche, parameter = new("apparameter",support = 0.03,confidence = 0.4))#上算法inspect(gouwuche.apriori)#所有组合概率结果write(gouwuche.apriori, file = "finalrules.csv",sep = ",", col.names = na) #保存规则集结果,并将其命名为finalrulesgouwuche.eclat<-eclat(data=gouwuche,parameter=new("ecparameter",support=0.05,minlen=2))#频繁规则集inspect(gouwuche.eclat) #查看频繁规则集

关联分析不仅仅能做购物篮分析,还可以做关联点击分析、关联阅读分析等等,有兴趣的同学可以亲自实践,遇到难题可以和我一起讨论。这里是我以前写过的一篇文章,可以做参考:关联规则

奇异值判定之3σ

接下来讲一个不那么绕嘴皮子的案例,轻松一下。看到这里的同学估计都是喜欢跑马拉松的,耐力好。

平时做数据挖掘或者是简单的平均值分析时,绕不开奇异值的干扰。但是怎么识别奇异值呢?这里教大家一个冠冕堂皇的原理:3σ。

小写的σ 是指标准差,是指一组数据波动性大小的指标。如果两组数据平均值相等,但标准差不同,那么可以说标准差大的组数据波动性更大,或许有奇异值在里面。

我们把落入到 [μ-3σ,μ 3σ]区间的观测值作为正常值,把未落入到这个区间的观测值作为异常值。其中μ是指数组的平均值。如果一组数据符合正态分布的话,那么99.73%的数据是正常值,会落入到该区间内。

如果想多剔除一些奇异值的话,可以把加减标准差的倍数减小,±1σ时,会保留68.26%的正常数据,±2σ时,会保留95.46%的正常数据。

excel中,如果要判断b列中的异常值的话,可以在c列写如下公式进行判断:

#excelif(and((b2>average(b:b)-3*stdev.s(b:b)),(b2<average(b:b) 3*stdev.s(b:b))),"normal","abnormal")

abtest之 z 检验

“假设检验是一种基本的统计推断形式,也是数理统计学的一个重要的分支,用来判断样本与样本,样本与总体的差异是由抽样误差引起还是本质差别造成的统计推断方法。假设检验的基本思想是小概率反证法思想。小概率思想是指小概率事件(p<0.01或p<0.05)在一次试验中基本上不会发生。”

常见的假设检验有 t 检验,f 检验,z 检验,这三个假设检验各司其职:

t检验是一组样本的均值是否和一个已知均值的群体有显著差异。如难产儿出生体重和一般婴儿出生体重是否有显著差异。f检验是检验多个样本之间是否有显著差异。z检验是比较两个样本的平均数是否有显著差异。

在abtest中是用z检验来比较a流和b流用户群体均值差异是否显著。如果a流和b流的数据量足够大,测试时间足够长,如果a流用户行为均值持续好于b流,不用做假设检验也是可以的。但是通常情况下,有时候a流好于b流,有时候b流某天的值能超过a流最高值,我们比较难以下结论,这时候可以借助z检验来帮助我们下结论。

z检验可以用python来做,已知a、b流用户均值、标准差和样本量,可以用z检验公式计算。公式神马的都交给python吧~

#pythonclass abtest_u(): ''' 双样本双尾均值检验 ''' def __init__(self, x1: float, x2: float, s1: float, s2: float, n1: int, n2: int, a: float = 0.05, b: float = 0.2): self.x1 = x1 # 对照组均值 self.x2 = x2 # 测试组均值 self.s1 = s1 # 对照组标准差 self.s2 = s2 # 测试组标准差 self.n1 = n1 # 对照组样本量 self.n2 = n2 # 测试组样本量 self.a = a # alpha self.b = b # beta def significance_u(self) -> (int, float, float): ''' 双样本双尾均值显著性检验 ''' z = (self.x1 - self.x2) / pow(self.s1 ** 2 / self.n1 self.s2 ** 2 / self.n2, 1 / 2) if z > 0: p = (1 - norm.cdf(z)) * 2 if p < self.a: # 拒绝原假设,接受备选假设 f = 1 else: # 接受原假设 f = 0 else: p = 2 * norm.cdf(z) if p < self.a: # 拒绝原假设,接受备选假设 f = 1 else: # 接受原假设 f = 0 return f, format(z, '.2f'), format(p, '.2f') def confidence_u(self) -> tuple: ''' 双样本均值置信区间 ''' d = norm.ppf(1 - self.a / 2) * pow(self.s1 ** 2 / self.n1 self.s2 ** 2 / self.n2, 1 / 2) floor = self.x1 - self.x2 - d ceil = self.x1 - self.x2 d return (format(floor, '.2f'), format(ceil, '.2f')) def power_u(self) -> float: ''' 双样本均数功效 ''' z = abs(self.x1 - self.x2) / pow(self.s1 ** 2 / self.n1 self.s2 ** 2 / self.n2, 1 / 2) - norm.ppf( 1 - self.a / 2) b = 1 - norm.cdf(z) power = 1 - b return format(power, '.2%') def main(self): f, z, p = self.significance_u() ci = self.confidence_u() power = self.power_u() print('保留组均值:',self.x1) print('保留组均值:',self.x2) print('是否显著:' ('统计效果显著,拒绝原假设' if f == 1 else '统计效果不显著,不能拒绝原假设')) print('变化度:' format((self.x2 - self.x1) / self.x1, '.2%')) print('置信区间:',ci) print('p-value:',p) print('功效:',power)# 双样本双尾均值检验test1 = abtest_u(x1=0.103946, x2=0.089128, s1=0.399114, s2=0.139108, n1=2723.0, n2=2622.0)test1.main()


嚯,终于捋完了三个简单又常用的统计学原理。

如果你只是个文科生,也可以用一些统计学原理来提升你的分析高度,

如果你只是个产品经理,更可以用统计学原理来作证你的分析结论,

如果你只是运营经理,依然可以用统计学原理精益你的数据结论。

不得不说,统计原理,有你真好!

❉如果你还想学,我们这里还有❉

2019年12月7号,由中央财经大学财政学毕业、企业数据分析培训担当的曾津老师,以文科生学透统计学、概率论、线性代数的经验,以易于理解的方式给大家带来一堂有意思的统计学。地点在北京双井。呱唧呱唧。

如果你还不知道有哪些统计学原理可以吸纳到你的工作中去,这节课将不容错过哟。

如果你知道但是没有使用过这些统计学知识,这节课将帮助你吃透并很好运用它们。

让我们先来围观一下有意思的统计学大纲吧,带你涨姿势:

第一章 组合数学

七位的车牌号能够有多少种组合?

斗地主的时候叫地主抽到王炸的概率是多少?

基于生活和游戏,系统介绍排列组合计数套路,打好概率基础~

第二章 概率论公理

概率、古典概率、条件概率、基于条件概率的“小骗局”、贝叶斯模型

第三章 随机变量及其分布

连续随机变量(基于应用场景讲解)

离散随机变量(基于应用场景讲解)

集中趋势、离中趋势(基于应用场景讲解)

第四章 极限定理

大数定律及中心极限定理的理论及应用(基于图形和实际案例)

第五章 区间估计及假设检验

区间估计、假设检验、abtest、anova

第六章 相关与回归分析统计学

想要参与小班课堂学习的童鞋可以私信我哈,也可以一起探讨工作学术问题。

,

以上就是文章“统计学原理的本质|有意思的统计学”全部内容,如需学习更多电脑、手机使用经验方法教程、软件使用知识请在本站搜索,科普知识网专注于普及各类生活小常识、冷知识、等生活中常用的操作经验;如果本篇文章对您有帮助,请不吝支持本站。

本文链接:http://www.puzhishi.com/jingyan/236245.html

1.免责声明:本文编辑科普网——文章若无特殊说明,均属本站原创,若转载文章请注明网址。

2.本站除部分作品系原创外,其余均来自网络或其它渠道,本站保留其原作者的著作权!如有侵权,请与站长联系!

发表评论

快捷回复: 表情:
评论列表 (暂无评论,35人围观)

还没有评论,来说两句吧...

目录[+]