Z检验scipy.stats.norm的相关计算

Z检验(Z-test)是一种用于检验一个样本的均值是否与已知的总体均值相等的统计方法。它通常用于以下情况:
总体参数已知: 当总体的均值和标准差已知时,可以使用Z检验来确定样本均值是否与总体均值相等。
大样本: Z检验在样本容量较大(通常大于30)时表现最佳,因为它依赖于正态分布的性质。
连续数据: Z检验适用于连续型数据,例如测量值,而不适用于分类数据。
Z检验的基本思想是计算样本均值与总体均值之间的差异,然后将其标准化,得到Z统计量,再与显著性水平进行比较,从而决定是否拒绝原假设。

scipy.stats.norm 是 Scipy 库中用于处理正态分布的模块。它包含了一系列函数,允许你计算正态分布的概率密度函数、累积分布函数、生存函数等。
在Python中,进行Z检验通常需要手动计算Z分数,并使用标准正态分布的函数(例如累积分布函数)来获取p值。Scipy库是一个强大的统计学工具,提供了一些相关的函数,包括:
scipy.stats.norm.cdf:用于计算标准正态分布的累积分布函数(Cumulative Distribution Function,CDF),即给定值以下的概率。
scipy.stats.norm.sf:用于计算标准正态分布的生存函数(Survival Function),即给定值以上的概率。
scipy.stats.zscore:用于计算给定数据的Z分数。
 

单样本Z检验(One-Sample Z-Test): 用于检验一个样本的均值是否与已知的总体均值相等。这种情况下,总体的均值和标准差已知。

import numpy as np
from scipy.stats import norm, zscore# 示例数据
data = np.random.normal(loc=28, scale=5, size=100)# 假设的总体均值
population_mean = 26# 样本均值和标准差
sample_mean = np.mean(data)
sample_std = np.std(data, ddof=1)  # 使用ddof=1来计算样本标准差# 计算Z分数
z_score = (sample_mean - population_mean) / (sample_std / np.sqrt(len(data)))# 计算双尾p值
p_value = 2 * norm.sf(np.abs(z_score))# 使用zscore函数计算Z分数
# z_scores_data = zscore(data)# 打印结果
print(f"Z分数 (手动计算): {z_score}, 双尾p值: {p_value}")
#print(f"Z分数 (使用zscore函数): {z_scores_data}")
import numpy as np
from scipy import stats# 假设总体均值已知为5,总体标准差已知为2
population_mean = 5
population_stddev = 2# 创建样本数据
sample_data = np.random.normal(5.01, 2, 30)  # 这里的均值为6,样本容量为30# 计算样本均值
sample_mean = np.mean(sample_data)# 计算标准误差(标准差除以样本容量的平方根)
standard_error = population_stddev / np.sqrt(len(sample_data))# 计算Z统计量
z = (sample_mean - population_mean) / standard_error# 设置显著性水平(通常为0.05)
alpha = 0.05# 查找Z分布的临界值
critical_value = stats.norm.ppf(1 - alpha/2)# 进行假设检验
if np.abs(z) > critical_value:print("拒绝原假设:样本均值与总体均值不相等")
else:print("接受原假设:样本均值与总体均值相等")

-------------------------------------------------------- 

双样本Z检验(Two-Sample Z-Test)用于比较两个独立样本的均值是否有显著差异

import numpy as np
from scipy import stats# 创建两组样本数据
group1 = np.random.normal(5, 2, 30)
group2 = np.random.normal(5.01, 2, 30)# 计算两组样本的均值和标准差
mean1, mean2 = np.mean(group1), np.mean(group2)
stddev1, stddev2 = np.std(group1), np.std(group2)# 计算标准误差
standard_error = np.sqrt((stddev1**2 / len(group1)) + (stddev2**2 / len(group2)))# 计算Z统计量
z = (mean1 - mean2) / standard_error# 设置显著性水平(通常为0.05)
alpha = 0.05# 查找Z分布的临界值
critical_value = stats.norm.ppf(1 - alpha/2)# 进行假设检验
if np.abs(z) > critical_value:print("拒绝原假设:两组样本的均值不相等")
else:print("接受原假设:两组样本的均值相等")

------------------------------------------------------

from scipy.stats import norm# 计算正态分布的概率密度函数(PDF)在某点的值
pdf_value = norm.pdf(0)# 计算正态分布的累积分布函数(CDF)在某点的值
cdf_value = norm.cdf(0)# 计算正态分布的生存函数(SF)在某点的值
sf_value = norm.sf(0)print(f"PDF在0点的值: {pdf_value}")
print(f"CDF在0点的值: {cdf_value}")
print(f"SF在0点的值: {sf_value}")

-------------------------------------------------------------------------------

# 绘制直方图、概率密度函数曲线、检验样本是否来自正态分布

