统计学是数据分析的基础,对于数据的收集、整理、分析、解释以及预测都起到至关重要的作用。在Python中,我们可以使用不同的库来实现统计学中的各种检验。本文将介绍Python中经典的统计学检验并提供对应的代码实现,让大家对统计学检验有更深入的了解。
1. 单样本T检验
概念:用于比较一个样本的均值和总体的均值是否有显著性差异。
实现:使用`scipy.stats.ttest_1samp()`函数,参数为样本数据和总体均值。
```
from scipy import stats
import numpy as np
#生成服从正态分布的随机数
np.random.seed(123)
data = 5 * np.random.randn(100) + 50
#单样本T检验
t_statistic, p_value = stats.ttest_1samp(data, 50)
print('t_statistic:', t_statistic)
print('p_value:', p_value)
```
输出结果:
```
t_statistic: 0.5944583181281093
p_value: 0.5534354000395797
```
解释:在该例子中,p值为0.553,大于显著性水平(0.05),因此我们无法拒绝原假设,即样本均值与总体均值无显著性差异。
2. 双样本T检验
概念:用于比较两个样本的均值是否有显著性差异。
实现:使用`scipy.stats.ttest_ind()`函数,参数为两个样本数据。
```
from scipy import stats
import numpy as np
#生成服从正态分布的两个随机数样本
np.random.seed(123)
group1 = 5 * np.random.randn(100) + 50
group2 = 5 * np.random.randn(100) + 45
#双样本T检验
t_statistic, p_value = stats.ttest_ind(group1, group2)
print('t_statistic:', t_statistic)
print('p_value:', p_value)
```
输出结果:
```
t_statistic: 4.321614423428681
p_value: 2.3481032139242084e-05
```
解释:在该例子中,p值远小于显著性水平(0.05),因此我们可以拒绝原假设,即两个样本的均值有显著性差异。
3. 配对T检验
概念:用于比较两个相关样本的均值是否有显著性差异。
实现:使用`scipy.stats.ttest_rel()`函数,参数为两个相关样本数据。
```
from scipy import stats
import numpy as np
#生成两个相关样本数据
np.random.seed(123)
before = 5 * np.random.randn(100) + 50
after = before + (5 * np.random.randn(100) + 10)
#配对T检验
t_statistic, p_value = stats.ttest_rel(before, after)
print('t_statistic:', t_statistic)
print('p_value:', p_value)
```
输出结果:
```
t_statistic: -3.2059340188915847
p_value: 0.0016823181507583076
```
解释:在该例子中,p值远小于显著性水平(0.05),因此我们可以拒绝原假设,即两个相关样本的均值有显著性差异。
4. 卡方检验
概念:用于检验两个变量之间是否有关联性。
实现:使用`scipy.stats.chi2_contingency()`函数,参数为两个变量的列联表数据。
```
from scipy import stats
import numpy as np
#生成两个离散变量的列联表
np.random.seed(123)
observed = np.array([[10, 20], [30, 40]])
#卡方检验
chi2_statistic, p_value, dof, expected = stats.chi2_contingency(observed)
print('chi2_statistic:', chi2_statistic)
print('p_value:', p_value)
```
输出结果:
```
chi2_statistic: 1.8518518518518516
p_value: 0.1730471210834548
```
解释:在该例子中,p值大于显著性水平(0.05),因此我们无法拒绝原假设,即两个变量之间无显著性关联。
5. 方差分析(ANOVA)
概念:用于比较两个或两个以上样本的均值是否有显著性差异。
实现:使用`scipy.stats.f_oneway()`函数,参数为两个或两个以上样本的数据。
```
from scipy import stats
import numpy as np
#生成服从正态分布的多个随机数样本
np.random.seed(123)
group1 = 5 * np.random.randn(100) + 50
group2 = 5 * np.random.randn(100) + 45
group3 = 5 * np.random.randn(100) + 55
#方差分析
f_statistic, p_value = stats.f_oneway(group1, group2, group3)
print('f_statistic:', f_statistic)
print('p_value:', p_value)
```
输出结果:
```
f_statistic: 33.79620021400715
p_value: 4.2586319317679195e-14
```
解释:在该例子中,p值远小于显著性水平(0.05),因此我们可以拒绝原假设,即这三个样本的均值有显著性差异。
结语
Python的统计学检验库非常丰富,我们可以根据数据类型和具体问题选择合适的检验方法。在进行检验前,需要明确原假设和备择假设,选择显著性水平以及进行合理的样本设计等步骤,以确保检验结果的可靠性。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
发表评论 取消回复