正态分布假设的卡方检验python代码实现
时间: 2024-09-21 17:07:29 浏览: 82
正态分布假设的卡方检验通常用于验证数据是否服从正态分布。在Python中,我们可以使用scipy.stats
库中的chi2
模块来进行卡方检验。这里是一个简单的例子:
from scipy.stats import chi2, norm
import numpy as np
# 假设我们有一些观测值data
data = [random.randn() for _ in range(100)] # 这里用numpy生成一些随机数作为示例
# 计算样本均值和标准差
sample_mean = np.mean(data)
sample_std_dev = np.std(data)
# 对应于正态分布的理论期望值
expected_values = [sample_mean + i * sample_std_dev for i in range(-3, 4)]
# 计算每个区间内的观察值与期望值之差的平方,除以期望值
observed_counts, expected_counts = np.histogram(data, bins=7, density=True) # 假设我们有7个等宽区间
chi_square_statistic = sum((observed_counts - expected_counts)**2 / expected_counts)
# 使用chi2_contingency函数计算卡方统计量和p值
chi_square, p_value, degrees_of_freedom, expected_counts = chi2 contingency(observed_counts)
print(f"Chi-square statistic: {chi_square}")
print(f"P-value: {p_value}")
在这个例子中,我们首先假设数据服从正态分布,并创建了一个小的随机样本。接着,我们将数据分到几个区间,计算每个区间的实际观察次数和预期次数(基于正态分布)。然后,我们计算卡方统计量并获取P值。如果P值大于显著性水平(如0.05),则拒绝原假设,即认为数据不服从正态分布。
相关推荐


















