df_SciPy-统计数据
教 程 ⽬ 录
所有统计函数都位于⼦包scipy.stats中,可以使⽤info(stats)函数获得这些函数的相当完整的列表.还可以从stats⼦包的docstring获取可⽤随机变量列表.该模块包含⼤量的概率分布以及不断增长的统计函数库.
每个单变量分布都有⾃⼰的⼦类,如下表所⽰ :锶.不.Class&说明
1rv_continuous
⽤于⼦类化的通⽤连续随机变量类
2rv_discrete
⼀般的离散随机变量类⽤于⼦类化
3rv_histogram
⽣成直⽅图给出的分布
正常连续随机变量
随机变量X可以取任何值的概率分布是连续随机变量. location(loc)关键字指定平均值. scale(scale)关键字指定标准差.
作为rv_continuous类的⼀个实例,norm对象继承了它通⽤⽅法的集合,并使⽤特定于此特定分布的详细信息完成它们.
要在多个点计算CDF,我们可以传递列表或NumPy数组.让我们考虑以下⽰例.from scipy.stats import norm
import numpy as np
print norm.cdf(np.array([1,-1., 0, 1, 3, 4, -2, 6]))
上述程序将⽣成以下输出.array([0.84134475,0.15865525,0.5,0.84134475,0.996501,
0.99996833,0.02275013,1.])
要查分布的中位数,我们可以使⽤百分点函数(PPF),它是CDF的反函数.让我们通过使⽤以下⽰例来理
解.from scipy.stats import norm
print norm.ppf(0.5)
上述程序将⽣成以下输出.0.0
要⽣成⼀系列随机变量,我们应该使⽤size关键字参数,如下例所⽰.from scipy.stats import norm
print norm.rvs(size = 5)
上述程序将⽣成以下输出.array([0.20929928,-1.91049255,0.41264672,-0.7135557,-0.03833048])
上述输出不可重复.要⽣成相同的随机数,请使⽤种⼦函数.
均匀分布
可以使⽤统⼀函数⽣成均匀分布.让我们考虑以下⽰例.from scipy.stats import uniform
print uniform.cdf([0,1,2, 3,4,5,loc = 1,scale = 4)
上述程序将⽣成以下输出.array([0,0,0,0.25,0.75,1.])
建⽴离散分布
让我们⽣成⼀个随机样本,并将观察到的频率与概率进⾏⽐较.
⼆项分布
作为rv_discrete类的⼀个实例,binom对象从它继承了⼀组泛型⽅法,并使⽤特定于此特定分布的详细信息完成它们.让我们考虑以下⽰例.from scipy.stats import uniform
print uniform.cdf([0,1,2, 3,4,5,loc = 1,scale = 4)
上述程序将⽣成以下输出.array([0,0,0,0.25,0.75,1.])
描述性统计
Min,Max,Mean和Variance等基本统计数据将NumPy数组作为输⼊并返回相应的结果. scipy.stats包中提供的⼀些基本统计函数如下表所⽰.Sr.不.功能&说明
1describe()
计算传递数组的⼏个描述性统计信息
2gmean()
计算⼏何平均数沿着指定的轴
3hmean()
计算沿指定轴的调和平均值
4kurtosis()
计算峰度
5mode()
返回模态值
6skew()
测试数据的偏斜
7f_oneway()
执⾏单因素⽅差分析
python获取数组长度
8iqr()
计算沿指定轴的数据的四分位数范围
9zscore()
计算样本中每个值的z分数,相对于样本均值和标准差
10sem()
计算输⼊数组中值的平均值(或标准测量误差)的标准误差
其中⼀些函数在scipy.stats.mstats中有类似的版本,它们适⽤于屏蔽数组.让我们通过下⾯的例⼦来理解这⼀点.from scipy import stats
import numpy as np
x = np.array([1,2,3,4,5,6,7,8,9])
print x.max(),x.min(),x.mean(),x.var()
上述程序将⽣成以下输出.(9 ,1,5,5,66666666666666667)
T-test
让我们了解T-test在SciPy中的⽤途.
ttest_1samp
计算⼀组分数均值的T检验.这是零假设的双侧检验,即独⽴观察样本'a'的预期值(平均值)等于给定的总体平均值,popmean.让我们考虑以下⽰例.from scipy import stats
rvs = vs(loc = 5, scale = 10, size = (50,2))
st_1samp(rvs,5.0)
上述程序将⽣成以下输出.Ttest_1sampResult(statistic = array([ -  1.40184894,2.70158009]),
pvalue = array([0.16726344,0.00945234]))
⽐较两个样本
在以下⽰例中,有两个样本,可以来⾃相同或者来⾃不同的分布,我们想测试这些样本是否具有相同的统计特性.
ttest_ind : 计算两个独⽴分数样本均值的T检验.这是零假设的双侧检验,即两个独⽴样本具有相同的平均(预期)值.该测试假设体默认具有相同的⽅差.
如果我们观察来⾃相同或不同体的两个独⽴样本,我们可以使⽤该测试.让我们考虑以下⽰例.from scipy import stats
rvs1 = vs(loc = 5,scale = 10,size = 500)
rvs2 = vs(loc = 5,scale = 10,size = 500)
st_ind(rvs1,rvs2)
上述程序将⽣成以下输出.Ttest_indResult(statistic = -0.67406312233650278,pvalue = 0.50042727502272966)
您可以使⽤相同长度的新数组测试相同的数字,但具有不同的均值.在loc中使⽤不同的值并对其进⾏测试.
相关新⼿教程:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。