python t检验显著差异_基于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 = %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)

相关系数为0.39,说明这两个序列存在一定的相关性

p-value为0.035,说明结果是统计显著的

你可能感兴趣的:(python,t检验显著差异)