个人博客网站制作代码,开发公司商铺租金资金回笼慢的原因,杭州网站建设哪家快速上线,建设官网公司Z检验#xff08;Z-test#xff09;是一种用于检验一个样本的均值是否与已知的总体均值相等的统计方法。它通常用于以下情况#xff1a; 总体参数已知#xff1a; 当总体的均值和标准差已知时#xff0c;可以使用Z检验来确定样本均值是否与总体均值相等。 大样本#xff…Z检验Z-test是一种用于检验一个样本的均值是否与已知的总体均值相等的统计方法。它通常用于以下情况 总体参数已知 当总体的均值和标准差已知时可以使用Z检验来确定样本均值是否与总体均值相等。 大样本 Z检验在样本容量较大通常大于30时表现最佳因为它依赖于正态分布的性质。 连续数据 Z检验适用于连续型数据例如测量值而不适用于分类数据。Z检验的基本思想是计算样本均值与总体均值之间的差异然后将其标准化得到Z统计量再与显著性水平进行比较从而决定是否拒绝原假设。
scipy.stats.norm 是 Scipy 库中用于处理正态分布的模块。它包含了一系列函数允许你计算正态分布的概率密度函数、累积分布函数、生存函数等。 在Python中进行Z检验通常需要手动计算Z分数并使用标准正态分布的函数例如累积分布函数来获取p值。Scipy库是一个强大的统计学工具提供了一些相关的函数包括 scipy.stats.norm.cdf用于计算标准正态分布的累积分布函数Cumulative Distribution FunctionCDF即给定值以下的概率。 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(loc28, scale5, size100)# 假设的总体均值
population_mean 26# 样本均值和标准差
sample_mean np.mean(data)
sample_std np.std(data, ddof1) # 使用ddof1来计算样本标准差# 计算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(fZ分数 (手动计算): {z_score}, 双尾p值: {p_value})
#print(fZ分数 (使用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(fPDF在0点的值: {pdf_value})
print(fCDF在0点的值: {cdf_value})
print(fSF在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(loc12, scale2.5, size340)# 绘制直方图
plt.hist(x, bins30, densityTrue, alpha0.7, colorblue, edgecolorblack)# 生成正态分布的概率密度函数曲线
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-, linewidth2)
# 添加标题和标签
plt.title(正态分布图)
plt.xlabel(随机变量值)
plt.ylabel(频率)
# 显示图形
plt.show()# scipy.stats.normaltest 是 Scipy 中用于检验样本是否来自正态分布的函数。
# normaltest它基于 DAgostino and Pearsons 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)