基于python实现计算两组数据P值

我们在做A/B试验评估的时候需要借助p_value,这篇文章记录如何利用python计算两组数据的显著性。

一、代码

# TTest.py
# -*- coding: utf-8 -*-
'''
# Created on 2020-05-20 20:36
# TTest.py
# @author: huiwenhua
'''

## Import the packages
import numpy as np
from scipy import stats

def get_p_value(arrA, arrB):

  a = np.array(arrA)
  b = np.array(arrB)

  t, p = stats.ttest_ind(a,b)

  return p

if __name__ == "__main__":
  get_p_value([1, 2, 3, 5, ], [6, 7, 8, 9, 10])

二、T检验:两样本T检验

两样本t检验是比较两个样本所代表的两个总体均值是否存在显著差异。除了要求样本来自正态分布,还要求两个样本的总体方差相等也就是“方差齐性”。

检验原假设:样本均值无差异(μ=μ0)

Python命令stats.ttest_ind(data1,data2)

当不确定两总体方差是否相等时,应先利用levene检验检验两总体是否具有方差齐性stats.levene(data1,data2)如果返回结果的p值远大于0.05,那么我们认为两总体具有方差齐性。如果两总体不具有方差齐性,需要加上参数equal_val并设定为False,如下。

stats.ttest_ind(data1,data2,equal_var=False) // TTest中默认是具有方差齐性

三、结果解释

当p值小于某个显著性水平α(比如0.05)时,则认为样本均值存在显著差异,具体的分析要看所选择的是双边假设还是单边假设(又分小于和大于)注意stats.ttest_ind进行双侧检验。

