Learn R Programming

pwrFDR (version 1.95)

var.rtm.SoM: Calculates asymptotic variance of true positive fraction, S_m/M_m.

Description

A function which computes the asymptotic variance of the true positive fraction, S_m/M_m in the BH-FDR procedure on m=N.tests simultaneous tests.

Usage

var.rtm.SoM(x, groups, effect.size, n.sample, r.1, FDR, N.tests, control)

Arguments

x

Calls to this function can be made either specifying the single argument, x, which is an object of class "pwr" returned from the function, pwrFDR or by a full call specification, by specifying all the arguments required by the function pwrFDR (see below)

groups

The number of experimental groups to compare. Default value is 2.

effect.size

The effect size (mean over standard deviation) for test statistics having non-zero means. Assumed to be a constant (in magnitude) over non-zero mean test statistics.

n.sample

The number of experimental replicates. Required for calculation of power

r.1

The proportion of simultaneous tests that are non-centrally located

FDR

The false discovery rate.

N.tests

Number of simultaneous tests.

control

Optionally, a list with components with the following components: 'groups', used when distop=3 (F-dist), specifying number of groups. 'version', used only in the 'JL' method, choice 0 gives the 'JL' version as published, whereas choice 1 replaces the FDR with r.0*FDR resulting in the infinite simultaneous tests limiting average power, which is the 'Iz' version, but this is redundant because you can specify the 'Iz' method to use this option. 'tol' is a convergence criterion used in iterative methods which is set to 1e-8 by default 'max.iter' is an iteration limit, set to 1000 by default 'distop', specifying the distribution family of the central and non-centrally located sub-populations. =1 gives normal (2 groups) =2 gives t- (2 groups) and =3 gives F- (2+ groups) 'CS', correlation structure, for use only with 'method="simulation"' which will simulate m simulatenous tests with correlations 'rho' in blocks of size 'n.WC'. Specify as list CS = list(rho=0.80, n.WC=50) for example

Value

Returns a value of class vvv, containing components

var.rtm.SoM

The computed asymptotic variance

power

The average power

gamma

The expected proportion of significant calls

c.g

The 'q-value', which is the value of the criterion on the scale of the statistic (t of given number of 2 n - 2 degrees of freedom) which can be used as a per test criterion resulting in the equivalent Benjamini-Hochberg procedure

call

The call which produced the result

Details

The true positive fraction, S_m/M_m, i.e., is the proportion of all non-centrally located statistical tests that are declared significant by the Benjamini-Hochberg procedure. It is shown, in the cited publication, to be root-m consistent and asymptotically normal i.e.

m^1/2 ( S_m/M_m - average.power ) --D--> N(0, sigma^2)

which is to say that the distribution of S_m/M_m is spiked about its mean, the average power, and the width dies off as 1/m^1/2. This noraml approximation is of interest in its own right and is also useful for powering multiple testing experiments on a more conservative operating characteristic than the average power, E[ S_m / M_m ]. For example, we can power the experiment on the lower 10th percentile of the distribution of S_m/M_m, which is approximated as

average.power + qnorm(0.10)*(vS/N.tests)^0.5

While the width of this distribution is negligible for micro-array studies, e.g. when N.tests=54675, it is non-negligible for as many as 200 simultaneous tests, where the average power could be 80% but the lower quantile of the empirical average power could be as low as 50%.

References

Izmirlian G. (2017) Average Power and \(\lambda\)-power in Multiple Testing Scenarios when the Benjamini-Hochberg False Discovery Rate Procedure is Used. arXiv:1801.03989

See Also

var.J.o.rtm var.rtm.ToJ

Examples

Run this code
# NOT RUN {
  ## call using result of pwrFDR 
  rslt.Iz <- pwrFDR(effect.size=0.79, n.sample=46, r.1=2000/54675, FDR=0.15)
  vS <- var.rtm.SoM(rslt.Iz)

  ## call via argument list specification
  vS <- var.rtm.SoM(effect.size=0.79, n.sample=46, r.1=2000/54675, FDR=0.15)
# }

Run the code above in your browser using DataLab