Python统计实战:两个类别变量的卡方独立性检验

为了解决特定问题而进行的学习是提高效率的最佳途径。这种方法能够使我们专注于最相关的知识和技能,从而更快地掌握解决问题所需的能力。

(以下练习题来源于《统计学—基于Python》。联系获取完整数据和Python源代码文件。)


练习题

为了研究上市公司对其股价波动的关注程度,一家研究机构对在主板、科创板和创业板上市的190家公司进行了调查,得到如下数据:

(1)检验上市板块与对股价波动的关注程度是否独立(α=0.05);

(2)计算上市板块与对股价波动的关注程度两个变量之间的φ系数、Cramer's V系数和列联系数,并分析其相关程度。


题目分析

根据题意并观察数据,可以发现此题考查列联表和卡方独立性检验,还要求计算两个类别变量的相关性度量。

本题要检验“上市板块与对股价波动的关注程度是否独立”,我们通过观察数据的表格形式,发现它其实是由两个分类变量交叉分类形成的频数分布表,即列联表(contingency table)。对列联表中的两个分类变量进行分析,通常是判断两个变量是否独立,即对数据进行卡方独立性检验。该检验的原假设是:两个变量独立(无关),如果原假设被拒绝,这表明两个变量不独立,或者说两个变量相关。卡方独立性检验的统计量为:

式中,f0为观察频数,fe为期望频数。该统计量服从自由度为(r-1)(c-1)的卡方分布,r为行数,c为列数。

除此之外,还要计算φ系数、Cramer's V系数和列联系数以度量两个类别变量的相关性。

φ系数的公式为:

Cramer's V系数的公式为:

列联系数的公式为:

针对本题,我们按如下步骤进行检验:

第一步,提出假设:H0:上市板块与对股价波动的关注程度独立;H2:上市板块与对股价波动的关注程度不独立。

第二步,用Python计算期望频数和检验统计量。

第三步,用Python计算φ系数、Cramer's V系数和列联系数。


Python代码

import pandas as pd
from scipy.stats import chi2_contingency

x = [[50, 70], [30, 15], [20, 5]]
df = pd.DataFrame(x, index = ['主板', '科创板', '创业板'], columns = ['关注', '不关注'])
# print(df)
chi2, p_value, dof, f_exp = chi2_contingency(df)
print(f"卡方统计量 = {chi2:.4f}, p值 = {p_value:.4f}, 自由度 = {dof}\n期望频数为:\n {f_exp}")

# 计算φ系数、Cramer's V系数和列联系数
import math
n = 190
chi2 = 16.8537
phi = math.sqrt(chi2/n)
v = math.sqrt(chi2/n*(2-1))
c = math.sqrt(chi2/(chi2+n))
print(f"φ系数 = {phi:4f}; Cramer's V系数 = {v:.6f}; 列联系数 = {c:.6f}")


计算结果与分析

卡方统计量 = 16.8537, p值 = 0.0002, 自由度 = 2。

期望频数矩阵:

[[63.15789474 56.84210526]
 [23.68421053 21.31578947]
 [13.15789474 11.84210526]]

由于p小于0.05,拒绝原假设,接受备择假设,说明有证据表明上市板块与对股价波动的关注程度不独立。

φ系数 = 0.297832;Cramer's V系数 = 0.297832;列联系数 = 0.285441;系数结果表明二者之间有一定的相关性,但关系较弱。


都读到这里了,不妨关注、点赞一下吧!

  • 15
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一. 课程介绍本课程结合Python进行统计数据分析的原理讲解与实战,涵盖了大部分统计&数据分析模型,特别是当前比较主流的算法:参数估计、假设检验、线性回归、广义线性回归、Lasso、岭回归、广义可加模型、回归样条等;机器学习经常用到的主成分分析、因子分析、典型相关分析、聚类分析等;各种非参数统计模型,包括非参数统计推断、尺度推断、位置推断、非参数核密度估计、非参数回归等。本课程主要针对有一定Python编程基础、即将毕业参加工作的的大三大四学生,或者已经参加工作需要提升自己数据分析能力以及转行从事IT行业尤其是数据&大数据分析工作的初入职场者,或者正在攻读硕博士学位需要学习和掌握量化研究方法的研究生。本课程对于即将从事机器学习、深度学习&人工智能相关工作的程序员也有很大帮助,有利于打好坚实的理论基础。二. 课程目录第0章 课程导学第1章 数据描述性分析1.1 描述统计量1.2 数据的分布1.3 概率分布函数的图形1.4 直方图、经验分布函数与QQ图1.5 多元数据的数据特征与相关性分析1.6 多元数据的基本图形表示第2章 参数估计2.1 点估计2.2 区间估计第3章 假设检验3.1 基本原理3.2 参数检验第4章 回归分析4.1 回归分析的概念与一元线性回归4.2 多元线性回归及统计量解析4.3 逐步回归与模型选择4.4 回归诊断4.5 广义线性回归4.6 非线性回归第5章 方差分析5.1 单因素方差分析5.2 双因素方差分析第6章 判别分析与聚类分析6.1 判别分析6.2 聚类分析第7章 主成分分析、因子分析与典型相关分析7.1 主成分分析7.2 因子分析7.3 典型相关分析第8章 非参数统计8.1 经验分布和分布探索8.2 单样本非参数统计推断8.3 两独立样本的位置与尺度判断8.4 多组数据位置推断8.5 分类数据的关联分析8.6 秩相关与分位数回归8.7 非参数密度估计8.8 一元非参数回归三. 讲师简介主讲人李进华博士,本、硕、博皆就读于武汉大学信息管理学院,2005年获博士学位进入211高校任教,2012年受聘为教授。从事信息管理与数据分析方面的教学、科研与系统开发工作20余年,具备深厚理论修养和丰富实战经验。是中国最早从事Java开发的程序员和Oracle数据库的DBA之一。曾带领团队开发《葛洲坝集团三峡工程指挥中心三期工程施工管理系统》、《湖北省财政厅国有企事业单位资产管理系统》等大型MIS。
卡方独立性检验是一种用于检验两个分类变量之间是否存在关联的统计方法。在Python中,可以使用SciPy库中的chi2_contingency函数进行卡方独立性检验。该函数的参数包括置信度alpha和数据data,返回值包括卡方值g、P值p、自由度dof、判断变量re和对应的理论值expctd。\[1\] 以下是一个示例代码,用于进行卡方独立性检验: ```python import numpy as np from scipy.stats import chi2_contingency from scipy.stats import chi2 def chi2_independence(alpha, data): g, p, dof, expctd = chi2_contingency(data) if dof == 0: print('自由度应该大于等于1') elif dof == 1: cv = chi2.isf(alpha * 0.5, dof) else: cv = chi2.isf(alpha * 0.5, dof-1) if g > cv: re = 1 # 表示拒绝原假设 else: re = 0 # 表示接受原假设 return g, p, dof, re, expctd ``` 在使用该函数时,需要传入置信度alpha和数据data。函数会返回卡方值g、P值p、自由度dof、判断变量re和对应的理论值expctd。如果自由度为0,则会打印出提示信息。根据判断变量re的值,可以判断是否拒绝原假设。\[2\] 另外,还可以使用SciPy库中的chisquare函数进行卡方拟合性检验。该函数的参数包括数据data,返回值包括卡方值和P值。\[3\] #### 引用[.reference_title] - *1* *3* [卡方分布、卡方独立性检验和拟合性检验理论及其python实现](https://blog.csdn.net/sinat_23971513/article/details/111873911)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [卡方列联表的独立性检验](https://blog.csdn.net/qq_45323012/article/details/105363332)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值