oneway.bf.alpha {ldDesign}R Documentation

Correspondence between significance levels and Bayes factors for effects of marker genotype classes.

Description

Functions to calculate the correspondence between significance levels alpha and the Bayes factor, for association between a bi-allelic marker and QTL, for given sample sizes and marker genotype frequencies for bi-allelic marker.

Usage

  oneway.bf.alpha(n, group.sizes = c(0.25, 0.5, 0.25) * n, alpha = 0.05)
  oneway.bf.alpha.required(n, group.sizes = c(0.25, 0.5, 0.25) * n, Bf)

Arguments

n Sample size, i.e. number of individuals genotyped and phenotyped for the trait
group.sizes Number in each of the 3 possible marker genotype classes MM, Mm, mm
alpha Significance level, i.e. threshold for `detection'
Bf Bayes factor, used as threshold for detection

Details

These functions implement the correspondence between the significance levels and Bayes factors used in Ball (2003) to design experiments for detecting linkage disequilibrium with a given power to achieve a given Bayes factor. The function SS.oneway.bf is used to calculate the Bayes factor corresponding to a given F statistic (Spiegelhalter and Smith 1982). This is combined with a call to qf, for oneway.bf.alpha or calls to pf and interpolation for oneway.bf.alpha.required, to calculate the Bayes factor corresponding to a given alpha or alpha values for a given Bayes factor.

Value

oneway.bf.alpha returns the Bayes factor corresponding to a given significance level (alpha). oneway.bf.alpha.required returns the significance level (alpha) corresponding to a given Bayes factor.

Author(s)

Rod Ball rod.ball@forestresearch.co.nz www.forestresearch.co.nz

References

Ball, R.D. 2003 Experimental designs for reliable detection of linkage disequilibrium in unstructured random population association studies.

Spiegelhalter, D. and A.F.M. Smith 1982 Bayes factors for linear and log-linear models with vague prior information J. Royal Statist Soc. B 44: 377–387.

See Also

SS.oneway.bf,luo.ld.power

Examples

# calculations for Table 4 in the manuscript
data(luo.ld.populations)
Bs <- numeric(nrow(luo.ld.populations))
n.Bf20s <- numeric(nrow(luo.ld.populations))
ns <- c(seq(200,400,by=25),450,seq(500,4000,by=100))
powers <- numeric(length(ns))
alphas <- numeric(length(ns))
P.Bf20s <- numeric(length(ns))
for(ii in 1:nrow(luo.ld.populations)){
   cat("ii=",ii,"\n")
   powers[ii] <- luo.ld.power(n=luo.ld.populations[ii,"n"],
                              p=luo.ld.populations[ii,"p"],
                              q=luo.ld.populations[ii,"q"],
                              D=luo.ld.populations[ii,"D"],
                              h2=luo.ld.populations[ii,"h2"],
                              phi=luo.ld.populations[ii,"phi"],
                              Vp=100,
                              alpha=0.05)

   p1 <- luo.ld.populations[ii,"p"]
   Bs[ii] <- oneway.bf.alpha(n=luo.ld.populations[ii,"n"],
                 group.sizes=c(p1^2,2*p1*(1-p1),(1-p1)^2)*
                                 luo.ld.populations[ii,"n"])
   for(jj in seq(along=ns)){
     alphas[jj] <- oneway.bf.alpha.required(ns[jj],
                       group.sizes=c(p1^2,2*p1*(1-p1),(1-p1)^2)*ns[jj],Bf=20)
     P.Bf20s[jj] <- luo.ld.power(n=ns[jj],
                                 p=luo.ld.populations[ii,"p"],
                                 luo.ld.populations[ii,"q"],
                                 D=luo.ld.populations[ii,"D"],
                                 h2=luo.ld.populations[ii,"h2"],
                                 phi=luo.ld.populations[ii,"phi"],
                                 Vp=100,
                                 alpha=alphas[jj],
                                 print.it=FALSE)
   }
   n.Bf20s[ii] <- approx(P.Bf20s,ns,xout=0.9)$y
   cat("n =",n.Bf20s[ii],"\n")
}
cbind(luo.ld.populations,powers,n.Bf20s)


[Package ldDesign version 1.1-0 Index]