cdf_sample <- function(emp_cdf, n=1000) { emp_cdf(n) } tethai1 <- rnorm(1000, 0, 1) # eg pdf of prior guess H1 <- DiscreteDistribution(tethai1) dp <- function(alpha, H, n=1000) { s <- cdf_sample(H,n) gam=matrix(0,1,(n+1)) Ginv=matrix(0,1,n) z=matrix(0,1,n) p=matrix(0,1,n) e=rexp((n+1),rate=1) for(i in 1:(n+1)){ for(j in 1:(i)){ gam[i]=e[j]+gam[i] } } sum1=0 for(i in 1:n){ Ginv[i]=qgamma(1-((gam[i])/(gam[n+1])),shape=(alpha)/n,rate=1) sum1=Ginv[i]+sum1 } for(i in 1:n){ p[i]=(Ginv[i])/sum1 } return(sample(s, 1000, prob=p, replace=TRUE)) } dp_posterior <- function(alpha, H, X) { m <- length(X) F_m <- DiscreteDistribution(X) F_bar <- m/(m+alpha) * F_m + alpha/(m+alpha) * H dp(alpha+m, F_bar) } #reapet 5000 i=1 w=matrix(0,1,5000) while(i<=5000){ data1 <- rnorm(50,0,1) data2 <- rnorm(50,0,1) Fpost1 <- dp_posterior(1, H1, data1) Fpost2 <- dp_posterior(1, H2, data2) F1=ecdf(Fpost1) test1=F1(c(Fpost1,Fpost2)) F2=ecdf(Fpost2) test2=F2(c(Fpost1,Fpost2)) kol=max(abs((test1)-(test2))) w[i]=kol i=i+1 } #compute critical value d_{0} q=quantile(T,prob=.975) #reapet 5000 i=1 w=matrix(0,1,5000) while(i<=5000){ data1 <- rnorm(50,0,1) data2 <- rnorm(50,1,1) Fpost1 <- dp_posterior(1, H1, data1) Fpost2 <- dp_posterior(1, H2, data2) F1=ecdf(Fpost1) test1=F1(c(Fpost1,Fpost2)) F2=ecdf(Fpost2) test2=F2(c(Fpost1,Fpost2)) kol=max(abs((test1)-(test2))) w[i]=kol i=i+1 } z=0 for(i in 1:5000){ if(w[i]>=q){ z=z+1 } } power=z/5000