• 大数定律
  • 伯努利大数定律

设$μ_n$是n次独立试验中事件A发生的次数,且事件A在每次试验中发生的概率为p,则对任意正数$\epsilon$,有

$$  lim_{n\rightarrow \infty} P(|\frac{\mu_n}{n} - p| < \epsilon) = 1 $$

  • 中心极限定理

 

独立同分布的随机变量之和, 当$n$足够大时, 近似地服从正态分布 

 

  • 泊松分布

泊松分布用于描述单位时间内随机事件发生的次数

泊松分布的期望是λ,指单位时间(或单位面积)内随机事件的平均发生次数。 方差也是λ。

其概率密度公式为:

 

 

一.分布一致性检验:

K-S检验(Kolmogorov-Smirnov test) 

K-S检验是比较一个频率分布f(x)理论分布g(x)或者两个观测值分布的检验方法。

假设: 原假设H0: 两个数据分布一致或者数据符合理论分布。D=max| f(x)- g(x)|,当实际观测值D>D(n,α)则拒绝H0,否则则接受H0假设。

非参数检验: K-S检验与t-检验之类的其他方法不同是K-S检验不需要知道数据的分布情况,可以算是一种非参数检验方法。

灵敏度: 当然这样方便的代价就是当检验的数据分布符合特定的分布时,K-S检验的灵敏度没有相应的检验来的高。

适用场景: 在样本量比较小的时候,K-S检验最为非参数检验在分析两组数据之间是否不同时相当常用。

source:

Python代码

from scipy import stats
stats.kstest(rvs, cdf, args=())
#其中rvs可以是数组、生成数组的函数或者scipy.stats里面理论分布的名字
#cdf可以与rvs一致。若rvs和cdf同是数组,则是比较两数组的分布是否一致;一个是数组,另一个是理论分布的名字,则是看样本是否否和理论分布
#args是一个元组,当rvs或者cds是理论分布时,这个参数用来存储理论分布的参数,如正态分布的mean和std。

#Input: stats.kstest(test, 'norm',args=(test.mean(),test.std()) 
#Output: KstestResult(statistic=0.005777479839093713, pvalue=0.8923049615924274)

source: 

 

scipy.stats中还有一个更简洁的函数 ks_2samp , 用于两个样本集的直接比较(不需要两组数据有相同的shape)

这里测试了 2 个样本是否来自相同的分布。请注意,与单样本 K-S 测试一样,分布假设是连续的。

该检验使用 two-sided asymptotic Kolmogorov-Smirnov distribution.

如果 K-S 统计量很小或 p 值较高,则我们不能拒绝两个样本分布相同的假设

scipy.stats.ks_2samp(data1, data2)  # 返回统计量, p值

 

  • JS散度(需要两组数据同shape)

JS散度基于KL散度,同样是二者越相似,JS散度越小。

JS散度的取值范围在0-1之间,完全相同时为0

JS散度是对称的

统计学角度的敏感性分析python代码 统计学 灵敏度_数据

import numpy as np
import scipy.stats
p=np.asarray([0.65,0.25,0.07,0.03])
q=np.array([0.6,0.25,0.1,0.05])
q2=np.array([0.1,0.2,0.3,0.4])
def JS_divergence(p,q):
    M=(p+q)/2
    return 0.5*scipy.stats.entropy(p, M)+0.5*scipy.stats.entropy(q, M)
print(JS_divergence(p,q))  # 0.003093977084273652
print(JS_divergence(p,q2)) # 0.24719159952098618
print(JS_divergence(p,p)) # 0.0

 

二.时间序列平稳性检验:

ADF检验

在使用很多时间序列模型的时候,如 ARMA、ARIMA,都会要求时间序列是平稳的,所以一般在研究一段时间序列的时候,第一步都需要进行平稳性检验,除了用肉眼检测的方法,另外比较常用的严格的统计检验方法就是ADF检验,也叫做单位根检验。

ADF检验就是判断序列是否存在单位根:如果序列平稳,就不存在单位根;否则,就会存在单位根。

ADF检验可以通过python中的 statsmodels 模块,这个模块提供了很多统计模型。

from statsmodels.tsa.stattools import adfuller

 

三.相关性检验

在scipy这一个统计包中,采用scipy.stats.spearmanr()等函数可以直接获得相关系数以及双边检验的P值。

 

correlation, p-value = scipy.stats.pearsonr(x, y)
correlation, p-value = scipy.stats.spearmanr(x, y)
correlation, p-value = scipy.stats.kendalltau(x, y)