python统计(二)假设检验
单总体参数的假设检验
单总体均值的检验
DescrStatsW.ztest_mean()
statsmodels.stats.weightstats.DescrStatsW.ztest_mean(value=0, alternative='two-sided') |
|
参数 |
说明 |
value |
假设的均值 |
alternative |
备择假设的形式,可选值:‘two-sided’, ‘larger’, ‘smaller’ |
weightstats.ztest()
statsmodels.stats.weightstats.ztest(x1, x2=None, value=0, alternative='two-sided') |
|
参数 |
说明 |
x1, x2 |
独立样本数据,x2可为None,用于单总体检验 |
value |
假设值 |
alternative |
备择假设的形式,可选值:‘two-sided’, ‘larger’, ‘smaller’ |
例1: 国家要求含水量不超过4%,能否认为该生产厂商该批次的饼干符合要求?(显著水平取0.05)
单侧检验
返回值均为一个元组,第一个元素是计算出的统计量,第二个元素是p值
p=0.67 远大于 0.05,因此没有理由拒绝原假设,即没有理由认为该厂商生产的该批次饼干是不合格的。
DescrStatsW.ttest_mean()
statsmodels.stats.weightstats.DescrStatsW.ttest_mean(value=0, alternative='two-sided') |
|
参数 |
说明 |
value |
假设的均值 |
alternative |
备择假设的形式,可选值:‘two-sided’, ‘larger’, ‘smaller’ |
ttest_1samp()
scipy.stats.ttest_1samp(a, popmean) |
|
参数 |
说明 |
a |
样本数据 |
popmean |
假设均值 |
例2: 某移动通信公司对其用户进行满意度评估,公司认为用户满意度应该超过82分,为此公司进行了小规模的调查,得到25各用户评价满意度得分。试在显著性水平0.05条件下,对该公司的用户满意度进行评估。
单侧检验
p值远大于0.05, 没有充分理由拒绝原假设,即没有理由认为该公司的用户总体评价会大于82分。
注意:re是双侧检验的p值,如果备择假设取“<”符号:当t>=0时,进行判定得单侧p值=1-Pvalue/2; t<0时,p=Pvalue/2; 取“>”符号:当t>=0时,p=Pvalue/2; t<0时,p=1-Pvalue/2
单总体比例的假设检验
binom_test() 二项分布检验
scipy.stats.binom_test(x, n=None, p=0.5, alternative=’two-sided’) |
|
参数 |
说明 |
x |
‘成功’的样本数量 |
n |
样本总数量 |
p |
假设的比例值 |
alternative |
备择假设的形式,可选值:‘two-sided’, ‘greater’, ‘less’ |
proportions_ztest() 正态分布检验
statsmodels.stats.proportion.proportions_ztest(count, nobs, value=None, alternative='two-sided') |
|
参数 |
说明 |
count |
‘成功’的样本数量 |
nobs |
样本总数量 |
value |
假设的比例值 |
alternative |
备择假设的形式,可选值:‘two-sided’, ‘larger’, ‘smaller’ |
*smaller: prop < value; larger: prop > value
例3: 一批产品中随机抽取100个,95个合格,5个不合格,根据相关规定,该种产品合格率应当大于97%,那么在显著性水平a=0.05下,能否认为该批次产品不合格?
p值明显大于0.05,故不能拒绝原假设,可以认为该批次产品合格
两总体参数的假设检验
两个独立样本均值之差的假设检验
ttest_ind() t检验
- scipy.stats库
scipy.stats.ttest_ind(a, b, axis=0, equal_var=True) |
|
参数 |
说明 |
a, b |
两组样本数据,应具有相同的形状(shape) |
axis |
多维数组的数据读取方向 |
equal_var |
是否要求方差齐性 |
- statsmodels模块
statsmodels.stats.weightstats.ttest_ind(x1, x2, alternative='two-sided', usevar='pooled', value=0) |
|
参数 |
说明 |
x1, x2 |
两组样本数据,应具有相同的形状(shape) |
alternative |
备择假设的形式,可选值:‘two-sided’, ‘larger’, ‘smaller’ |
usevar |
是否要求方差齐性: pooled – 要求,unequal – 不要求 |
value |
指定原假设取等号时的检验值 |
例4: 为了检验两种新生产工艺对电池续航能力是否有明显的影响,随机抽取了两种新工艺生产的同批次电池,在同一型号笔记本电脑上的放电时间(小时)。设显著性a=0.01,检验这两种工艺对电池续航时间影响是否有显著差异。
battery.csv
按照工艺分类,提取为两个DataFrame
68为自由度:70-2
大样本也可以采用z检验
独立样本比例之差的假设检验
两个总体比例是否有差异或检验其差异的具体数值; 通常用Z统计量进行检验
proportions_ztest() 正态分布检验
与单总体检验几乎相同,If this is array_like,注意nobs和count长度相同
关于 value:In the case of a two-sample test, the null hypothesis is that prop[0] - prop[1] = value, where prop is the proportion in the two samples. If not provided value = 0 and the null is prop[0] = prop[1]. 即,双总体检验时,value是两个比例之差,若没有给出value则默认为0。
在两个样本检验中,smaller意味着备择假设成立,而larger意味着 ,即:
smaller | |
larger |
例5: 某出版集团为了对旗下两本时尚杂志进行精确的市场定位,分别对两本杂志读者的性别进行了随机的抽样调查,试在显著性水平g=0.01条件下分析两本杂志读者性别的差异性。
假设经过经验判断,订阅了杂志1的女性占比为0.4,订阅了杂志2的女性占比为0.7,检验二者的差异是否超过了0.3。
统计性别为Female的读者对两本杂志的选择情况
统计所有读者对两本杂志的选择情况
p值小于0.05,拒绝原假设,二者的差异超过了0.3,故两本杂志读者的性别有差异
成对样本的假设检验
两个样本不互相独立,但是组成成对样本的不同个体之间的观测值是相对独立的,因此,可以先把两个样本中配对的观测值逐个相减,形成一个由独立观测值组成的样本,然后用单样本检验方法取进行统计推断
ttest_rel()
scipy.stats.ttest_rel(a, b, axis=0) |
|
参数 |
说明 |
a, b |
两组样本数据,应具有相同的形状(shape) |
axis |
多维数组的数据读取方向 |
例6: 为考察某市市民生活的幸福程度,连续多年对固定样本进行调查。随着社会经济的快速发展,幸福度是否会得到提升呢?(设显著性水平a=0.05) 随机抽取了2015,2016两年中200个样本进行分析。
假设幸福度没有得到提升
p远大于0.05,无法拒绝原假设,不能认为市民的幸福度得到显著提升。
或者:假设幸福度得到了提升,,
说明样本均值中看,第二年比第一年的幸福度高,但p值远远大于0.05,不能拒绝原假设,故可以认为幸福度得到了提升。这样与第一种假设得出的结论完全相反,这是因为原假设只能被证伪,而不能被证实!想证实的结论应该设置为备择假设而不是原假设!故给出一些原假设与备择假设选取时尽量遵循的规则:
双侧检验
问: 有无显著变化
验证: 没有显著变化
原假设: 有显著变化,等号放在原假设
单侧检验
问:有无显著提高
验证:有显著提高
原假设:没有显著提高,等号放在原假设
python统计(二)假设检验相关推荐
- python统计元素个数_python怎么统计列表中元素的个数
python统计列表中元素的个数的方法:可以通过count()方法来实现.该方法可以统计字符串中某个字符出现的次数,并返回子字符串在字符串中出现的次数.具体用法如:[count=List.count( ...
- Python统计在一个队列中有多少个正数,多少个负数
如题,使用python统计在一个列表中的数字,有多少个正数,多少个负数. 思路一:使用列表生成式,生成新的列表 思路二:传统判断思维,累加 以下是Demo(代码基于python3.6): #!/usr ...
- 使用PYTHON统计项目代码行数
目录 一 使用PYTHON统计项目代码行数 二 应用实例 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 使用PYTHON统计项目代码行数 遇到一个非常小的需求:统计一个项目里头的各类源代码 ...
- python统计中文字符的个数_python统计中文字符数量的两种方法
方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...
- python统计汉字字数_Python 统计字数的思路详解
问题描述: 用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词.返回值是一个元组列表,包含出现次数最高的 n 个单词及其次 ...
- [转载] 用python统计中文字符数_使用Python统计字符串中各种字符的个数
参考链接: Python中遍历字符串的单词 Python 统计字符串中各种字符出现的次数 一.提出问题 随机输入一段字符串,包括数字,英文,空格,其他字符,统计这些字符在其中出现的次数 二.难点提示思 ...
- Python统计微信消费!生成微信消费账单!真强大!
First of all 通过观察,我发现我的微信消费类型大约有3种: 1.通过扫描商家二维码支付 2.直接进行商户消费 3.发红包给舍友让他们帮我带饭 接下来,我要统计具体的消费明细 一.准备工作 ...
- 怎么用python统计字数_Python统计字数的思路详解
这篇文章主要介绍了Python 统计字数的思路详解,文中还给大家提供了不借助第三方模块的解决方法,感兴趣的朋友一起看看吧 问题描述: 用 Python 实现函数 count_words(),该函数输入 ...
- python统计汉字个数是_使用 Python 统计中文字符的数量
使用 Python 统计中文字符的数量 方法一,排除法 假设只有中英文字符: import string def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数' ...
- python统计汉字个数是_python统计中文字符数量的两种方法
方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...
最新文章
- 跨时钟域设置set_false_path的问题
- linux基本命令iscsiadm,tgtadm和iscsiadm命令的用法
- Eclipse 每行 79 字符限制的提示线
- pythonのgevent同步异步区别
- .net 常见异常及其翻译
- 微表情如何用计算机分析计算,面部微表情识别若干关键技术之计算机研究
- 多节点 devstack 部署
- flask+jsonp跨域前后台交互(接口初体验)
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_3 Mybatis的CRUD-修改和删除操作
- X509Certificate类解析证书的差异,算是.Net的BUG吗?
- 【汇率预测】基于matlab模拟退火算法优化BP神经网络汇率预测【含Matlab源码 689期】
- 8 个顶级网络攻击地图以及如何使用它们
- Android 平台下的即时通讯
- windows下录制音频
- 湖南大学ACM——10015.self-numbers
- ActiveMQ详解
- 谷歌地图创建自定义位置_如何使用Google Home为任何命令创建自定义快捷方式
- 使用全局阈值进行灰度图像二值化
- seo文章批量更新-SEO文章自动批量生成
- matlab 文件输出到text文件总结