卡方检验 两分类实现

统计学基础(四)—卡方检验怎么用? 配对卡方检验: 目的:研究同一群人在实验前测和实验后测是否发生了变化 前提: 1、观测变量为二分类变量,且两类之间互斥 2、分组变量包含2个分类,且相关。(当分组变量有3个及以上分类时,可使用Cochran’s Q检验) 操作: 结果分析: 首先,从正对角线得出的结果是,25名研究对象中有8名干预前喝酒,干预后还继续进行喝酒的人;6名干预前不喝酒干预后还是不喝酒的的人... 阅读详情
import jieba
import numpy as np
import xlrd
import re
import json




# 数据加载
# jieba词库设置




#读取文本,读取其中1个
#统计包含a的单词和不包含a的单词
#统计主题
def chisquare(datasetTrue, datasetFlase):
    dicta ={}
    dictb ={}
    for i in datasetTrue:
        for word in i:
            if word not in dicta:
                dicta[word] = 0
            else:
                dicta[word] = dicta[word] + 1
    for i in datasetFlase:
        if word in i:
            if word not in dictb:
                dictb[word] = 0
            else:
                dictb[word] = dictb[word] + 1


    keyset = set()
    for i in dicta:
        keyset.add(i)
    for i in dictb:
        keyset.add(i)


    dictres = {}
    for w in keyset:
        if w not in dicta:
            a = 0
        else:
            a = dicta[w]
        if w not in dictb:
            b = 0
        else:
            b = dictb[w]


        c = len(datasetTrue)-a
        d = len(datasetFlase)-b
        #print(a,b,c,d)
        if (a>0 or b>0):
            chi = (a * d - b * c) ** 2 / ((a + c) * (a + b) * (b + d) * (c + d))
            print(w,chi)
            dictres[w] = chi
    return dictres
    pass




def data_gen():
    xlsfile = r'E:\work\chisquare\file\test0111.xlsx'
    book = xlrd.open_workbook(xlsfile)  # 得到Excel文件的book对象
    sheet0 = book.sheet_by_index(0)  # 通过sheet索引获得sheet对象
    nrows = sheet0.nrows
    jiahuoTrue = []
    jiahuoFlase = []
    for rownum in range(1, nrows):
        rowvalue = sheet0.cell_value(rownum, 2)
        rowflag = sheet0.cell_value(rownum, 1)
        if (rowflag == 1):
            jiahuoTrue.append(rowvalue)
        elif (rowflag == 0):
            jiahuoFlase.append(rowvalue)
    return jiahuoTrue,jiahuoFlase


def getwordlist(datasetTrue,datasetFlase):
    s = set()
    for i in datasetTrue:
        for w in i:
            s.add(w)
    for i in datasetFlase:
        for w in i:
            s.add(w)
    return s




# 运行评分过程
def run():
    jt,jf =data_gen()
    datasetTrue = [list(set(jieba.lcut(d))) for d in jt]
    datasetFlase = [list(set(jieba.lcut(d))) for d in jf]
    dict = chisquare(datasetTrue, datasetFlase)
    import pandas as pd
    arr = list(dict.items())
    df = pd.DataFrame(list(dict.items()), columns=['word', 'score'])
    return df
    pass




if __name__ == '__main__':
    df1=run()
    df1.sort_values("score").to_csv("res2")

    print("end")


之前的老版本一个词一个词计算,算法是错误的,要跑几分钟


import jieba
import numpy as np
import xlrd
import re
import json




# 数据加载
# jieba词库设置


#读取文本,读取其中1个
#统计包含a的单词和不包含a的单词
#统计主题
def chisquare(datasetTrue, datasetFlase, word):
    a=b=c=d=0
    for i in datasetTrue:
        if word in i:
            a+=1
        else:
            c+=1
    for i in datasetFlase:
        if word in i:
            b+=1
        else:
            d+=1
    chi =  (a*d-b*c)**2/((a+c)*(a+b)*(b+d)*(c+d))
    #print(chi)
    return chi
    pass




