python验证多组数据之间有无显著差异

目录
  • 一、方差分析
    • 1.单因素方差分析
  • 二、卡方检验

一、方差分析

1.单因素方差分析

通过箱线图可以人肉看出10组的订单量看起来差不多,为了更科学比较10组的订单量有无显著差异,我们可以利用方差分析

from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
model = ols('orders~C(label)',data=need_data).fit()
anova_table = anova_lm(model, typ = 2)
print(anova_table)

结果显示,p值为0.62大于0.05,不能拒绝原假设,所以这10组的订单量分布没有显著差异。

二、卡方检验

如果是比较多组之间的非连续值指标是否存在差异呢?

如检查上面10组的男女比例是否存在显著差异

计算各组观察频数:

data2=data1.melt(id_vars=['性别'],value_name='观察频数')
data2.head()

计算总体的男女比例:

rate=(data2.groupby(['性别'])['观察频数'].sum()/data2.groupby(['性别'])['观察频数'].sum().sum()).reset_index()
rate.columns=['性别','rate']
rate

计算各组用户总数:

group_sum=data2.groupby(['组别'])['观察频数'].sum().reset_index()
group_sum.columns=['组别','组内用户数']
group_sum

计算卡方值:

import math
data3=pd.merge(data2,group_sum,on=['组别'],how='left')
data3=pd.merge(data3,rate,on=['性别'],how='left')
data3['期望频数']=data3['组内用户数']*data3['rate']
data3['卡方值']=data3.apply(lambda x: math.pow((x.期望频数-x.观察频数),2)/x.期望频数,axis=1)
data3.head()

本案例的自由度为(10-1)*(2-1)=9,选取显著性水平为0.05,查卡方分布表得临界值为18.31
因为7.01<18.31,所以不能拒绝原假设,即各组的性别分布不存在显著性差异。

到此这篇关于python验证多组数据之间有无显著差异的文章就介绍到这了,更多相关python验证多组数据之间有无显著差异内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python 实现以相同规律打乱多组数据

    在深度学习的数据训练过程中,虽然tensorflow和pytorch都会自带打乱数据进行训练的方法,但是当我们自己生成数据,或者某些情况下依然要自己手动打乱顺序. 这里介绍如何以相同规律打乱X,Y两组数据,多组数据相同道理. 第一种:(X,Y是list的格式,不是array) 产生相同的种子(seed)打乱顺序: import random seed =50 x_batch, y_batch,start_num = train_load_order_sharp_5_9(image_list, n

  • python验证多组数据之间有无显著差异

    目录 一.方差分析 1.单因素方差分析 二.卡方检验 一.方差分析 1.单因素方差分析 通过箱线图可以人肉看出10组的订单量看起来差不多,为了更科学比较10组的订单量有无显著差异,我们可以利用方差分析 from statsmodels.formula.api import ols from statsmodels.stats.anova import anova_lm model = ols('orders~C(label)',data=need_data).fit() anova_table

  • 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实现计算两组数据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 Pandas模块实现数据的统计分析的方法

    一.groupby函数 Python中的groupby函数,它主要的作用是进行数据的分组以及分组之后的组内的运算,也可以用来探索各组之间的关系,首先我们导入我们需要用到的模块 import pandas as pd 首先导入我们所需要用到的数据集 customer = pd.read_csv("Churn_Modelling.csv") marketing = pd.read_csv("DirectMarketing.csv") 我们先从一个简单的例子着手来看, c

  • 基于Python实现将列表数据生成折线图

    目录 前言 代码 代码说明 验证效果 前言 本文提供python将列表数据画图的样例代码.主要是给自己的记录,顺便分享一下.主要使用到的库是:pandas.matplotlib. 代码 下面直接发一下样例代码. #!/user/bin/env python # coding=utf-8 """ @project : csdn @author : 剑客阿良_ALiang @file : draw_pic.py @ide : PyCharm @time : 2022-03-23

  • 详解Python中生成随机数据的示例详解

    目录 随机性有多随机 加密安全性 PRNG random 模块 数组 numpy.random 相关数据的生成 random模块与NumPy对照表 CSPRNG 尽可能随机 os.urandom() secrets 最佳保存方式 UUID 工程随机性的比较 在日常工作编程中存在着各种随机事件,同样在编程中生成随机数字的时候也是一样,随机有多随机呢?在涉及信息安全的情况下,它是最重要的问题之一.每当在 Python 中生成随机数据.字符串或数字时,最好至少大致了解这些数据是如何生成的. 用于在 P

  • Python数据分析之Matplotlib数据可视化

    目录 1.前言 2.Matplotlib概念 3.Matplotlib.pyplot基本使用 3.数据展示 3.1如何选择展示方式 3.2绘制折线图 3.3绘制柱状图 3.3.1普通柱状图 3.3.2堆叠柱状图 3.3.3分组柱状图 3.3.4饼图 4.绘制子图 1.前言 数据展示,即数据可视化,是数据分析的第五个步骤,大部分人对图形敏感度高于数字,好的数据展示方式能让人快速发现问题或规律,找到数据背后隐藏的价值. 2.Matplotlib概念 Matplotlib 是 Python 中常用的

  • Python利用Bokeh进行数据可视化的教程分享

    目录 介绍 代码1.散点标记 代码2.单行 代码3.条形图 代码4.箱线图 代码5.直方图 代码6.散点图 介绍 Bokeh是 Python 中的数据可视化库,提供高性能的交互式图表和绘图.Bokeh 输出可以在笔记本.html 和服务器等各种媒体中获得.可以在 Django 和烧瓶应用程序中嵌入散景图. Bokeh 为用户提供了两个可视化界面: bokeh.models:为应用程序开发人员提供高度灵活性的低级接口. bokeh.plotting:用于创建视觉字形的高级界面. 要安装 bokeh

  • python Django批量导入数据

    前言: 这期间有研究了Django网页制作过程中,如何将数据批量导入到数据库中. 这个过程真的是惨不忍睹,犯了很多的低级错误,这会在正文中说到的.再者导入数据用的是py脚本,脚本内容参考至自强学堂--中级教程--数据导入.  注:本文主要介绍自己学习的经验总结,而非教程! 正文:首先说明采用Django中bulk_create()函数来实现数据批量导入功能,为什么会选择它呢? 1 bulk_create()是执行一条SQL存入多条数据,使得导入速度更快; 2 bulk_create()减少了SQ

随机推荐