想法简友广场散文

R语言U统计量检验样本对称性

2022-03-24  本文已影响0人  Cache_wood

@[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)

结论:

  1. 从直方图来看,U统计量近似以0为中心对称分布;
  2. U统计量的QQ图可以看出:渐进正态
  3. 接受原假设,即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)

结论:

  1. 从直方图来看,U统计量取值大部分小于0;
  2. U统计量的QQ图可以看出:非渐进正态;
  3. 拒绝原假设,即指数分布是非对称的;
上一篇下一篇

猜你喜欢

热点阅读