基于python的显著性检验
需要用到numpy库
import numpy as np
import scipy.stats as stats
import scipy.optimize as opt
首先我们来创造两个数组作为测试数据
n = 200
norm_dist = stats.norm(loc=0.5, scale=10)#构造一个正态分布,均值为0.5,标准差为10“标准差”也称“均方差”,是“方差”开根号
dat = norm_dist.rvs(size=n)#随机取200个点
print ("mean of data is: " + str(np.mean(dat)))
print ("median of data is: " + str(np.median(dat)))
print ("standard deviation of data is: " + str(np.std(dat)))#因为这200个点是随机取得,所以跟原先的正态分布可能有一些不同
norm_dist2 = stats.norm(loc=0.2, scale=1)
dat2 = norm_dist2.rvs(size=n/2)#随机取100个点
print ("mean of data is: " + str(np.mean(dat2)))
print ("median of data is: " + str(np.median(dat2)))
print ("standard deviation of data is: " + str(np.std(dat2)))
对这两个数组分析差异---双样本的t检验
stat_val, p_val = stats.ttest_ind(dat, dat2, equal_var=False)
#看看两个分布在均值上有没有显著差异
#注意,这里我们生成的第二组数据样本大小、方差和第一组均不相等,在运用t检验时需要使用Welch's t-test
#即指定ttest_ind中的equal_var=False。
print ('Two-sample t-statistic D = %6.3f, p-value = https://www.it610.com/article/%6.4f' % (stat_val, p_val))
计算两个序列的相关性,并做显著性检验
import scipy.stats as stats
x = [76,81,78,76,76,78,76,78,98,88,76,66,44,67,65,59,87,77,79,85,68,76,77,98,99,98,87,67,78]
y = [43,33,23,34,31,51,56,43,44,45,32,33,28,39,31,38,21,27,43,46,41,41,48,56,55,45,68,54,33]
r, p=stats.pearsonr(x,y)
[out]:(0.39341862097439129, 0.034735931329532836)
【基于python的显著性检验】相关系数为0.39,说明这两个序列存在一定的相关性
p-value为0.035,说明结果是统计显著的
推荐阅读
- 2017痛苦与喜乐
- 机会在培训机构(!)
- 钱,万恶的金钱啊
- 高效学习的七式秘籍
- 阅读层次
- 微信小程序|微信小程序(3)自定义组件
- 微信小程序学习笔记|4 - 微信小程序 - 自定义组件
- 穿黑棉袄的爷爷
- 理财能否堵住乱花钱导致的窟窿
- Element-ui的layout中gutter