如何在Python中进行假设检验?

时间:2017-05-26 16:52:27

标签: python-3.x statistics

我希望找到P值。我来自更多的统计背景,对Python来说相当新。有没有可以让我这样做的套餐?我正在关注“从头开始的数据科学”一书,并且有点依赖于假设检验和推理。

1 个答案:

答案 0 :(得分:3)

SciPy包有一个包含许多统计内容的整个模块,包括假设检验和内置分布函数:scipy.stats

例如,您可以使用Kolmogorov-Smirnov检验测试随机样本是否正常分布:

import numpy as np
from scipy.stats import norm, pareto, kstest

n = 1000
sample_norm = norm.rvs(size=1000)  # generate normally distributed random sample
sample_pareto = pareto.rvs(1.0, size=1000)  # sample from some other distribution for comparison

d_norm, p_norm = kstest(sample_norm, norm.cdf)  # test if the sample_norm is distributed normally (correct hypothesis)
d_pareto, p_pareto = kstest(sample_pareto, norm.cdf)  # test if the sample_pareto is distributed normally (false hypothesis)

print('Statistic values: %.4f, %.4f' % (d_norm, d_pareto))
print('P-values: %.4f, %.4f' % (p_norm, p_pareto))

如您所见kstest返回统计值和p值。 norm.cdf代表正态随机变量的累积分布函数。