如何制作推论统计分析报告
本文结构:
Part. 1 概念区分
开始之前跟大家区分一下推论统计分析报告当中的一些名词
- 置信区间:误差水平
- 置信水平:区间包含总体平均值的概率,置信水平越大对应的t越大,置信区间越大
- 标准差:统计上用于衡量一组数值中某一数值与其平均值差异程度的指标。标准差越小,表明数据越聚集;标准差越大,表明数据越离散
- 标准误差:用来衡量样本平均值的波动大小
- t值:样本平均值距离总体平均值多少个标准误差
- 大数定律:如果统计数据足够大,那么事物出现的频率就能无限接近他的期望值(平均值)
- 大样本如何计算置信水平:样本大小大于>30 属于正态分布z统计量
a=样本平均值-z*标准误差
b=样本平均值+z*标准误差
- 小样本如何计算置信水平:样本大小大于<30 属于t分布t统计量
自由度 df=n-1
a=样本平均值-t*标准误差
b=样本平均值+t*标准误差
- 单样本检验:检验单个样本的平均值是否等于目标值
- 相关配对检验:检验相关或配对观测之差的平均值是否等于目标值
- 独立双样本检验:检验两个独立样本的平均值之差是否等于目标值
Part. 2 分析思路
Part. 3 单样本检验分析
3.1 案例介绍:
“超级引擎”是一家专门生产汽车引擎的公司,根据政府发布的新排放要求,引擎排放平均值要低于20ppm, (ppm是英文百万分之一的缩写,这里我们只要理解为是按照环保要求汽车尾气中碳氢化合物要低于20ppm)。公司制造出10台引擎供测试使用,每一台的排放水平如下:
15.6 16.2 22.5 20.5 16.4 19.4 16.6 17.9 12.7 13.9
怎么知道,公司生产的引擎是否符合政府规定呢?如果你是这家公司的数据分析师,该怎么办呢?
3.2 案例分析:
3.2.1 导入分析包,查看样本描述统计信息:
首先导入pandas和numpy。pandas是用来创建数组的,numpy是用来处理数组的。
matplotlib.pyplot 是用来画图的。
第一步先求出平均值和标准差。
3.2.2 推论统计分析(假设检验)
(1)提出问题:
零假设H0:公司引擎排放不满足标准,也就是平均值u>=20。这里的20是政府规定新标准的最低可能值。
零假设总是表述为研究没有改变,没有效果,不起作用等,这里就是不满足标准。
备选假设H1:公司引擎排放满足标准,也就是平均值u<20
(2)检验类型:因为这里只有一个样本(汽车排放量),所以我们使用单样本检验
(3)抽样分布类型
根据seaborn的distplot函数可以直接画出直方图和拟合区间,从拟合曲线上可知这是一个t分布(样本量小于30)
(4)检验方向
因为备选假设当中平均值小于20,这里用的是小于号所以我们使用左尾检验
(5)找到证据
1.计算出标准误差
标准误差=样本标准差/(n的开方),因为标准误差是用来衡量样本平均值的波动大小所以要除以n的开方。
2.计算t值
t=(样本平均值-总体平均值)/标准误差
这里t代表样本平均值距离总体平均值多少个标准误差
3.根据t值,自由度计算出概率p值
值得注意的是这里用的是stats.ttest_1samp()函数,计算出来的是双尾检验概率,所以我们要除以2。
(6)判断标准
判断标准(显著水平)使用alpha=5%
显著水平是估计总体参数落在某一区间内,可能犯错误的概率,这个是自己定的。用于之后和p进行比较,表示自己样本平均值的自信程度。
(7)做出结论
左尾判断条件:t < 0 and p_one < 判断标准(显著水平)alpha
右尾判断条件:t > 0 and p_one < 判断标准(显著水平)alpha
如果是小于的话就拒接零假设,那么一假设成立。
(8)置信区间
首先查t表格可以得到95%的置信水平,自由度n-1对应t值是2.262
计算上下限,用置信区间公式可以得出。
(9)效应量
这里注意要和t公式进行区别:t=(sample_mean-pop_mean) / se
t公式除以标准误差,标准误差=样本标准差/(n的开方)
差异指标:d=(sample_mean - pop_mean) / sample_std
差异指标除以样本标准差
相关度度量:r2=t2 / (t2+df),其中r2是指r的平方,t2是t的平方
3.2.3 数据分析报告
Part. 4 相关配对检验分析:斯特鲁普效应
4.1 案例介绍
通过网上的stroop实验做测试人的反应时间
https://faculty.washington.edu/chudler/java/ready.html)。
每名参与者得到两组有颜色的文字,第一组数据是字体内容和字体颜色一致,第二组数据是字体内容和字体颜色不一致。每名参与者对每组文字说出文字的颜色,并分别统计完成每组的时间。此次实验共记录25组数据(样本量),并汇总到Excel表格中。
4.2 案例分析
4.2.1 描述统计分析
描述统计分析结果: 第一组数据:字体内容和字体颜色一致情况下,实验者的平均反应时间是: 13.926875000000003 秒,标准差是 3.5402194271529703 秒 第二组数据:字体内容和字体颜色不一致情况下,实验者的平均反应时间是: 22.35075 秒,标准差是 5.010217727196399 秒 “不一致”情况下所用时间均大于“一致”情况,也就是当字体内容和字体验证不一致时,实验者的平均反应时间变长
4.2.1 推论分析统计(假设检验)
(1)提出问题:这组有两个变量,一个是组变量一个是应变量。
自变量:实验数据的颜色和文字是否相同
因变量:实验者的反应时间
我们要考察的是自变量(字体内容和颜色是否相同)两种情况下对因变量(反应时间)的影响。
假设第一组“一致”的均值为 u1 ,第二组“不一致”的均值为 u2
零假设:人们反应时间不会因为字体内容和字体颜色是否相同而改变(u1=u2)
备选假设:特鲁普效应确实存在。根据特鲁普效应的定义,颜色和文字不同的情况下,人们的完场测试的时间会变长( u1 < u2 )
(2)检验类型:这里有两组数据是相关样本,所以是相关配对检验,特别要注意的是相关配对检验只关注每对相关数据的差值,保证独立性。
(3)抽样分布类型
通过观察上面差值数据集分布图,数据集近似正态分布,所以满足t分布的使用条件,我们可以使用相关样本t检验。
(4)检验方向
备选假设是u1<u2,小于号,所以我们使用左尾检验。
(5)找到证据
(6)判断标准
显著水平使用alpha=5%
(7)做出结论
单尾检验概率小于显著水平所以拒绝零假设
(8)置信区间
基于自由度和置信水平查表得到t值计算出上下限
(9)效应量
注意差值数据集的总体平均值是0
4.2.3 数据分析报告
Part. 5 双独立样本检验(A/B 测试)
5.1 案例介绍
这是两款键盘布局不一样的手机(A版本,B版本),你作为公司的产品经理,想在正式发布产品之前知道,哪个键盘布局对用户体验更好呢? 首先,我们需要设置目标,用来衡量各个版本的优劣,如果是电商网站,目标可以是点击率,注册率,页面停留时间等。 在这个键盘布局案例里,如果一个键盘布局对用户打字时拼错产生的影响较小,那么这个布局是符合用户体验习惯的。所以我们将目标定为用户打字时拼错字产生的影响。 有了目标以后,下一步就是采集数据。在这一部分,用户会随机分配到不同版本中,通过他们的交互行为会被直接检测,并收集起来作为以后分析的重要数据。 我们随机抽取实验者,将实验者分成2组,每组25人,A组使用键盘布局A,B组使用键盘布局B。让他们在30秒内打出标准的20个单词文字消息,然后记录打错字的数量。 我们将数据记录在Excel中,A列是使用键盘布局A打错字的数量,B列是使用键盘布局B打错字的数量。
5.2 案例分析
5.2.1 描述统计分析
我们开展调查研究并计算统计结果时,我们会在报告的第一部分进行描述统计分析,例如平均值和标准差。描述统计量是研究的核心。告诉我们研究中发生的情况,应该始终报告出来。
这里发现数据是object类型,所以要转换。
通过data['A']= data[‘A’].astype('int') 进行转换。
5.2.2 推论统计分析
(1)提出问题:
零假设:A版本和B版本没有差别,也就是A版本平均值=B版本平均值。
零假设总是表述为研究没有改变,没有效果,不起作用等,这里就是不满足标准。
备选假设:A版本和B版本有差别,也就是A版本平均值不等于B版本平均值。
(2)检验类型
这里有两组样本分别是A和B,不同的人,所以是双独立样本检验
(3)抽样分布类型
判断分布类型是因为,t和z分布会影响到之后概率p的计算。
还是推荐seaborn包画出具有拟合线的直方图,发现两个样本都近似正态分布,而且样本量小于30,所以满足t分布的使用条件。
(4)检验方向
备选假设是A版本的平均值不等于B版本的平均值,所以是不等号,使用双尾检验。
(5)搜集证据
之前用spicy的包所以自由度需要自己计算,这里有一个statsmodels统计包。
import statesmodels.stats.weightstats as st
t,ptwo,df=st.ttest_ind(data['A'],data['B'],usevar='unequal')
usevar='unequal',表示A和B的方差不同
(6)判断标准
判断标准(显著水平)使用alpha=5% ,通常显著水平都是用这个值
(7)做出结论
(8)置信区间
这里的标准误差计算和前面两个有区别,因为这里涉及到两个独立量,所以要考虑两组数据的标准差。
se=np.sqrt( np.square(a_std)/a_n + np.square(b_std)/b_n )
(9)效应量
双独立样本要合并标准差
sp=np.sqrt(((a_n-1)*np.square(a_std) + (b_n-1)* np.square(a_std) ) / (a_n+b_n-2))
效应量:d=(a_mean - b_mean) / sp 除以标准差
再次注意和t不一样,t是除以标准误差。
5.2.3 数据分析报告
- 上线必备 | 高性能ES5.X部署配置清单
- 【Go 语言社区】go 学习中遇到一些语法问题
- Elasticsearch全文检索实战小结——复盘我带的第二个项目
- 当12C PDB遇上JDBC (r10笔记第59天)
- 微信公众平台开发获取用户基本信息--转
- Elasticsearch检索分类深入详解—基础篇
- 通过Java程序测试数据库连接信息 (r10笔记第64天)
- GoldenGate安装简记(r10笔记第78天)
- 【Go 语言社区】各种变量的声明
- 【Go 语言社区】Golang 高效字符串拼接
- 实战 | Elasticsearch实现类Google高级检索
- Golang中time包用法--转
- 干货 | Elasticsearch 集群健康值红色终极解决方案
- Go语言interface的value.(type)使用小技巧-转
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android IPC机制Messenger实例详解
- Android开发之文本内容自动朗读功能实现方法
- 深入理解Android中View绘制的三大流程
- Android LocationManager获取经度与纬度等地理信息
- springboot+freemarker+bootstrap快速实现分页功能(含java源码)
- Android 中Volley二次封装并实现网络请求缓存
- Android 实现无网络页面切换的示例代码
- RecyclerVIew实现悬浮吸顶效果
- 小程序地图学习之获取位置 获取经纬度 获取地名 获取地址
- 详解okhttp3 请求头不能为中文的坑
- Android为TextView添加字体库和设置描边的方法
- Android 解决WebView调用loadData()方法显示乱码的问题
- Android 自定义TextView去除paddingTop和paddingBottom
- Android MeasureSpec的理解和源码的解析
- Android 中自定义ContentProvider与ContentObserver的使用简单实例