@[toc]
t分布
###generate data from t distribution
Ufun<-function(df=3,n=20,K=300)
{
USTAT<-NULL
for (k in 1:K){
x<-rt(n,df)
H<-NULL
for (i in 1:(n-2)){
for (j in (i+1):(n-1)){
for (k in (j+1):n){
a1<-sign(2*x[i]-x[j]-x[k])
a2<-sign(2*x[j]-x[i]-x[k])
a3<-sign(2*x[k]-x[i]-x[j])
h<-1/3*(a1+a2+a3)
H<-c(H,h)
}
}
}
Ustat<-(1/choose(n,3))*sum(H)
USTAT<-c(USTAT,Ustat)
}
hist(USTAT,border = F,col='red')
list(USTAT=USTAT,Umean=mean(USTAT),Uvar=var(USTAT))
}
tval<-Ufun(3,20,300)
t.test(tval)
qqnorm((tval$USTAT-tval$Umean)/sqrt(tval$Uvar))
abline(0,1,col=2)
结论:
- 从直方图来看,U统计量近似以0为中心对称分布;
- U统计量的QQ图可以看出:渐进正态;
- 接受原假设,即t分布是对称的;
指数分布
###generate data from exponential distribution
UfunExp<-function(lambda=1,n=20,K=300)
{
USTAT<-NULL
for (k in 1:K){
x<-rexp(n,lambda)
H<-NULL
for (i in 1:(n-2)){
for (j in (i+1):(n-1)){
for (k in (j+1):n){
a1<-sign(2*x[i]-x[j]-x[k])
a2<-sign(2*x[j]-x[i]-x[k])
a3<-sign(2*x[k]-x[i]-x[j])
h<-1/3*(a1+a2+a3)
H<-c(H,h)
}
}
}
Ustat<-(1/choose(n,3))*sum(H)
USTAT<-c(USTAT,Ustat)
}
hist(USTAT,border = F,col='red')
list(USTAT=USTAT,Umean=mean(USTAT),Uvar=var(USTAT))
}
expval<-UfunExp(2,20,300)
t.test(expval$USTAT)
qqnorm((expval$USTAT-expval$Umean)/sqrt(expval$Uvar))
abline(0,1,col=2)
结论:
- 从直方图来看,U统计量取值大部分小于0;
- U统计量的QQ图可以看出:非渐进正态;
- 拒绝原假设,即指数分布是非对称的;
网友评论