import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as stats
from scipy.stats import normaltest
from scipy.stats import norm
plt.rcParams['font.sans-serif'] = ['SimHei']  # 防止中文标签乱码
plt.rcParams['axes.unicode_minus'] = False# 生成正态分布样本
x = np.random.normal(loc=12, scale=2.5, size=340)# 绘制直方图
plt.hist(x, bins=30, density=True, alpha=0.7, color='blue', edgecolor='black')# 生成正态分布的概率密度函数曲线
xmin, xmax = plt.xlim() #plt.xlim() 返回当前的 x 轴范围(x-axis limits)
x_range = np.linspace(xmin, xmax, 100)
pdf = norm.pdf(x_range, np.mean(x), np.std(x))
# 绘制概率密度函数曲线
plt.plot(x_range, pdf, 'k-', linewidth=2)
# 添加标题和标签
plt.title('正态分布图')
plt.xlabel('随机变量值')
plt.ylabel('频率')
# 显示图形
plt.show()# scipy.stats.normaltest 是 Scipy 中用于检验样本是否来自正态分布的函数。
# normaltest它基于 D'Agostino and Pearson's test,它结合了样本的偏度和峰度来进行判断。
# 进行正态性检验
statistic, p_value = normaltest(x)
# 打印结果
print(f"统计量: {statistic}, p值: {p_value}")
# 判断正态性
if p_value < 0.05:print("样本不是来自正态分布")
else:print("样本可能来自正态分布")# 正态性检验 - Shapiro-Wilk检验
stat, p = stats.shapiro(x)
print("Shapiro-Wilk检验统计量:", stat)
print("Shapiro-Wilk检验p值:", p)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/91726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode---364场周赛

题目列表 2864. 最大二进制奇数 2865. 美丽塔 I 2866. 美丽塔 II 2867. 统计树中的合法路径数目 一、最大二进制奇数 这题只要你对二进制有了解(学编程的不会不了解二进制吧)&#xff0c;应该问题不大&#xff0c;这题要求最大奇数&#xff0c;1.奇数&#xff1a;只要保证…

数据结构 | 二叉树

基本形状 可参照 数据结构&#xff1a;树(Tree)【详解】_数据结构 树_UniqueUnit的博客-CSDN博客 二叉树的性质 三种顺序遍历

区块链实验室(26) - 区块链期刊Blockchain: Research and Applications

Elsevier出版物“Blockchain: Research and Applications”是浙江大学编审的期刊。该期刊自2020年创刊&#xff0c;并出版第1卷。每年出版4期&#xff0c;最新期是第4卷第3期(2023年9月)。 目前没有官方的IF&#xff0c;Elsevier的引用因子Citescore是6.4。 虽然是新刊&#xf…

Android studio升级Giraffe | 2022.3.1 Patch 1踩坑

这里写自定义目录标题 not "opens java.io" to unnamed module错误报错信息解决 superclass access check failed: class butterknife.compiler.ButterKnifeProcessor$RScanner报错报错信息解决 Android studio升级Giraffe | 2022.3.1 Patch 1后&#xff0c;出现项目…

ElementUI之CUD+表单验证

目录 前言&#xff1a; 增删改查 表单验证 前言&#xff1a; 继上篇博客来写我们的增删改以及表单验证 增删改查 首先先定义接口 数据样式&#xff0c;我们可以去elementUI官网去copy我们喜欢的样式 <!-- 编辑窗体 --><el-dialog :title"title" :visib…

MT8385 Android AB分区系统升级(命令模式)

AB系统分区升级使用的是update_engine,RecoverySystem 只适用于单分区的系统升级 1.解压开update.zip 可以查看到palyload的属性 2.使用ADB命令update_engine_client即可对AB分区进行升级 使用adb shell 命令进行升级 update_engine_client --payload xxx --update --hea…

Qt扩展-QCustomPlot绘图基础概述

QCustomPlot绘图基础概述 一、概述二、改变外观1. Graph 类型2. Axis 坐标轴3. 网格 三、案例1. 简单布局两个图2. 绘图与多个轴和更先进的样式3. 绘制日期和时间数据 四、其他Graph&#xff1a;曲线&#xff0c;条形图&#xff0c;统计框图&#xff0c;… 一、概述 本教程使用…

Error: node: unknown or unsupported macOS version: :dunno 错误解决

一、原因 今天安装 brew install node报错了&#xff0c;错误信息如下&#xff1a; 二、解决方案 1&#xff09;查找homebrew-cask安装位置 echo $(brew --repo homebrew/homebrew-cask) // 输出 /opt/homebrew/Library/Taps/homebrew/homebrew-cask2&#xff09;使用 gi…

linux 查看CPU架构是AMD还是ARM