def data_gen():
    xlsfile = r'E:\work\chisquare\file\test0111.xlsx'
    book = xlrd.open_workbook(xlsfile)  # 得到Excel文件的book对象
    sheet0 = book.sheet_by_index(0)  # 通过sheet索引获得sheet对象
    nrows = sheet0.nrows
    jiahuoTrue = []
    jiahuoFlase = []
    for rownum in range(1, nrows):
        rowvalue = sheet0.cell_value(rownum, 2)
        rowflag = sheet0.cell_value(rownum, 1)
        if (rowflag == 1):
            jiahuoTrue.append(rowvalue)
        elif (rowflag == 0):
            jiahuoFlase.append(rowvalue)
    return jiahuoTrue,jiahuoFlase


def getwordlist(datasetTrue,datasetFlase):
    s = set()
    for i in datasetTrue:
        for w in i:
            s.add(w)
    for i in datasetFlase:
        for w in i:
            s.add(w)
    return s




# 运行评分过程
def run():
    jt,jf =data_gen()
    datasetTrue = [jieba.lcut(d) for d in jt]
    datasetFlase = [jieba.lcut(d) for d in jf]
    word = "物流"
    s = getwordlist(datasetTrue, datasetFlase)
    dict = {}
    for word in s:


        dict[word] = chisquare(datasetTrue, datasetFlase, word)
        if dict[word]>0.01:
            print(word,dict[word])
    pass




if __name__ == '__main__':
    run()
    print("end")




SPSS篇—卡方检验 今天依旧跟大家分享一个在SPSS中使用率比较高的分析方法:卡方检验。 在开始做分析之前,我们需要明白两件事情:卡方检验是什么?一般用来干什么?我们只有充分了解分析方法以后才能够正确的使用它。 卡方检验在百科中的解释是:卡方检验是用途非常广的一种假设检验方法,它在分类资料统计推断中的应用,包括:两个率或两个构成比比较的卡方检验;多个率或多个构成比比较的卡方检验以及分类资料的相关分析等。它的原理是... 阅读详情

相关推荐

统计学——卡方检验和卡方分布

什么是卡方检验 卡方检验是一种用途很广的计数资料的假设检验方法。它属于非参数检验的范畴,主要是比较两个及两个以上样本率( 构成比)以及两个分类变量的关联性分析。其根本思想就是在于比较理论频数和实际频数的吻合程度或拟合优度问题。 它在分类资料统计推断中的应用,包括:两个率或两个构成比比较的卡方检验;多个率或多个构成比比较的卡方检验以及分类资料的相关分析等。 例子1:四格卡方检验 ...

snowdroptulip的博客 22万+

(五十六)假设检验(t检验、卡方检验)

对总体均值的单样本t检验用到的函数为sm.stats.DescrStatsW(列).ttest_mean();双样本t检验用于检验两个样本均值的差异是否显著,使用stats.levene()函数和stats.stats.ttest_ind()函数;两个分类变量之间的相关关系可用列联表和卡方检验,函数为pd.crosstab和stats.chi2_contingency()。

小粉桥反手王的博客 1万+

分类数据的分析-卡方检验运用

概念 分类数据 观测值只能被分为几个类别中的某一类,如某个公民的国籍,也称定性数据。 多项试验 当分类数据只涉及到两个响应结果(是或不是,成功或失败等等),就是一个二项分布。如果分类数据涉及到两个以上的响应结果,则是一个多项试验。 多项试验的特点: 1. 这种试验有n个同质的试验构成(进行了样本为n次试验) 2.每次试验都有k种可能都结果,这些结果被称为类 3.对于每次试验,这k中结果发生都概率用p1,p2,...,pk表示,并且在每次试验中都相同,其中p1+p2+...+pk=1 4.每

数据客 9184

二分类变量相关性分析spss_两个有序分类变量相关性的卡方检验-SPSS教程

一、问题与数据研究者想探索类风湿关节炎躯体感觉的症状数量与疼痛等级之间的关系,从一家大型医院入院治疗的类风湿关节炎病人中随机招募了364例研究对象。类风湿关节炎躯体感觉共有6种症状,研究者请研究对象报告其患有症状。类风湿关节炎门诊的医生使用疼痛量表对每个研究对象的疼痛进行评级。研究对象自报的类风湿关节炎躯体感觉症状数量在1-6个之间,为有序分类变量,变量名为symptoms。医生将研究对象的疼痛分...

