数据分析初学-假设检验--日常更新中

假设检验是根据一定的假设条件,由样本推断总体的一种方法。

假设检验的基本思想是小概率反证法思想,小概率思想认为小概率事件在一次试验中基本上不可能发生,在这个方法下,我们首先对总体作出一个假设,这个假设大概率会成立,如果在一次试验中,试验结果和原假设相背离,也就是小概率事件竟然发生了,那我们就有理由怀疑原假设的真实性,从而拒绝这一假设。

假设检验步骤:

 选取原有理论作为原假设H0,新理论作为备择假设H1.

选择合适的检验统计量取决于数据的类型、分布、样本大小以及研究问题的性质。以下是一些常见的检验统计量及其适用情况:

  1. Z检验
    • 适用于大样本(通常n > 30)或已知总体标准差σ的情况。
    • 用于检验单个总体均值的假设,或者两个独立样本均值差的假设(当两个总体方差相等且已知时)。
    • 假设数据服从正态分布或近似正态分布。
  2. t检验
    • 适用于小样本(通常n ≤ 30)或总体标准差σ未知的情况。
    • 包括单样本t检验(检验单个总体均值)、独立样本t检验(检验两个独立样本均值差)和配对样本t检验(检验同一组对象在不同条件下的均值差)。
    • 假设数据服从正态分布或近似正态分布。
  3. 卡方检验(χ²检验)
    • 用于检验分类变量(如性别、血型等)的观察频数与期望频数之间的差异。
    • 适用于多组频数数据的比较,如拟合优度检验(检验实际分布与理论分布的差异)和独立性检验(检验两个分类变量是否独立)。
    • 不要求数据服从正态分布,但要求样本量足够大,以保证每个类别的频数不小于5。
  4. F检验
    • 主要用于方差分析(ANOVA),检验两个或多个总体方差是否相等。
    • 也用于比较两个或多个独立样本的方差是否相等(F检验的方差齐性检验)。
    • 假设数据服从正态分布或近似正态分布。

在选择合适的检验统计量时,需要考虑以下因素:

  • 数据类型:是连续型数据还是分类数据?
  • 样本大小:是大样本还是小样本?
  • 总体参数是否已知:如总体均值和方差是否已知?
  • 数据分布:是否服从正态分布或近似正态分布?
  • 研究问题的性质:是检验均值、比例、方差还是其他统计量?

 下面是用python相关库的具体实现方法

t 检验(Student's t-test)

用于比较两组数据(通常是样本均值)是否有显著差异。

python复制代码

from scipy import stats
# 假设我们有两个样本
sample1 = [1, 2, 3, 4, 5]
sample2 = [5, 6, 7, 8, 9]
# 使用 scipy 的 ttest_ind 进行两独立样本 t 检验
t_statistic, p_value = stats.ttest_ind(sample1, sample2)
print(f"t statistic: {t_statistic}")
print(f"p value: {p_value}")

z 检验(Z-test)

对于大样本或已知总体标准差的情况,可以使用 z 检验。但是,SciPy 没有直接提供 z 检验的函数,但你可以手动计算或使用正态分布函数进行近似。

python复制代码

from scipy.stats import norm
# 假设你有一个样本均值和总体标准差,以及你希望比较的总体均值
sample_mean = 5.5
population_mean = 5
population_std = 1
n = len(sample1) # 假设这是你的样本大小
# 计算 z 分数
z_score = (sample_mean - population_mean) / (population_std / np.sqrt(n))
# 计算 p 值(双尾)
p_value = 2 * (1 - norm.cdf(abs(z_score)))
print(f"z score: {z_score}")
print(f"p value: {p_value}")

卡方检验(Chi-square test)

用于检验两个分类变量是否独立。在 SciPy 中,可以使用 chi2_contingency 或 chisquare 函数。

python复制代码

from scipy.stats import chi2_contingency
# 假设你有一个观察频数表
observed = [[10, 10, 20], [20, 20, 20]]
chi2, p, dof, expected = chi2_contingency(observed)
print(f"chi-square statistic: {chi2}")
print(f"p value: {p}")
  1. ANOVA(方差分析)

用于比较两组或多组数据的均值是否有显著差异。

python复制代码

from scipy.stats import f_oneway
# 假设你有三个样本
sample1 = [1, 2, 3, 4, 5]
sample2 = [5, 6, 7, 8, 9]
sample3 = [9, 10, 11, 12, 13]
# 使用 f_oneway 进行单因素方差分析
f_stat, p_value = f_oneway(sample1, sample2, sample3)
print(f"F statistic: {f_stat}")
print(f"p value: {p_value}")

请注意,上述示例中的 p 值都是双尾的。如果你想要单尾的 p 值,你可能需要相应地调整计算方式。此外,在解释 p 值时,通常认为如果 p 值小于某个显著性水平(如 0.05),则拒绝原假设,认为两组数据有显著差异。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值