确定重尾分布式过程是否已显着改进

机器算法验证 采样 非参数
2022-03-25 23:32:19

我观察变更前后流程的处理时间,以了解流程是否因变更而有所改善。如果减少处理时间,则该过程已得到改善。处理时间的分布是肥尾的,因此基于平均值进行比较是不明智的。相反,我想知道在更改后观察到较低处理时间的概率是否显着高于 50%。

为更改后处理时间的随机变量,为更改前的处理时间。如果明显高于 ,那么我会说这个过程有所改进。XYP(X<Y)0.5

现在我有观察个观察观察概率nxiXmyjYP(X<Y)p^=1nmij1xi<yj

给定观察,我能对说些什么?P(X<Y)xiyj

3个回答

的问题提供了一个(很好的)标准解决方案,这被称为应力强度模型。θ=P(X<Y)

Baklizi 和 Eidous (2006)独立的情况提出了另一种非参数替代方案。这在下面描述。XY

根据定义,我们有

θ=P(X<Y)=FX(y)fY(y)dy,

其中的 CDF,f_YY 的然后,使用的样本,我们可以得到的核估计量的估计量FXXfYYXYFXfYθ

θ^=F^X(y)f^Y(y)dy.

这是使用高斯内核在以下 R 代码中实现的。

# Optimal bandwidth
h = function(x){
n = length(x)
return((4*sqrt(var(x))^5/(3*n))^(1/5))
}

# Kernel estimators of the density and the distribution
kg = function(x,data){
hb = h(data)
k = r = length(x)
for(i in 1:k) r[i] = mean(dnorm((x[i]-data)/hb))/hb
return(r )
} 

KG = function(x,data){
hb = h(data)
k = r = length(x)
for(i in 1:k) r[i] = mean(pnorm((x[i]-data)/hb))
return(r )
} 

# Baklizi and Eidous (2006) estimator
nonpest = function(dat1B,dat2B){
return( as.numeric(integrate(function(x) KG(x,dat1B)*kg(x,dat2B),-Inf,Inf)$value))  
}

# Example when X and Y are Cauchy
datx = rcauchy(100,0,1)
daty =  rcauchy(100,0,1)

nonpest(datx,daty)

为了获得的置信区间,您可以得到这个估计器的引导样本,如下所示。θ

# bootstrap
B=1000
p = rep(0,B)

for(j in 1:B){
dat1 =  sample(datx,length(datx),replace=T)
dat2 =  sample(daty,length(daty),replace=T)
p[j] = nonpest(dat1,dat2)
}

# histogram of the bootstrap sample
hist(p)

# A confidence interval (quantile type)
c(quantile(p,0.025),quantile(p,0.975))

也可以考虑其他类型的引导间隔。

您的估计等于 Mann-Whitney统计量除以(感谢 Glen!),因此等价于 Wilcoxon 秩和统计量(也称为 Wilcoxon-Mann-Whitney 统计量) : ,其中的样本大小(假设没有关系。)因此,您可以使用 Wilcoxon 测试的表格/软件并将它们转换回得到置信区间或值。p^UmnWW=U+n(n+1)2nyUp

的样本大小, =然后,渐近地,mxNm+n

W=Wm(N+1)2mn(N+1)12N(0,1)

资料来源: Hollander 和 Wolfe,非参数统计方法,大致 p。117,但可能大多数非参数统计书籍都会让你到达那里。

考虑配对差 , 然后 foriid Bernoulli 随机变量。所以二项式那么是概率和置信区间的无偏估计,假设检验可以基于二项式进行。XiYiP(XiYi<0)=pI{XiYi<0}i=1,2,..,nXXi<Yin p=P(XiYi<0)X/n