weixin_32612347的博客 4202

SPSS相关分析(Pearson、Spearman、卡方检验)

关键词:卡方检验和相关性分析、卡方检验 相关性分析 一、相关分析方法的选择及指标体系 (一)两个连续变量的相关分析 1、Pearson相关系数 最常用的相关系数,又称积差相关系数,取值-1到1,绝对值越大,说明相关性越强。该系数的计算和检验为参数方法,适用条件如下: (1)两变量呈直线相关关系,如果是曲线相关可能不准确。 (2)极端值会对结果造成较大的影响 (3)两变量符合双变量联合正态分布。 2、Spearman秩相关系数 对原始变量的分布不做要求,适用范围较Pearson相关系数广,即使是等级资料,也可

weixin_45758901的博客 2万+

机器学习笔记 - 如何对两个分类变量使用卡方检验?

卡方检验被誉为二十世纪科学技术所有分支中的20大发明之一,它的发明者卡尔·皮尔逊是一位历史上罕见的百科全书式的学者,研究领域涵盖了生物、历史、宗教、哲学、法律。 是英国著名的统计学家、生物统计学家、应用数学家,又是名副其实的历史学家、科学哲学家、伦理学家、民俗学家、人类学家、宗教学家、优生学家、弹性和工程问题专家、头骨测量学家,也是精力充沛的社会活动家、律师、自由思想者、教育改革家、社会主义者、妇女解放的鼓吹者、婚姻和性问题的研究者,亦是受欢迎的教师、编辑、文学作品和人物传记的作者。

学以致用 知行合一 5562

2×3卡方检验prism_医学科研课堂丨统计说说(六):基于分类变量的卡方检验(一)...

给我的科研朋友们来杯mojito——冬天的第一堂统计课今天给大家带来第六期刘岭教授的统计说说—卡方检验的具体应用。好,闲话不多说,开课了。在上一讲我们谈到“针对常用的基本统计学方法,一般而言说的就是t检验、单因素方差分析和卡方检验,这也是大家在写论文、阅读论文时经常遇到的统计学方法(几乎每篇文章都会涉及到这一种或几种方法)”,今天我们就来说一说这个卡方(χ2)检验。χ2检验是反应变量和分组变量都为...

weixin_39712724的博客 6608

CHI里的Error handling机制

本文讲解了CHI里的Error handling机制。

W1Z1Q的专栏 2500

python卡方检验kf_data_《商务与经济统计》Python实现笔记(二)

