Nothing
#' Create case studies
#'
#' This function creates the functions needed to run the various case studies.
#'
#' @param which name of the case study, or its number in the list.
#' @param which_diff ="mean", name of parameter in which data sets differ,
#' or its number in the list.
#' @param data_type ="cont", is data continuous or discrete?
#' @param n sample sizes.
#' @param nbins =50, number of bins for discrete data
#' @param funs_list list of alternative functions
#' @param ReturnCaseNames =FALSE, should list of case studies be returned?
#' @return a list of functions to create case studies
#' @export
case_studies=function(which, which_diff ="mean", data_type="cont",
n, nbins=50, funs_list, ReturnCaseNames =FALSE) {
# check if old version is assumed
if(length(which_diff)==1 &&
is.numeric(which_diff) &&
!(which_diff %in% 1:6)) {
stop("the arguments list of the function case.studies has changed.
Please check the help file or the vignette",
call.=FALSE)
}
list.of.studies=c(
"uniform", "linear", "quadratic", "uniform-betabump", "sine", "betaaa",
"beta2a", "triangular","uniformmixture", "betamixture", "normal-pure",
"normal-mix1", "normal-mix2", "normal-mix3", "normal-mix4", "gamma1",
"gamma2", "gammamixture", "exponential-mixture", "noncentral",
"uniform-linear", "uniform-quadratic", "uniform-bump",
"uniform-sine", "beta22.betaaa", "beta22.beta2a",
"uniform.uniformmixture", "uniform.betamixture",
"uniform.triangular", "double.exponential", "normal.onestretch",
"normal.t", "normal.outlier1",
"normal.outlier2", "normal.normalmixture",
"exponential.gamma", "exponential.weibull",
"exponential.bump", "chisquare.noncentral",
"gamma.gammamixture", "normal.t.est", "exponential.weibull.est",
"trunc.exponential.linear.est", "exponential.gamma.est",
"normal.cauchy.est",
"betaa1.betaab.est", "betaa1.betaaa.est",
"trans-beta.est", "double.exponential.est",
"pareto.est", "betamixture1.est",
"betamixture2.est", "betamixture3.est", "normalmixture.est",
"laplace1.est", "laplace2.est","truncexp1.est",
"truncexp2.est", "gammamixture1.est", "gammamixture2.est"
)
if(ReturnCaseNames) return(list.of.studies)
if(is.numeric(which[1])) which=list.of.studies[which]
alltypes=c("mean", "variance", "skewness", "kurtosis", "mixed")
if(is.numeric(which_diff[1]))
which_diff=alltypes[which_diff]
if(missing(n)) {
n=Rgof::case_studies_sample_sizes[[data_type]]
if(which %in% list.of.studies[1:20])
n=n[[1]][which, which_diff]
else n=n[[2]][which]
}
if(which %in% list.of.studies[1:20]) {
if(!(which_diff%in%alltypes[1:4]))
stop("for case studies #1-20 which_diff must be mean, variance, skewness, or kurtosis, or 1-4",
call.=FALSE)
if(missing(funs_list)) {
funs = Rgof::funs_list[[data_type]][[which]][[which_diff]]
} else {
funs = funs_list
}
ralt = function(dummy=NA) funs$random(n)
palt = function(x, dummy=NA) funs$cdf(x)
}
phat=function(x) -99
finv <- function(p, f, Ra) {
y=sapply(p, function(pp) {
if (pp <= 0) return(-Inf)
if (pp >= 1) return(Inf)
uniroot(
function(x) f(x) - pp,
interval = Ra
)$root
})
if (f(0) == 0) y[p == 0] <- 0
if (f(1) == 1) y[p == 1] <- 1
y
}
collect_case <- function(env) {
keep <- c("pnull", "dnull", "rnull", "palt", "ralt", "TSextra",
"phat", "pnullD", "rnullD", "bins", "Ra")
present <- vapply(keep, exists, logical(1), envir=env, inherits=FALSE)
mget(keep[present], envir=env, inherits=FALSE)
}
study <- switch(
which,
# 1
"uniform" = (function() {
pnull=function(x) punif(x)
dnull=function(x) dunif(x)
rnull=function() runif(n)
TSextra=list(qnull=function(x) qunif(x))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 2
"linear" = (function() {
pnull=function(x) {
ifelse(x<0, 0, ifelse(x>1, 1, 0.3*x^2+0.7*x))
}
rnull=function() 10/6*(-0.7+sqrt(0.49+1.2*runif(n)))
dnull=function(x)
ifelse(x<0, 0, ifelse(x>1, 0, 0.6*x+0.7))
TSextra = list(qnull = function(x)
(-7/6+sqrt((7/6)^2+10/3*x)))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 3
"quadratic" = (function() {
pnull=function(x) {
a=-0.5;
ifelse(x<0, 0, ifelse(x>1, 1, a*(x-1/2)^3+(1-a/4)*x+a/8))
}
rnull=function() {
y=rep(0, n)
for(i in 1:n) {
theta <- acos(4 * (1 - 2*runif(1)) / (3*sqrt(3))) / 3
y[i]=(1/2 + sqrt(3) * cos(theta - 2*pi*(0:2)/3))[2]
}
y
}
dnull=function(x) {
a=-0.5;
ifelse(x<0, 0, ifelse(x>1, 0, 3*a*(x-1/2)^2+1-a/4))
}
TSextra = list(qnull = function(x)
finv(x, pnull, c(0, 1)))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 4
"uniform-betabump" = (function() {
pnull=function(x) 0.825*punif(x)+0.175*pbeta(x, 25, 25)
rnull=function() c(runif(floor(n*0.825)),
rbeta(ceiling(n*0.175), 25, 25))
dnull=function(x) 0.825*dunif(x)+0.175*dbeta(x, 25, 25)
TSextra = list(qnull = function(x) finv(x, pnull, c(0, 1)))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 5
"sine" = (function() {
pnull=function(x)
ifelse(x<0, 0, ifelse(x>1, 1, (1-cos(pi*x))/2))
rnull=function() acos(2*runif(n)-1)/pi
dnull=function(x)
ifelse(x<0, 0, ifelse(x>1, 0, pi*sin(pi*x)/2))
TSextra=list(qnull = function(x) finv(x, pnull, c(0, 1)))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 6
"betaaa" = (function() {
pnull=function(x) pbeta(x, 3, 3)
rnull=function() rbeta(n, 3, 3)
dnull=function(x) dbeta(x, 3, 3)
TSextra=list(qnull = function(x) qbeta(x, 3, 3))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 7
"beta2a" = (function() {
pnull=function(x) pbeta(x, 2, 2.5)
rnull=function() rbeta(n, 2, 2.5)
dnull=function(x) dbeta(x, 2, 2.5)
TSextra=list(qnull = function(x) qbeta(x, 2, 2.5))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 8
"triangular" = (function() {
pnull=function(x) {
y=0.65*punif(x)+0.35*ifelse(x<0.5, 2*x^2, 1-2*(1-x)^2)
ifelse(x<0, 0, ifelse(x>1, 1, y))
}
rnull=function() {
y=runif(0.35*n)
y=ifelse(y<1/2, sqrt(y/2), 1-sqrt((1-y)/2))
c(y, runif(0.65*n))
}
dnull=function(x) {
y=0.65*dunif(x)+0.35*ifelse(x<0.5, 4*x, 4-4*x)
ifelse(x<0, 0, ifelse(x>1, 0,y))
}
TSextra=list(qnull=function(x) ifelse(x<1/2, (-0.65+sqrt(0.65^2+8*0.35*x))/4/0.35,
(2.05-sqrt(2.05^2-4*0.7*(0.35+x)))/1.4))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 9
"uniformmixture" = (function() {
pnull=function(x) (punif(x, 0, 1/3)+2*punif(x,1/3,2/3)+3*punif(x, 2/3, 1))/6
rnull=function() c(runif(n/6, 0, 1/3), runif(n/3,1/3,2/3), runif(n/2, 2/3, 1))
dnull=function(x) (dunif(x, 0, 1/3)+2*dunif(x,1/3,2/3)+3*dunif(x, 2/3, 1))/6
TSextra=list(
qnull=function(x) {
y=2*x
y[x>1/6]=x+1/6
y[x>1/2]=(2*x+1)/3
y[x<0]=0
y[x>1]=1
y
}
)
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 10
"betamixture" = (function() {
pnull=function(x) (punif(x)+pbeta(x, 2, 2))/2
rnull=function() c(runif(n/2), rbeta(n/2, 2, 2))
dnull=function(x) (dunif(x)+dbeta(x, 2, 2))/2
TSextra=list(qnull =function(x) {
finv(x, pnull, c(0, 1))
})
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 11
"normal-pure" = (function() {
pnull=function(x) pnorm(x)
rnull=function() rnorm(n)
dnull=function(x) dnorm(x)
TSextra=list(qnull=function(x) qnorm(x))
bins=seq(-3, 3, length=nbins+1)
bins[1]=-Inf;bins[nbins+1]=Inf
collect_case(environment())
})(),
# 12
"normal-mix1" = (function() {
pnull=function(x) (pnorm(x)+pnorm(x, 0, 3))/2
rnull=function() c(rnorm(floor(n/2)), rnorm(ceiling(n/2), 0, 3))
dnull=function(x) (dnorm(x)+dnorm(x, 0, 3))/2
TSextra=list(qnull=function(x) finv(x, pnull, c(-20, 20)))
bins=seq(-12, 12, length=nbins+1)
bins[1]=-Inf;bins[nbins+1]=Inf
collect_case(environment())
})(),
# 13
"normal-mix2" = (function() {
pnull=function(x) (pnorm(x)+pnorm(x, 1))/2
rnull=function() c(rnorm(floor(n/2)), rnorm(ceiling(n/2), 1))
dnull=function(x) (dnorm(x)+dnorm(x, 1))/2
TSextra=list(qnull=function(x) finv(x, pnull, c(-20, 20)))
bins=seq(-12, 12, length=nbins+1)
bins[1]=-Inf;bins[nbins+1]=Inf
collect_case(environment())
})(),
# 14
"normal-mix3" = (function() {
pnull=function(x) pnorm(x, -3)/4+pnorm(x)/2+pnorm(x, 5)/4
rnull=function() c(rnorm(n/4, -3), rnorm(n/2), rnorm(n/4,5))
dnull=function(x) dnorm(x, -3)/4+dnorm(x)/2+dnorm(x, 5)/4
TSextra=list(qnull=function(x) finv(x, pnull, c(-20, 20)))
bins=seq(-3, 4, length=nbins+1)
bins[1]=-Inf;bins[nbins+1]=Inf
collect_case(environment())
})(),
# 15
"normal-mix4" = (function() {
pnull=function(x) (2*pnorm(x)+pnorm(x, 0, 3)+pnorm(x, 0, 5))/4
rnull=function() c(rnorm(n/2), rnorm(n/4, 0, 3), rnorm(n/4, 0, 5))
dnull=function(x) (2*dnorm(x)+dnorm(x, 0, 3)+dnorm(x, 0, 5))/4
TSextra=list(qnull=function(x) finv(x, pnull, c(-50, 50)))
bins=seq(-25, 20, length=nbins+1)
bins[1]=-Inf;bins[nbins+1]=Inf
collect_case(environment())
})(),
# 16
"gamma1" = (function() {
pnull=function(x) 0.2*pexp(x, 1)+0.8*pgamma(x, 2, 0.5)
rnull=function() c(rexp(0.2*n, 1), rgamma(0.8*n, 2, 0.5))
dnull=function(x) 0.2*dexp(x, 1)+0.8*dgamma(x, 2, 0.5)
TSextra=list(qnull=function(x) finv(x, pnull, c(0, 100)))
bins=seq(0, 25, length=nbins+1)
bins[nbins+1]=Inf
collect_case(environment())
})(),
# 17
"gamma2" = (function() {
pnull=function(x) 0.2*pgamma(x, 2, 2)+0.8*pgamma(x, 3, 5)
rnull=function() c(rgamma(0.2*n, 2, 2), rgamma(0.8*n, 3, 5))
dnull=function(x) 0.2*dgamma(x, 2, 2)+0.8*dgamma(x, 3, 5)
TSextra=list(qnull=function(x) finv(x, pnull, c(0, 40)))
bins=seq(0, 5, length=nbins+1)
bins[nbins+1]=Inf
collect_case(environment())
})(),
# 18
"gammamixture" = (function() {
pnull=function(x) (pgamma(x, 2, 1)+pgamma(x, 10,1))/2
rnull=function() c(rgamma(n/2, 2, 1), rgamma(n/2, 10,1))
dnull=function(x) (dgamma(x, 2, 1)+dgamma(x, 10,1))/2
TSextra=list(qnull=function(x) finv(x, pnull, c(0, 100)))
bins=seq(0, 30, length=nbins+1)
bins[nbins+1]=Inf
collect_case(environment())
})(),
# 19
"exponential-mixture" = (function() {
pnull=function(x) (pexp(x, 1)+pexp(x, 3))/2
rnull=function() c(rexp(floor(n/2), 1),
rexp(ceiling(n/2), 3))
dnull=function(x) (dexp(x, 1)+dexp(x, 3))/2
TSextra=list(qnull=function(x) finv(x, pnull, c(0, 30)))
bins=seq(0, 8, length=nbins+1)
bins[nbins+1]=Inf
collect_case(environment())
})(),
# 20
"noncentral" = (function() {
pnull=function(x)
ifelse(x< 25, pchisq(x, 5, 0.875)/pchisq(25, 5, 0.875), 1)
dnull=function(x)
ifelse(x< 25, dchisq(x, 5, 0.875)/pchisq(25, 5, 0.875), 0)
rnull=function() {
x=rchisq(1.1*n, 5, 0.875)
x=x[x<25]
x[1:n]
}
TSextra=list(
qnull=function(x)
qchisq(x*pchisq(25,5,0.875), 5, 0.875)
)
bins=seq(0, 25, length=nbins+1)
bins[nbins+1]=Inf
collect_case(environment())
})(),
# 21
"uniform-linear" = (function() {
rnull=function() runif(n)
dnull=function(x) dunif(x)
pnull=function(x) punif(x)
TSextra=list(qnull=function(x) qunif(x))
ralt=function(a=0.3) {
if(a==0) return(runif(n))
(-(1-a)+sqrt((1-a)^2+4*a*runif(n)))/2/a
}
palt=function(x, a=0.3) {
if(a==0) return(punif(x))
ifelse(x<0, 0,
ifelse(x>1, 1,
a*x^2+(1-a)*x))
}
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 22
"uniform-quadratic" = (function() {
rnull=function() runif(n)
dnull=function(x) dunif(x)
pnull=function(x) punif(x)
apar=ifelse(data_type=="cont", -1.2, -1)
ralt=function(a=apar) {
if(a==0) return(runif(n))
x=rep(0,n)
for(i in 1:n) {
repeat {
z=runif(1)
if(runif(1)<3*a*(z-1/2)^2+1-a/4) {
x[i]=z
break
}
}
}
x
}
palt=function(x, a=apar) {
if(a==0) return(punif(x))
ifelse(x<0, 0,
ifelse(x>1, 1,
a*(x-0.5)^3+x-a*x/4+a/8))
}
TSextra=list(qnull=function(x) qunif(x))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 23
"uniform-bump" = (function() {
rnull=function() runif(n)
dnull=function(x) dunif(x)
pnull=function(x) punif(x)
palt=function(x, alpha=0.125) (1-alpha)*punif(x)+alpha*pnorm(x, 0.5, 0.05)
ralt=function(alpha=0.125) c(runif(floor(n*(1-alpha))),
rnorm(ceiling(n*alpha), 0.5, 0.05))
TSextra=list(qnull=function(x) qunif(x))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 24
"uniform-sine" = (function() {
rnull=function() runif(n)
dnull=function(x) dunif(x)
pnull=function(x) punif(x)
apar=ifelse(data_type=="cont", 0.5, 0.4)
palt=function(x, a=apar) {
if(a==0) return(punif(x))
ifelse(x<0, 0,
ifelse(x>1, 1,
x-a*cos(4*pi*x)/4/pi+a/4/pi))
}
ralt=function(a=apar) {
if(a==0) return(runif(n))
y = NULL
repeat {
z=runif(n)
I=ifelse(runif(n)<1+a*sin(4*pi*z), TRUE, FALSE)
y = c(y, z[I])
if(length(y)>n) break
}
y[1:n]
}
TSextra=list(qnull=function(x) qunif(x))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 25
"beta22.betaaa" = (function() {
apar=ifelse(data_type=="cont", 2.7, 2.85)
rnull=function() rbeta(n, 2, 2)
dnull=function(x) dbeta(x, 2, 2)
pnull=function(x) pbeta(x, 2, 2)
palt=function(x, a=apar) pbeta(x, a, a)
ralt=function(a=apar) rbeta(n, a, a)
TSextra=list(qnull=function(x) qbeta(x, 2, 2))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 26
"beta22.beta2a" = (function() {
apar=2.35
rnull=function() rbeta(n, 2, 2)
dnull=function(x) dbeta(x, 2, 2)
pnull=function(x) pbeta(x, 2, 2)
palt=function(x, a=apar) pbeta(x, 2, a)
ralt=function(a=apar) rbeta(n, 2, a)
TSextra=list(qnull=function(x) qbeta(x, 2, 2))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 27
"uniform.uniformmixture" = (function() {
apar=ifelse(data_type=="cont", 0.57, 0.55)
rnull=function() runif(n)
dnull=function(x) dunif(x)
pnull=function(x) punif(x)
palt=function(x, a=apar) a*punif(x, 0, 0.5)+(1-a)*punif(x, 0.5, 1)
ralt=function(a=apar)
y = ifelse(runif(n)<a, runif(n, 0, 0.5), runif(n, 0.5, 1))
TSextra=list(qnull=function(x) qunif(x))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 28
"uniform.betamixture" = (function() {
apar=0.5
rnull=function() runif(n)
dnull=function(x) dunif(x)
pnull=function(x) punif(x)
palt=function(x, a=apar) (1-a)*punif(x)+a*pbeta(x, 2, 2)
ralt=function(a=apar) c(runif(floor((1-a)*n)), rbeta(ceiling(a*n), 2, 2))
TSextra=list(qnull=function(x) qunif(x))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 29
"uniform.triangular" = (function() {
apar=0.44
rnull=function() runif(n)
dnull=function(x) dunif(x)
pnull=function(x) punif(x)
palt=function(x, a=apar) {
if(a==0) return(punif(x))
ifelse(x<0, 0,
ifelse(x>1, 1,
(1-a)*x+a*ifelse(x<1/2, 2*x^2, 4*x-2*x^2-1)))
}
ralt=function(a=apar) {
y=runif(ceiling(a*n))
y=ifelse(y<1/2, sqrt(y/2), 1-sqrt((1-y)/2))
c(y, runif(floor((1-a)*n)))
}
TSextra=list(qnull=function(x) qunif(x))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 30
"double.exponential" = (function() {
apar=ifelse(data_type=="cont", 1.2, 1.3)
rnull=function() ifelse(runif(n)<0.5,-rexp(n, 1), rexp(n, 1))
dnull=function(x) dexp(abs(x), 1)/2
pnull=function(x) ifelse(x<0,(1-pexp(-x, 1))/2,1/2+pexp(x, 1)/2)
palt=function(x, a=apar) ifelse(x<0,(1-pexp(-x, a))/2,1/2+pexp(x, a)/2)
ralt=function(a=apar) ifelse(runif(n)<0.5,-rexp(n, a), rexp(n, a))
TSextra=list(qnull=function(x) ifelse(x<1/2, log(2*x), -log(2*(1-x))))
bins=seq(-10, 10, length=nbins+1)
bins[1]=-Inf;bins[nbins+1]=Inf
collect_case(environment())
})(),
# 31
"normal.onestretch" = (function() {
apar=ifelse(data_type=="cont", 1.25, 1.35)
rnull=function() rnorm(n)
dnull=function(x) dnorm(x)
pnull=function(x) pnorm(x)
palt=function(x, a=apar) ifelse(x<0, pnorm(x), pnorm(x, 0, a))
ralt=function(a=apar) c(-abs(rnorm(n/2)), abs(rnorm(n/2, 0,a)))
TSextra=list(qnull=function(x) qnorm(x))
bins=seq(-4, 4, length=nbins+1)
bins[1]=-Inf;bins[nbins+1]=Inf
collect_case(environment())
})(),
# 32
"normal.t" = (function() {
apar=ifelse(data_type=="cont", 6, 5)
rnull=function() rnorm(n)
dnull=function(x) dnorm(x)
pnull=function(x) pnorm(x)
palt=function(x, a=apar) pt(x, a)
ralt=function(a=apar) rt(n, a)
TSextra=list(qnull=function(x) qnorm(x))
bins=seq(-10, 10, length=nbins+1)
bins[1]=-Inf;bins[nbins+1]=Inf
collect_case(environment())
})(),
# 33
"normal.outlier1" = (function() {
apar=ifelse(data_type=="cont", 0.015, 0.085)
rnull=function() rnorm(n)
dnull=function(x) dnorm(x)
pnull=function(x) pnorm(x)
palt=function(x, a=apar) (1-a)*pnorm(x)+a*pnorm(x, 3)
ralt=function(a=apar)
c(rnorm(floor((1-a)*n)), rnorm(ceiling(a*n), 3))
TSextra=list(qnull=function(x) qnorm(x))
bins=seq(-3, 5, length=nbins+1)
bins[1]=-Inf;bins[nbins+1]=Inf
collect_case(environment())
})(),
# 34
"normal.outlier2" = (function() {
apar=ifelse(data_type=="cont", 0.012, 0.03)
rnull=function() rnorm(n)
dnull=function(x) dnorm(x)
pnull=function(x) pnorm(x)
palt=function(x, a=apar)
(1-2*a)*pnorm(x)+a*punif(x, -5, -3)++a*punif(x, 3, 5)
ralt=function(a=apar) {
n1=floor(a*n)
n2=ceiling(a*n)
n0=n-n1-n2
c(rnorm(n0), runif(n1, -5, -3), runif(n2, 3, 5))
}
TSextra=list(qnull=function(x) qnorm(x))
bins=seq(-5, 5, length=nbins+1)
bins[1]=-Inf;bins[nbins+1]=Inf
collect_case(environment())
})(),
# 35
"normal.normalmixture" = (function() {
apar=ifelse(data_type=="cont", 0.62, 0.68)
rnull=function() rnorm(n)
dnull=function(x) dnorm(x)
pnull=function(x) pnorm(x)
palt=function(x, a=apar) (pnorm(x,-a)+pnorm(x, a))/2
ralt=function(a=apar) c(rnorm(n/2, -a), rnorm(n/2, a))
TSextra=list(qnull=function(x) qnorm(x))
bins=seq(-3, 3, length=nbins+1)
bins[1]=-Inf;bins[nbins+1]=Inf
collect_case(environment())
})(),
# 36
"exponential.gamma" = (function() {
apar=ifelse(data_type=="cont", 1.22, 1.28)
rnull=function() rexp(n, 1)
dnull=function(x) dexp(x, 1)
pnull=function(x) pexp(x, 1)
palt=function(x, a=apar) pgamma(x, 1, a)
ralt=function(a=apar) rgamma(n, 1, a)
TSextra=list(qnull=function(x) qexp(x, 1))
bins=seq(0, 10, length=nbins+1)
bins[nbins+1]=Inf
collect_case(environment())
})(),
# 37
"exponential.weibull" = (function() {
apar=ifelse(data_type=="cont", 1.22, 1.3)
rnull=function() rexp(n, 1)
dnull=function(x) dexp(x, 1)
pnull=function(x) pexp(x, 1)
palt=function(x, a=apar) pweibull(x, 1, a)
ralt=function(a=apar) rweibull(n, 1, a)
TSextra=list(qnull=function(x) qexp(x, 1))
bins=seq(0, 10, length=nbins+1)
bins[nbins+1]=Inf
collect_case(environment())
})(),
# 38
"exponential.bump" = (function() {
apar=0.124
rnull=function() rexp(n, 1)
dnull=function(x) dexp(x, 1)
pnull=function(x) pexp(x, 1)
palt=function(x, a=apar) (1-a)*pexp(x, 1)+a*pnorm(x, 0.5, 0.05)
ralt=function(a=apar) c(rexp(floor((1-a)*n), 1), rnorm(ceiling(a*n), 0.5, 0.05))
TSextra=list(qnull=function(x) qexp(x, 1))
bins=seq(0, 10, length=nbins+1)
bins[nbins+1]=Inf
collect_case(environment())
})(),
# 39
"chisquare.noncentral" = (function() {
apar=ifelse(data_type=="cont", 0.6, 3)
rnull=function() rchisq(n, 5)
dnull=function(x) dchisq(x, 5)
pnull=function(x) pchisq(x, 5)
palt=function(x, a=apar) pchisq(x, 5, a)
ralt=function(a=apar) rchisq(n, 5, a)
TSextra=list(qnull=function(x) qchisq(x, 5))
bins=seq(0, 25, length=nbins+1)
bins[nbins+1]=Inf
collect_case(environment())
})(),
# 40
"gamma.gammamixture" = (function() {
apar=0.275
rnull=function() rgamma(n, 2, 3)
dnull=function(x) dgamma(x, 2, 3)
pnull=function(x) pgamma(x, 2, 3)
palt=function(x, a=apar) (1-a)*pgamma(x, 2, 3)+a*pgamma(x, 3, 3)
ralt=function(a=apar) c(rgamma(floor((1-a)*n), 2, 3), rgamma(ceiling(a*n), 3, 3))
TSextra=list(qnull=function(x) qgamma(x, 2, 3))
bins=seq(0, 3, length=nbins+1)
bins[nbins+1]=Inf
collect_case(environment())
})(),
# 41
"normal.t.est" = (function() {
rnull = function(p=c(0,1)) rnorm(n, p[1], p[2])
dnull = function(x, p=c(0,1)) dnorm(x, p[1], p[2])
pnull = function(x, p=c(0,1)) pnorm(x, p[1], p[2])
palt=function(x, a=5) pt(x, a)
ralt = function(a=5) x=rt(1.2*n, a)[1:n]
phat = function(x) c(mean(x), sd(x))
TSextra=list(qnull=function(x, p=c(0,1)) qnorm(x, p[1], p[2]))
bins=seq(-5, 5, length=nbins+1)
bins[1]=-Inf;bins[nbins+1]=Inf
pnullD=function(p=c(0,1)) pnull(bins[-1],p)
rnullD=function(p=c(0,1))
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})(),
# 42
"exponential.weibull.est" = (function() {
pnull = function(x, p=1) pexp(x, p)
dnull = function(x, p=1) dexp(x, p)
rnull = function(p=1) rexp(n, p)
palt=function(x, a) pweibull(x, a, 1)
ralt = function(a=1.2) rweibull(n, a, 1)
phat = function(x) 1/mean(x)
TSextra=list(qnull = function(x, p=1) qexp(x, p))
bins=seq(0, 10, length=nbins+1)
bins[nbins+1]=Inf
pnullD=function(p=1) pnull(bins[-1],p)
rnullD=function(p=1)
c(rmultinom(1, n, diff(pnull(bins, p))))
bins=seq(0, 3.5, length=nbins+1)
bins[nbins+1]=Inf
collect_case(environment())
})(),
# 43
"trunc.exponential.linear.est" = (function() {
pnull = function(x, p=1) {
y=(1-exp(-x*p))/(1-exp(-p))
ifelse(x<0, 0, ifelse(x>1, 1, y))
}
dnull = function(x, p=1) {
y=p*exp(-x*p)/(1-exp(-p))
ifelse(x<0, 0, ifelse(x>1, 0, y))
}
TSextra=list(qnull = function(x, p=1) -log(1 - x*(1-exp(-p)))/p)
rnull = function(p=1) {
x = NULL
repeat {
x = c(x, rexp(n, p))
x = x[x < 1]
if (length(x) > n)
break
}
x[1:n]
}
palt=function(x, a=-1.75) {
if(a==0) return(punif(x))
ifelse(x<0, 0,
ifelse(x>1, 1,(1-a)*x+a*x^2))
}
ralt = function(a=-1.75) {
if(a==0) return(runif(n))
y=(a-1+sqrt((1-a)^2+4*a* runif(n)))/2/a
}
phat = function(x) {
n = length(x)
s = sum(x)
p = n/s
repeat {
o = p
t = exp(-o)
l1 = n/o - s - n*t/(1-t)
l2 = (-n/o^2 + n * t/(1-t)^2)
p = o - l1/l2
if(p<0) return(0.001)
if (abs(p - o) < 0.01)
break
}
p
}
bins=seq(0, 1, length=nbins+1)
pnullD=function(p=1) pnull(bins[-1],p)
rnullD=function(p=1)
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})(),
# 44
"exponential.gamma.est" = (function() {
pnull = function(x, p=1) pexp(x, p)
dnull = function(x, p=1) dexp(x, p)
TSextra=list(qnull = function(x, p=1) qexp(x, p))
rnull = function(p=1) rexp(n, p)
palt=function(x, a=1.2) pgamma(x, a, 1)
ralt = function(a=1.2) rgamma(n, a, 1)
phat = function(x) 1/mean(x)
bins=seq(0, 10, length=nbins+1)
bins[nbins+1]=Inf
pnullD=function(p=1) pnull(bins[-1],p)
rnullD=function(p=1)
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})(),
# 45
"normal.cauchy.est" = (function() {
xcut=ifelse(data_type=="cont", 3, 3.25)
pnull = function(x, s=1) {
y=(pnorm(x, 0, s)-pnorm(-xcut, 0, s))/(2*pnorm(xcut, 0, s)-1)
y[x<(-xcut)]=0
y[x>xcut]=1
y
}
dnull = function(x, s=1) {
y=dnorm(x, 0, s)/(2*pnorm(xcut, 0, s)-1)
y[x<(-xcut)]=0
y[x>xcut]=0
y
}
TSextra = list(
qnull = function(x, s=1) {
lo <- pnorm(-xcut, 0, s)
hi <- pnorm( xcut, 0, s)
qnorm(lo + x*(hi-lo), 0, s)
}
)
rnull = function(s=1) {
x=rnorm(1.2*n, 0, s)
x=x[abs(x)<xcut]
x[1:n]
}
palt=function(x, a=1) {
y=(pcauchy(x, 0, a)-pcauchy(-xcut, 0, a))/(2*pcauchy(xcut, 0, a)-1)
y[x<(-xcut)]=0
y[x>xcut]=1
y
}
ralt = function(a=1) {
x=rcauchy(2*n, 0, a)
x=x[abs(x)<xcut]
x[1:n]
}
bins=seq(-xcut, xcut, length=nbins+1)
phat = function(x) {
ll=function(s, x) -sum(log(dnorm(x,0,s))-log(2*pnorm(xcut,0,s)-1))
optimize(ll, c(0,20), x=x)$minimum
}
pnullD=function(s=1) pnull(bins[-1],s)
rnullD=function(s=1)
c(rmultinom(1, n, diff(pnull(bins, s))))
collect_case(environment())
})(),
# 46
"betaa1.betaab.est" = (function() {
pnull = function(x, s=1) pbeta(x, s, 1)
dnull = function(x, s=1) dbeta(x, s, 1)
TSextra=list(qnull = function(x, s=1) qbeta(x, s, 1))
rnull = function(s=1) rbeta(n, s, 1)
palt=function(x, a=1.2) pbeta(x, 1, a)
ralt = function(a=1.2) rbeta(n, 1, a)
phat = function(x) {
ol=mean(x)/(1-mean(x))
t=sum(log(x))
n=length(x)
repeat {
nw=2*ol+t*ol^2/n
if(abs(ol-nw)<1e-3) break
ol=nw
}
nw
}
bins=seq(0, 1, length=nbins+1)
pnullD=function(s=1) pnull(bins[-1], s)
rnullD=function(s=1)
c(rmultinom(1, n, diff(pnull(bins, s))))
collect_case(environment())
})(),
# 47
"betaa1.betaaa.est" = (function() {
pnull = function(x, s=1) pbeta(x, s, 1)
dnull = function(x, s=1) dbeta(x, s, 1)
TSextra=list(qnull = function(x, s=1) qbeta(x, s, 1))
rnull = function(s=1) rbeta(n, s, 1)
palt=function(x, a=1.2) pbeta(x, a, a)
ralt = function(a=1.2) rbeta(n, a, a)
phat = function(x) -length(x)/sum(log(x))
pnullD=function(s=1) pnull(bins[-1], s)
rnullD=function(s=1)
c(rmultinom(1, n, diff(pnull(bins, s))))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 48
"trans-beta.est" = (function() {
#g(x)=(exp(x)-1)/(e-1);g(X)~Beta(a,1)
dnull=function(x, theta=1) {
dens <- theta * exp(x) / (exp(1) - 1) *
((exp(x) - 1) / (exp(1) - 1))^(theta - 1)
dens[x < 0 | x > 1] <- 0
dens
}
pnull=function(x, theta=1) {
p <- ((exp(x) - 1) / (exp(1) - 1))^theta
p[x <= 0] <- 0
p[x >= 1] <- 1
p
}
rnull=function(theta=1) {
log(1+(exp(1)-1)*runif(n)^(1/theta))
}
palt <- function(x, a=2.75) {
ifelse(x <= 0, 0,
ifelse(x >= 1, 1,
((exp(a * x) - 1) / (exp(a) - 1))))
}
ralt <- function(a=2.75)
log(1 + (exp(a)-1)*runif(n))/a
TSextra=list(qnull=function(x, theta=1) {
log(1+(exp(1) - 1)*x^(1/theta))
})
phat <- function(x) {
-length(x)/sum(log((exp(x)-1)/(exp(1)-1)))
}
pnullD=function(p=1) pnull(bins[-1], p)
rnullD=function(p=1)
c(rmultinom(1, n, diff(pnull(bins, p))))
bins=seq(0, 1, length=nbins+1)
collect_case(environment())
})(),
# 49
"double.exponential.est" = (function() {
apar=ifelse(data_type=="cont", 1.3, 1.4)
rnull=function(a=1) ifelse(runif(n)<0.5,-rexp(n, a), rexp(n, a))
dnull=function(x, a=1) a*exp(-a*abs(x))/2
pnull=function(x, a=1)
ifelse(x<0, exp(a*x)/2, 1-exp(-a*x)/2)
palt=function(x, a=apar) ifelse(x<0, (1-pgamma(-x, a, 1))/2, (1+pgamma(x, a, 1))/2)
ralt=function(a=apar) ifelse(runif(n)<1/2, -rgamma(n, a, 1), rgamma(n, a, 1))
TSextra=list(qnull=function(x, a=1) {
x[x<0.00001]=0.00001
x[x>1-0.00001]=1-0.00001
ifelse(x<1/2, log(2*x)/a, -log(2*(1-x))/a)
})
phat=function(x) 1/mean(abs(x))
bins=seq(-10, 10, length=nbins+1)
bins[1]=-Inf;bins[nbins+1]=Inf
pnullD=function(p=1) pnull(bins[-1],p)
rnullD=function(p=1)
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})(),
# 50
"pareto.est" = (function() {
dnull <- function(x, alpha=10) {
ifelse(x<0, 0, alpha/(x+1)^(alpha + 1))
}
pnull <- function(x, alpha=10) ifelse(x<0, 0, 1-(1/(x+1))^alpha)
TSextra=list(qnull = function(x, alpha=10) {
(1 - x)^(-1 / alpha)-1})
rnull <- function(alpha=10) runif(n)^(-1 / alpha)-1
palt=function(x, a=1.07) pgamma(x, a, 8)
ralt=function(a=1.07) rgamma(n, a, 8)
phat=function(x) length(x)/sum(log(x+1))
bins=seq(0, 1, length=nbins+1)
bins[nbins+1]=Inf
pnullD=function(p=10) pnull(bins[-1],p)
rnullD=function(p=10)
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})(),
# 51
"betamixture1.est" = (function() {
pnull = function(x, a=1/2) a*pbeta(x, 1, 1)+(1-a)*pbeta(x, 2, 2)
dnull = function(x, a=1/2) a*dbeta(x, 1, 1)+(1-a)*dbeta(x, 2, 2)
TSextra=list(qnull = function(x, a=1/2) finv(x, pnull, c(0, 1)))
rnull = function(a=1/2) c(rbeta(floor(a*n), 1, 1), rbeta(ceiling((1-a)*n), 2, 2))
palt=function(x, a=0.5) a*pbeta(x, 1, 1)+(1-a)*pbeta(x, 5, 5)
ralt = function(a=0.5)
c(rbeta(floor(a*n), 1, 1), rbeta(ceiling((1-a)*n), 5, 5))
phat = function(x) Rgof::mlemix(dbeta(x, 1 ,1), dbeta(x, 2, 2))
bins=seq(0, 1, length=nbins+1)
pnullD=function(p=1/2) pnull(bins[-1],p)
rnullD=function(p=1/2)
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})(),
# 52
"betamixture2.est" = (function() {
pnull = function(x, a=1/2) a*pbeta(x, 3, 1)+(1-a)*pbeta(x, 1, 3)
dnull = function(x, a=1/2) a*dbeta(x, 3, 1)+(1-a)*dbeta(x, 1, 3)
TSextra=list(qnull = function(x, a=1/2) finv(x, pnull, c(0, 1)))
rnull = function(a=1/2) c(rbeta(floor(a*n), 3, 1), rbeta(ceiling((1-a)*n), 1, 3))
palt=function(x, a=0.5) a*pbeta(x, 2.4, 1)+(1-a)*pbeta(x, 1, 2.4)
ralt = function(a=0.5) c(rbeta(floor(a*n), 2.4, 1), rbeta(ceiling((1-a)*n), 1, 2.4))
phat = function(x) Rgof::mlemix(dbeta(x, 3 ,1), dbeta(x, 1, 3))
bins=seq(0, 1, length=nbins+1)
pnullD=function(p=1/2) pnull(bins[-1],p)
rnullD=function(p=1/2)
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})(),
# 53
"betamixture3.est" = (function() {
pnull = function(x, a=1/2) a*pbeta(x, 5, 2)+(1-a)*pbeta(x, 2, 5)
dnull = function(x, a=1/2) a*dbeta(x, 5, 2)+(1-a)*dbeta(x, 2, 5)
TSextra=list(qnull = function(x, a=1/2) finv(x, pnull, c(0, 1)))
rnull = function(a=1/2) c(rbeta(floor(a*n), 5, 2), rbeta(ceiling((1-a)*n), 2, 5))
palt=function(x, a=0.5) a*pbeta(x, 4.7, 2.1)+(1-a)*pbeta(x, 2.1, 4.7)
ralt = function(a=0.5) c(rbeta(floor(a*n), 4.7, 2.1), rbeta(ceiling((1-a)*n), 2.1, 4.7))
phat = function(x) Rgof::mlemix(dbeta(x, 5 ,2), dbeta(x, 2, 5))
bins=seq(0, 1, length=nbins+1)
pnullD=function(p=1/2) pnull(bins[-1],p)
rnullD=function(p=1/2)
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})(),
# 54
"normalmixture.est" = (function() {
apar=2.3
pnull = function(x, a=1/2) a*pnorm(x)+(1-a)*pnorm(x, 2)
dnull = function(x, a=1/2) a*dnorm(x)+(1-a)*dnorm(x, 2)
TSextra=list(qnull = function(x, a=1/2) finv(x, pnull, c(-10, 10)))
rnull = function(a=1/2) c(rnorm(floor(a*n)), rnorm(ceiling((1-a)*n), 2))
palt=function(x, a=2.3) 0.5*pnorm(x)+0.5*pnorm(x, a)
ralt = function(a=2.3) c(rnorm(n/2), rnorm(n/2, a))
phat = function(x) Rgof::mlemix(dnorm(x), dnorm(x, 2))
bins=seq(-3, 5, length=nbins+1)
bins[1]=-Inf
bins[nbins+1]=Inf
pnullD=function(p=1/2) pnull(bins[-1],p)
rnullD=function(p=1/2)
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})(),
#55
"laplace1.est" = (function() {
dnull=function(x, p=c(0, 1))
exp(-abs(x - p[1]) / p[2]) / (2 * p[2])
pnull=function(x, p=c(0,1)) {
ifelse(x < p[1], 0.5 * exp((x - p[1]) / p[2]),
1 - 0.5 * exp(-(x - p[1]) / p[2]))
}
TSextra=list(qnull=function(x, p=c(0,1)) {
ifelse(x < 0.5, p[1] + p[2] * log(2 * x),
p[1] - p[2] * log(2 * (1 - x)))
})
rnull=function(p=c(0,1)) {
x=runif(n)
ifelse(x < 0.5, p[1] + p[2] * log(2 * x),
p[1] - p[2] * log(2 * (1 - x)))
}
phat=function(x) c(stats::median(x), mean(abs(x - stats::median(x))))
palt <- function(x, a=0.5) {
sd <- sqrt(qexp(c(.1, .3, .5), rate = a))
0.6 * pnorm(x, 0, sd[1]) +
0.2 * pnorm(x, 0, sd[2]) +
0.2 * pnorm(x, 0, sd[3])
}
ralt = function(a=0.5) {
sd <- sqrt(qexp(c(.1, .3, .5), rate = a))
k <- sample(1:3, n, replace = TRUE, prob = c(0.6, 0.2, 0.2))
rnorm(n, mean = 0, sd = sd[k])
}
bins=seq(-5, 5, length=nbins+1)
bins[1]=-Inf
bins[nbins+1]=Inf
pnullD=function(p=c(0,1)) pnull(bins[-1],p)
rnullD=function(p=c(0, 1))
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})(),
#56
"laplace2.est" = (function() {
dnull=function(x, p=c(0, 1)) exp(-abs(x - p[1]) / p[2]) / (2 * p[2])
pnull=function(x, p=c(0,1)) {
ifelse(x < p[1], 0.5 * exp((x - p[1]) / p[2]),
1 - 0.5 * exp(-(x - p[1]) / p[2]))
}
TSextra=list(qnull=function(x, p=c(0,1)) {
ifelse(x < 0.5, p[1] + p[2] * log(2 * x),
p[1] - p[2] * log(2 * (1 - x)))
})
rnull=function(p=c(0,1)) {
x=runif(n)
ifelse(x < 0.5, p[1] + p[2] * log(2 * x),
p[1] - p[2] * log(2 * (1 - x)))
}
phat=function(x) c(stats::median(x), mean(abs(x - stats::median(x))))
palt <- function(x, a=1.2) {
ifelse(x<0, 1-pgamma(-x, a, 1),
1+pgamma(x, a, 1))/2
}
ralt=function(a=1.2) ifelse(runif(n)<0.5,-1,1)*rgamma(n, a, 1)
bins=seq(-5, 5, length=nbins+1)
bins[1]=-Inf
bins[nbins+1]=Inf
pnullD=function(p=c(0, 1)) pnull(bins[-1],p)
rnullD=function(p=c(0, 1))
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})(),
#57
"truncexp1.est" = (function() {
pnull=function(x, p=c(1,1)) {
ifelse(x<p[2], pexp(x, p[1])/pexp(p[2], p[1]), 1)
}
dnull=function(x, p=c(1,1))
ifelse(x<p[2], dexp(x, p[1])/pexp(p[2], p[1]), 0)
rnull= function(p=c(1,1)) {
x=rexp(2*n/pexp(p[2], p[1]) , p[1])
x[x<p[2]][1:n]
}
phat=Rgof::mletexp
TSextra=list(qnull=function(x, p=c(1,1))
-1/p[1]*log(1-x*(1-exp(-p[1]*p[2]))))
palt <- function(x,a=1.3)
ifelse(x < 0, 0,
ifelse(x > 2, 1,
pgamma(x,a,1)/pgamma(2,a,1)))
ralt=function(a=1.3) {
x=rgamma(2*n/pgamma(2, 1.3, 1), a, 1)
x[x<2][1:n]
}
bins=seq(0, 2, length=nbins+1)
pnullD=function(p=c(1,1)) pnull(bins[-1],p)
rnullD=function(p=c(1,1))
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})(),
#58
"truncexp2.est" = (function() {
apar=-1.75
pnull=function(x, p=1)
pnull=function(x, p=1)
ifelse(x<1, 0,
ifelse(x>2, 1,
(pexp(x,p)-pexp(1,p))/(pexp(2,p)-pexp(1,p))))
dnull=function(x, p=1)
ifelse(x<1|x>2, 0 ,dexp(x, p)/(pexp(2, p)-pexp(1, p)))
rnull= function(p=1) {
x=rexp(2*n/(pexp(2, p)-pexp(1, p)), p)
x[x>1 & x<2][1:n]
}
phat=Rgof::mledexp
TSextra=list(qnull=function(x, p=1)
-1/p*log( exp(-p) -(exp(-p)-exp(-2*p))*x))
palt=function(x, a=apar) {
y=a*x^2/2+(1-3*a/2)*x-1+a
ifelse(x<1,0,ifelse(x>2,1,y))
}
ralt=function(a=apar) {
y=(-(1-3*a/2)+sqrt((1-3*a/2)^2-4*a/2*(-1+a-runif(n))))/a
}
bins=seq(1, 2, length=nbins+1)
pnullD=function(p=1) pnull(bins[-1],p)
rnullD=function(p=1)
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})(),
# 59
"gammamixture1.est" = (function() {
pnull = function(x, a=1/2) a*pgamma(x, 1, 1)+(1-a)*pgamma(x, 3, 1)
dnull = function(x, a=1/2) a*dgamma(x, 1, 1)+(1-a)*dgamma(x, 3, 1)
TSextra=list(qnull = function(x, a=1/2) finv(x, pnull, c(0, 50)))
rnull = function(a=1/2) c(rgamma(floor(a*n), 1 ,1), rgamma(ceiling((1-a)*n), 3, 1))
palt=function(x, a=1.75) 0.4*pgamma(x, 1, a)+0.6*pgamma(x, 3, 1)
ralt = function(a=1.75) c(rgamma(0.4*n, 1 ,a), rgamma(0.6*n, 3, 1))
phat = function(x) Rgof::mlemix(dgamma(x,1,1), dgamma(x,3,1))
bins=seq(0, 10, length=nbins+1)
bins[nbins+1]=Inf
pnullD=function(p=1/2) pnull(bins[-1],p)
rnullD=function(p=1/2)
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})(),
# 60
"gammamixture2.est" = (function() {
pnull = function(x, a=1/2) a*pgamma(x, 3, 1)+(1-a)*pgamma(x, 10, 1)
dnull = function(x, a=1/2) a*dgamma(x, 3, 1)+(1-a)*dgamma(x, 10, 1)
TSextra=list(qnull = function(x, a=1/2) finv(x, pnull, c(0, 50)))
rnull = function(a=1/2) c(rgamma(floor(a*n), 3 ,1), rgamma(ceiling((1-a)*n), 10, 1))
palt=function(x, a=9.35) 0.3*pgamma(x, 3, 1)+0.7*pgamma(x, a, 1)
ralt = function(a=9.35) c(rgamma(0.3*n, 3 ,1), rgamma(0.7*n, a, 1))
phat = function(x) Rgof::mlemix(dgamma(x,3,1), dgamma(x,10,1))
bins=seq(0, 25, length=nbins+1)
bins[nbins+1]=Inf
pnullD=function(p=1/2) pnull(bins[-1],p)
rnullD=function(p=1/2)
c(rmultinom(1, n, diff(pnull(bins, p))))
collect_case(environment())
})()
)
if (is.null(study))
stop("unknown case study: ", which, call.=FALSE)
pnull <- study$pnull
dnull <- study$dnull
rnull <- study$rnull
TSextra <- study$TSextra
if (!is.null(study$palt)) palt <- study$palt
if (!is.null(study$ralt)) ralt <- study$ralt
if (!is.null(study$phat)) phat <- study$phat
if (!is.null(study$pnullD)) pnullD <- study$pnullD
if (!is.null(study$rnullD)) rnullD <- study$rnullD
if (!is.null(study$bins)) bins <- study$bins
if (!is.null(study$Ra)) Ra <- study$Ra
# End of definitions
#
# Create output
ralt0=function() ralt()
palt0=function(x) palt(x)
ralt0D=function() c(rmultinom(1, n, diff(palt(bins))))
ralt1=function(a) ralt(a)
palt1=function(x, a) palt(x, a)
ralt1D=function(a) c(rmultinom(1, n, diff(palt(bins, a))))
Ra=bins[c(1, nbins+1)]
if(data_type=="disc") {
vals=(bins[-1]+bins[-(nbins+1)])/2 # midpoints of intervals
phat1=function(x) {
y=rep(vals, x)
phat(y)
}
if(endsWith(which,"est")) {
pnull1=pnullD
rnull=rnullD
}
else {
pnull1=function() pnull(bins[-1])
rnull=function() c(rmultinom(1, n, diff(pnull(bins))))
}
vals = (bins[-1]+bins[-(nbins+1)])/2
if(is.infinite(vals[1])) vals[1]=bins[2]-1
if(is.infinite(vals[length(vals)]))
vals[length(vals)]=bins[length(bins)-1]+1
return(list(pnull=pnull1, rnull=rnull,
ralt=ralt0D, phat=phat1,
ralt1=ralt1D, vals=vals,
TSextra=TSextra, Range=Ra))
}
return(list(pnull=pnull, rnull=rnull, TSextra=TSextra,
phat=phat, dnull=dnull, Range=Ra,
palt=palt0, ralt=ralt0, ralt1=ralt1, vals=NA))
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.