当t值大于0,则有((1-p)* 100)%的把握认为认为第一组数据好与第二组数据。例如p=0.05,那么我们有95%的把握认为第一组数据好于第二组数据。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python计算信息熵实例

    计算信息熵的公式:n是类别数,p(xi)是第i类的概率 假设数据集有m行,即m个样本,每一行最后一列为该样本的标签,计算数据集信息熵的代码如下: from math import log def calcShannonEnt(dataSet): numEntries = len(dataSet) # 样本数 labelCounts = {} # 该数据集每个类别的频数 for featVec in dataSet: # 对每一行样本 currentLabel = featVec[-1] # 该样

  • 使用Python三角函数公式计算三角形的夹角案例

    题目内容: 对于三角形,三边长分别为a, b, c,给定a和b之间的夹角C,则有:.编写程序,使得输入三角形的边a, b, c,可求得夹角C(角度值). 输入格式: 三条边a.b.c的长度值,每个值占一行. 输出格式: 夹角C的值,保留1位小数. 输入样例: 3 4 5 输出样例: 90.0 code: import math a = float(eval(input('请输入a的边长'))) b = float(eval(input('请输入b的边长'))) c = float(eval(in

  • python中如何进行连乘计算

    1.Python中连乘的代码: sum = 1; n = int(input("Please input number n:")) for i in range(1,n+1): sum = sum*i; if i<n: print(i,end='') print("*",end = '') print(i,"=",sum) 2.运行结果 实例扩展: python 连乘 递归 参数可以是多个可迭代对象 from functools impor

  • python怎么提高计算速度

    下面是python中的一个函数计算代码: loops=25000000 from math import* a=range(1,loops) def f(x): return 3*cos(x)+4*sin(x)**2 %timeit r=(f(x) for x in a) 效率: 1000000 loops, best of 3: 552 ns per loop 下面我们就来看一下提高计算速度的方法: 1.使用数组 import numpy as np a = np.arange(1, loop

  • 计算Python Numpy向量之间的欧氏距离实例

    计算Python Numpy向量之间的欧氏距离,已知vec1和vec2是两个Numpy向量,欧氏距离计算如下: import numpy dist = numpy.sqrt(numpy.sum(numpy.square(vec1 - vec2))) 或者直接: dist = numpy.linalg.norm(vec1 - vec2) 补充知识:Python中计算两个数据点之间的欧式距离,一个点到数据集中其他点的距离之和 如下所示: 计算数两个数据点之间的欧式距离 import numpy as

  • python shapely.geometry.polygon任意两个四边形的IOU计算实例

    在目标检测中一个很重要的问题就是NMS及IOU计算,而一般所说的目标检测检测的box是规则矩形框,计算IOU也非常简单,有两种方法: 1. 两个矩形的宽之和减去组合后的矩形的宽就是重叠矩形的宽,同比重叠矩形的高 2. 右下角的minx减去左上角的maxx就是重叠矩形的宽,同比高 然后 IOU = 重叠面积 / (两矩形面积和-重叠面积) 然,不规则四边形就不能通过这种方式来计算,找了好久数学资料,还是没找到答案(鄙人数学渣渣),最后看了白翔老师的textBoxes++论文源码后,知道python

  • 基于python计算并显示日间、星期客流高峰

    1.中国工商银行日间客流高峰提示牌的实现 import math #时间段 time = ['08:00','09:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00'] #时间段客流人数 person = ['572','1236','7634','8799','9876','4562','1038','453'] #输出标题,center返回一个长度为30,两边用单字符(默认为空格)填充的字符串 print('中国工商银行日间

  • 基于python实现计算两组数据P值

    我们在做A/B试验评估的时候需要借助p_value,这篇文章记录如何利用python计算两组数据的显著性. 一.代码 # TTest.py # -*- coding: utf-8 -*- ''' # Created on 2020-05-20 20:36 # TTest.py # @author: huiwenhua ''' ## Import the packages import numpy as np from scipy import stats def get_p_value(arrA

  • python中将两组数据放在一起按照某一固定顺序shuffle的实例

    有的时候需要将两组数据,比如特征和标签放在一起随机打乱, 但是又想记录这种打乱的顺序,那么该怎么做呢?下面是一个很好的方法: b = [1, 2,3, 4, 5,6 , 7,8 ,9] a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h','i'] c = list(zip(a, b)) print(c) random.Random(100).shuffle(c) print(c) a, b = zip(*c) print(a) print(b) 输出: [('

  • python不使用for计算两组、多个矩形两两间的iou方式

    解决问题: 不使用for计算两组.多个矩形两两间的iou 使用numpy广播的方法,在python程序中并不建议使用for语句,python中的for语句耗时较多,如果使用numpy广播的思想将会提速不少. 代码: def calc_iou(bbox1, bbox2): if not isinstance(bbox1, np.ndarray): bbox1 = np.array(bbox1) if not isinstance(bbox2, np.ndarray): bbox2 = np.arr

  • 利用vue对比两组数据差异的可视化组件详解

    目录 需求: 大概要点: 根据刚才的要点可以建立一下组件的props: 组件的基本样式也很简单: 完事了,最后贴一下完整代码: 使用示例: 效果预览: 扩展功能TODO: 总结 如题,朋友有个这样的需求,感觉挺常见,发出来给大家参考一下 需求: 用el-table展示两组数据,有差异的单元格显示红色,新增的显示整行绿色 大概要点: 需要一个数据组,里面包含两组需要对比的数据 需要一个唯一的key,用来确定某一行的数据是否在其他数据中存在(是否是新增 接受一个表格列的配置,用于渲染表格,同时对比差

  • Python实现计算两个时间之间相差天数的方法

    本文实例讲述了Python实现计算两个时间之间相差天数的方法.分享给大家供大家参考,具体如下: #-*- encoding:UTF-8 -*- from datetime import date import time nowtime = date.today() def convertstringtodate(stringtime): "把字符串类型转换为date类型" if stringtime[0:2] == "20": year=stringtime[0:4

  • 基于Python实现一个简易的数据管理系统

    目录 创建mysql数据表 增删改查 启动应用  为了方便的实现记录数据.修改数据没有精力去做一个完整的系统去管理数据.因此,在python的控制台直接实现一个简易的数据管理系统,包括数据的增删改查等等.只需要在控制台层面调用相应的功能调用查询.修改等功能,这里记录一下实现过程. 创建mysql数据表 使用比较熟悉的数据库客户端来进行操作,这里使用的是navicate客户端来创建好相应的数据表. 创建数据库并指定编码字符集. CREATE DATABASE `data_boc` CHARACTE

  • 基于python实现计算且附带进度条代码实例

    用python算圆周率π 1.准备第三方库pip 打开cmd 输入代码:pip install requests ,随后就会成功 因为小编已经安装好了,所以就不把图截出来了 2.利用马青公式求π 3.用python语言编写出求圆周率到任意位的程序如下: from math import * from tqdm import tqdm from time import * total,s,n,t=0.0,1,1.0,1.0 clock() while(fabs(t)>=1e-6): total+=

  • 基于python的selenium两种文件上传操作实现详解

    方法一.input标签上传 如果是input标签,可以直接输入路径,那么可以直接调用send_keys输入路径,这里不做过多赘述,前文有相关操作方法. 方法二.非input标签上传 这种上传方式需要借助第三方工具,主要有以下三种情况: 1.AutoIt 去调用它生成的au3或者exe格式的文件 2.SendKeys第三方库(目前只支持到2.7版本) 网址:https://pypi.python.org/pypi/SendKeys/ 3.Python的pywin32库,通过识别对话框句柄来进行操作

  • 基于Python快速处理PDF表格数据

    我们有下面一张PDF格式存储的表格,现在需要使用Python将它提取出来. 使用Python提取表格数据需要使用pdfplumber模块,打开CMD,安装代码如下: pip install pdfplumber 安装完之后,将需要使用的模块导入 import pdfplumberimport pandas as pd 然后打开PDF文件 # 使用with语句打开pdf文件 with pdfplumber.open("D:\\python\\cai\\yq.pdf") as pdf: #

  • 基于python分享一款地理数据可视化神器keplergl

    目录 1.简介 2.例子 3.添加数据 4.定制图表 5.获取配置 6.导出图表 7.总结 1.简介 keplergl是由Uber开源的一款地理数据可视化工具,通过keplergl我们可以在Jupyter notebook中使用, 可视化效果如下图所示: 安装: 官方文档:https://docs.kepler.gl/docs/keplergl-jupyter 通过pip安装keplergl: pip install keplergl   如果你使用MAC通过PIP安装而且notebook版本在

随机推荐