总体方差的置信区间from scipy.stats import chi2def CI(n,sigma2,alpha):"""n:样本量sigma2:样本方差alpha:置信水平"""a = (1-alpha)/2b = (n-1)*sigma2lower = b/chi2.ppf(a,df=n-1)upper = b/chi2.ppf(1-a,df=n-1)return (lower,upper...

weixin_39633891的博客 295

音频功放电路大全

作为硬件工程师,特别是做纯粹模拟电路、应用于音频功放的工程师,对于A类,B类,AB类,D类,G类,H类,T类功放应该特别熟悉。大多数工程师或许只知道其中的一部分、或者知道大概,为了让更多的工程师掌握更加详尽的音频功放知识,下文对以上说的音频功放做详细的说明。 功放,顾名思义,就是功率放大的缩写。与电压或者电流放大来说,功放要求获得一定的、不失真的功率,一般在大信号状态下工作,因此,功放电路一般包含电压放大或者电流放大电路没有的特殊问题,具体表现在:①输出功率尽可能大;②通常在大信号状态下工作;③非线性失真突

ltqdxl的博客 6595

Matlab中eig内置函数转为C语言

本文记录一下如何将MATLAB中的eig函数转为C语言,即通过C语言求解矩阵的特征值与特征向量。[V,D]=eig(Rx)中V为矩阵Rx的特征向量,D为矩阵的特征值。其中Rx维度为12*12的复矩阵。 首先在MATLAB端创建入口函数保存为eigvalue.m: 打开MATLAB Coder,添加入口函数: 3.在定义输入类型窗口中,需要添加输入数据来训练...

u011441044的博客 3516

卡方检验原理与实战:从拟合优度到独立性检验的多语言实现

在统计学与数据分析中,假设检验是验证数据模式与理论预期是否一致的核心方法。其基本原理是通过构建统计量,量化观测数据与理论假设之间的差异,并依据抽样分布判断该差异是否由随机因素导致。卡方检验作为一种重要的非参数检验方法,其技术价值在于能够处理分类数据,评估观测频数与期望频数之间的偏离程度,从而判断单个变量的分布是否符合特定理论分布,或检验两个分类变量之间是否存在关联。该方法广泛应用于市场研究、医学实验、质量控制和机器学习特征筛选等多个场景。本文聚焦于卡方检验的两大核心应用——拟合优度检验与独立性检验,深入剖析

weixin_33863087的博客 441

游戏经济数值模型的搭建过程——以标准卡牌游戏为例

一、总体规划 1.玩家分类 首先我们按照下表对玩家进行分类 付费能力即为充值额度;充值行为比如购买月卡/购买钻石;消费行为比如用钻石抽卡 在这里我们假设玩家是理性的,即玩家会以追求更高的性价比为目标进行充值与消费(即小R会优先买首冲+月卡,而不是买一个无用的无属性皮肤) 不同类型玩家之间的差异,实际上就主要由这些行为的差异而决定。 注:早期游戏制作的时候,活跃程度也是区分玩家类型的一个重要依据。不过目前现在游戏中有各种手段抹平了不同活跃玩家的差异(体力限制,活跃时间长的收益递减)..

dudu3332的博客 4228

卡方检验

  1.卡方检验概念 1)卡方检验是一种用途很广的计数资料的假设检验方法,由卡尔·皮尔逊提出。 (1)它属于非参数检验的范畴,主要是比较两个及两个以上样本率( 构成比)以及两个分类变量的关联性分析。 (2)其根本思想就是在于比较理论频数和实际频数的吻合程度或拟合优度问题。 (3)卡方值描述两个事件的独立性或者描述实际观察值与期望值的偏离程度。卡方值越大,表名实际观察值与期望值偏离越大,也说明两个事件的相互独立性越弱。 2)在分类资料统计推断中的...

gengjuan520的博客 3万+

DDS(Direct Digital Synthesizer)数字频率合成器

随着数字技术在仪器仪表和通信系统中的广泛使用,可从参考频率源产生多个频率的数 字控制方法诞生了,即直接数字频率合成(DDS)。 直接数字合成(DDS)是一种产生模拟波形(通常是正弦波)的方法,它通过产生数字形式的时变信号,然后进行数模转换。由于DDS设备内的操作主要是数字的,它可以提供输出频率之间的快速切换,良好的频率分辨率,并在广泛的频率频谱上操作。随着设计和工艺技术的进步,今天的DDS设备非常紧凑,功耗很小。 上面是比较书面的语言,其实简单地说就是一个信号发生器模块,主要是产生频率可调的三角波正弦波。

denghuajing的博客 4865

Qt开发者必看:QTimer::singleShot的5个实战避坑指南(含lambda和多线程案例)

本文为Qt开发者提供了QTimer::singleShot的5个关键实战避坑指南,涵盖lambda捕获、对象生命周期和多线程安全等核心难点。通过对比错误与正确代码示例,深入解析了如何避免悬空指针、确保线程执行上下文正确以及管理定时任务资源,帮助开发者编写更健壮、可靠的延迟执行代码。

stem5的博客 466

卡方检验详解分析与实例

1.什么是卡方检验 卡方检验是一种用途很广的假设检验方法,属于非参数检验的范畴。 主要是比较两个或两个以上样本率以及两个分类变量的关联性分析。 根本思想是在于比较理论频次与实际频次的吻合程度或拟合优度问题。 (以上简介来自网络相关文档) 2.什么是卡方分布 卡方分布(chi-square distribution,χ2\chi ^2χ2-distribution)是概率统计中常用的一个分布。k个独立的标准正态分布变量的平方和服从自由度为k的卡方分布,即 X=∑i=1kZi2X = \sum_{i=1}^k

bitcarmanlee的博客 5万+

8、音频运行时系统的架构设计

