在Python中进行假设检验通常涉及以下步骤:
设立假设
零假设(H0):表示没有效应或没有差异,即原假设。
备择假设(H1):表示存在效应或差异,即备择假设。
选择合适的检验方法
根据数据特征和检验目的选择合适的统计检验方法,如t检验、Z检验、卡方检验、F检验等。
计算检验统计量
根据所选的检验方法计算检验统计量。
确定显著性水平 (α):
通常取0.05,表示当观察到的结果在原假设为真的情况下出现的概率为5%或更小。
做出决策
如果检验统计量的结果落在拒绝域内(即P值小于显著性水平α),则拒绝零假设,接受备择假设。
如果检验统计量的结果落在接受域内,则不能拒绝零假设。
结论
基于检验结果得出结论,注意假设检验不能给出绝对证明,只能提供证据。
下面是一些具体的例子和代码片段,展示如何在Python中使用`scipy`库进行假设检验:
示例1:单样本t检验
import numpy as np
from scipy import stats
样本数据
data = np.array([1.2, 1.5, 1.8, 2.0, 2.2])
进行单样本t检验
t_statistic, p_value = stats.ttest_1samp(data, 1.8) 原假设均值为1.8
print("t统计量:", t_statistic)
print("P值:", p_value)
示例2:双样本t检验
import numpy as np
from scipy import stats
样本数据
data1 = np.array([1.2, 1.5, 1.8, 2.0, 2.2])
data2 = np.array([1.0, 1.3, 1.6, 1.9, 2.1])
进行双样本t检验
t_statistic, p_value = stats.ttest_ind(data1, data2) 零假设两组均值相同
print("t统计量:", t_statistic)
print("P值:", p_value)
示例3:卡方检验
from scipy.stats import chi2_contingency
import numpy as np
观察频数数据
observed = np.array([[10, 20, 25], [20, 25, 30]])
进行卡方检验
chi2, p, dof, expected = chi2_contingency(observed)
print("卡方统计量:", chi2)
print("P值:", p)
示例4:F检验
from scipy.stats import f
import numpy as np
样本方差数据
data1 = np.array([1.2, 1.5, 1.8, 2.0, 2.2])
data2 = np.array([1.0, 1.3, 1.6, 1.9, 2.1])
进行F检验
f_statistic, p_value = f_oneway(data1, data2) 零假设两组方差相同
print("F统计量:", f_statistic)
print("P值:", p_value)
以上示例展示了如何使用`scipy`库进行不同类型的假设检验。实际应用中,选择合适的检验方法和进行正确的假设设立是关键步骤。