要查看 Linux 系统的 CPU 架构是 AMD 还是 ARM&#xff0c;可以使用以下命令&#xff1a; 使用 lscpu 命令并查找 Architecture 字段&#xff1a; lscpu | grep Architecture如果输出结果中包含 x86_64 或 i686&#xff0c;则表示系统的 CPU 架构是 AMD&#xff08;或者是 x86…

wxWidgets(1):在Ubuntu 环境中搭建wxWidgets 库环境,安装库和CodeBlocks的IDE,可以运行demo界面了,继续学习中

1&#xff0c;选择使用 wxWidgets 框架 选择这个主要是因为完全的开源&#xff0c;不想折腾 Qt的库&#xff0c;而且打包的文件比较大。 网络上面有很多的对比&#xff0c;而且使用QT的人比较多。 但是我觉得wxwidgets 更加偏向 c 语法本身&#xff0c;也有助学习C。 没有太多…

Java安全之servlet内存马分析

目录 前言 什么是中间键 了解jsp的本质 理解servlet运行机制 servlet的生命周期 Tomcat总体架构 查看Context 的源码 servlet内存马实现 参考 前言 php和jsp一句话马我想大家都知道&#xff0c;早先就听小伙伴说过一句话木马已经过时了&#xff0c;现在是内存马的天下…

centos7下根目录扩容

起因 系统盘给了800G 新人装的系统&#xff0c;根目录/只给了50G&#xff0c;home目录给750G&#xff0c;真是头疼&#xff0c;还没干啥&#xff0c;根目录就快满了 没辙&#xff0c;趁安装的内容还不多&#xff0c;自己扩容吧 结果&#xff0c;把根目录扩到800G 空间都分完了…

Snapdragon Profiler分析Android GPU

Snapdragon Profiler&#xff08;骁龙分析器&#xff09;是一款性能分析软件&#xff0c;在Windows、 Mac、和 Linux平台上都可以运行&#xff0c;主要是用来分析使用了高通骁龙处理器的Android设备。 Snapdragon Profiler通过USB连接这些Android设备&#xff0c;开发者可以用…

机器人过程自动化(RPA)入门 7. 处理用户事件和助手机器人

在UiPath中,有两种类型的Robot用于自动化任何流程。一个是后台机器人,它在后台工作。它独立工作,这意味着它不需要用户的输入或任何用户交互。另一个是前台机器人,也被称为助理机器人。 本章介绍前台机器人。在这里,我们将了解自动化过程中通过简单按键、单击鼠标等触发事…

MyBatisPlus(七)等值查询

等值查询 条件查询&#xff1a;使用 Wrapper 对象&#xff0c;传递查询条件。 QueryWrapper&#xff08;不要使用&#xff09; 代码 Testvoid eq() {QueryWrapper<User> wrapper new QueryWrapper<>();wrapper.eq("name", "张三");List<…

Elasticsearch keyword 中的 ignore_above配置项

1. ignore_above 关于es mapping的keyword ignore_above配置项的解释如下&#xff1a; Do not index any string longer than this value. Defaults to 2147483647 so that all values would be accepted. 不会索引大于ignore_above配置值的数据&#xff0c;默认值2147483647字…

蓝桥杯:核桃的数量(3148)java

小张是软件项目经理&#xff0c;他带领 3 个开发组。 工期紧&#xff0c;今天都在加班呢。 为鼓舞士气&#xff0c;小张打算给每个组发一袋核桃&#xff08;据传言能补脑&#xff09;。 他的要求是&#xff1a; 各组的核桃数量必须相同各组内必须能平分核桃&#xff08;当然…

常用SQL语法总结

1.库操作 1.1.创建数据库 CREATE DATABASE 语句用来创建一个新的数据库。 语法&#xff1a;CREATE DATABASE DatabaseName; DatabaseName 为数据库名字&#xff0c;它的名字必须是唯一的&#xff0c;不能和其它数据库重名。 1.2.删除数据库 DROP DATABASE语句用来删除已经…

嵌入式Linux应用开发-第十五章具体单板的按键驱动程序

嵌入式Linux应用开发-第十五章具体单板的按键驱动程序 第十五章 具体单板的按键驱动程序(查询方式)15.1 GPIO操作回顾15.2 AM335X的按键驱动程序(查询方式)15.2.1 先看原理图确定引脚及操作方法15.2.2 再看芯片手册确定寄存器及操作方法15.2.3 编程15.2.3.1 程序框架15.2.3.2 硬…

FFmpeg 命令:从入门到精通 | ffplay 简单过滤器

FFmpeg 命令&#xff1a;从入门到精通 | ffplay 简单过滤器 FFmpeg 命令&#xff1a;从入门到精通 | ffplay 简单过滤器视频旋转视频反转视频旋转和反转音频变速播放视频变速播放音视频同时变速更多参考 FFmpeg 命令&#xff1a;从入门到精通 | ffplay 简单过滤器 本节介绍了简…