本文深入探讨了音频运行时系统的分层设计及其优势,包括逻辑层和物理层的功能划分。通过分层设计,开发者可以更轻松地管理和优化音频资源,确保其在不同平台上的高效运行。文章还介绍了平台适配与优化、错误处理与调试以及未来发展方向等内容,为开发者提供了宝贵的参考和指导。

juice的博客 462

什么是卡方检验?

卡方检验的分析过程可以分为几个步骤,并且根据检验的类型(如独立性检验、适合性检验等)会有所不同,但基本思路相似。,则拒绝零假设,认为观测数据与理论预期(两变量独立)之间存在显著差异,支持备择假设,即两个分类变量之间存在关联。,意味着我们观察到的数据与零假设预测的模式(即变量间无关联)之间的差异大到不太可能是由于随机抽样误差造成的。需要注意的是,在实际操作中,(有的标准放宽到期望频数总和的80%不小于5),以防止χ²分布的近似性失效。的计算也很重要,因为它决定了卡方分布的形状,从而影响到临界值的确定。

... 8174

Python爬虫模拟登录京东并抓取商品数据

京东是一个拥有海量商品数据的电子商务平台。作为爬虫开发者,能够抓取这些数据将为我们提供很多机会进行数据分析、价格预测、市场调研等工作。然而,京东的反爬虫机制非常强大,包括但不限于验证码、动态加载页面、IP封禁等。因此,想要通过Python爬虫抓取京东的数据并不容易。在本文中,我们将从分析京东的登录机制开始,逐步介绍如何使用Python中的各种工具,如。

2201_76125261的博客 1828

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

数据分析之卡方检验

检验某个连续变量的分布是否与某种理论分布相一致。例如是否符合正态分布,均匀分布,Poisson(泊松)分布检验某个分类变量的各类的概率是否等于指定概率检验某两个分类变量是否 相互独立检测两种方法的检测结果是否一致检测控制某种或某几种的变量后,另外两个分类变量是否相互独立。............

当我把这件事情做出来的时候,我想要的东西就已经拿到了 4万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python数据分析 - 卡方检验

卡方检验1.卡方检验2.独立性卡方检验与一致性卡方检验2.1 独立性卡方检验2.1.1 python独立性卡方检验2.2 一致性卡方检验3.正态分布卡方检验3.1 python正态分布卡方检验 1.卡方检验 卡方检验也属于假设检验的一种即可以分析一个变量的拟合程度,如拟合优度检验(二项分布、泊松分布和正态分布),即可以分析数据是不是正态分布,在做T检验的时候(前提条件就是数据要符合正态分布)。 还可以用来分析两个变量间的关系:是否相互独立,是否来自一个总体。 2.独立性卡方检验与一致性卡方检验 对于两个变

weixin_42010722的博客 2万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

卡方检验及python代码实现

是什么? 有什么用? 怎么做? 是什么? 卡方分布:n个独立同分布(标准正态分布N(0,1))变量的平方和服从自由度为n的卡方分布。 不同自由度的卡方分布的概率密度函数图示python代码 import numpy as np import seaborn as sns import matplotlib.pyplot as plt x1 = np.random.normal(0,1,10000...

charie411的博客 1万+

卡方检验及其在Python中的应用

卡方检验是分析分类变量之间关系的重要工具,能够有效地检验观察数据与期望数据之间的差异。在Python中,库为我们提供了便捷的工具来进行卡方检验和相关分析。希望通过本文的介绍,小伙伴们能对卡方检验有更深入的理解,并能够在实际数据分析中熟练应用。码字艰辛,本篇内容就分享至此,如果渴望深入了解更多Python机器学习方面的应用,别忘了点击关注博主,引导你从零开始探索Python在统计分析上的奥秘。同时,对于在数据分析与机器学习《Python之机器学习》,让我们一起努力坚强学习,共同进步吧~

小高~的博客 1890

卡方检验讲解

总第166篇/张俊红我们前面讲过方差分析,方差分析的应用场景是什么样子的呢?不记得同学可以翻回去看看。当我们要比较两组或者多组均值有没有显著性差异的时候,我们可以用方差分...

张俊红的个人博客 6271
上一篇: tensorflow问题排查
下一篇: wordcloud 安装需要c++的解决方案
dataastron
博客等级 码龄10年 26粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值