limma (version 3.28.14)

fitFDist: Moment Estimation of Scaled F-Distribution

Description

Moment estimation of the parameters of a scaled F-distribution given one of the degrees of freedom. This function is called internally by eBayes and squeezeVar and is not usually called directly by a user.

Usage

fitFDist(x, df1, covariate=NULL) fitFDistRobustly(x, df1, covariate=NULL, winsor.tail.p=c(0.05,0.1), trace=FALSE)

Arguments

x
numeric vector or array of positive values representing a sample from a scaled F-distribution.
df1
the first degrees of freedom of the F-distribution. Can be a single value, or else a vector of the same length as x.
covariate
if non-NULL, the estimated scale value will depend on this numeric covariate.
winsor.tail.p
numeric vector of length 1 or 2, giving left and right tail proportions of x to Winsorize.
trace
logical value indicating whether a trace of the iteration progress should be printed.

Value

fitFDist produces a list with the following components:
scale
scale factor for F-distribution. A vector if covariate is non-NULL, otherwise a scalar.
df2
the second degrees of freedom of the fitted F-distribution.
fitFDistRobustly returns the following components as well:
tail.p.value
right tail probability of the scaled F-distribution for each x value.
prob.outlier
posterior probability that each case is an outlier relative to the scaled F-distribution with degrees of freedom df1 and df2.
df2.outlier
the second degrees of freedom associated with extreme outlier cases.
df2.shrunk
numeric vector of values for the second degrees of freedom, with shrunk values for outliers. Most values are equal to df2, but outliers have reduced values depending on how extreme each case is. All values lie between df2.outlier and df2.

Details

fitFDist implements an algorithm proposed by Smyth (2004). It estimates scale and df2 under the assumption that x is distributed as scale times an F-distributed random variable on df1 and df2 degrees of freedom. The parameters are estimated using the method of moments, specifically from the mean and variance of the x values on the log-scale.

fitFDistRobustly is similar to fitFDist except that it computes the moments of the Winsorized values of x, making it robust against left and right outliers. Larger values for winsor.tail.p produce more robustness but less efficiency. The robust method is described by Phipson (2013) and Phipson et al (2016).

As well as estimating the F-distribution for the bulk of the cases, i.e., with outliers discounted, fitFDistRobustly also returns an estimated F-distribution with reduced df2 that might be appropriate for each outlier case.

References

Smyth, G. K. (2004). Linear models and empirical Bayes methods for assessing differential expression in microarray experiments. Statistical Applications in Genetics and Molecular Biology, 3, No. 1, Article 3. http://www.statsci.org/smyth/pubs/ebayes.pdf

Phipson, B. (2013). Empirical Bayes modelling of expression profiles and their associations. PhD Thesis. University of Melbourne, Australia. http://repository.unimelb.edu.au/10187/17614

Phipson, B, Lee, S, Majewski, IJ, Alexander, WS, and Smyth, GK (2016). Robust hyperparameter estimation protects against hypervariable genes and improves power to detect differential expression. Annals of Applied Statistics 10. http://arxiv.org/abs/1602.08678

See Also

This function is called by squeezeVar, which in turn is called by ebayes, eBayes and treat.

This function calls trigammaInverse.

Examples

Run this code
x <- rf(100,df1=8,df2=16)
fitFDist(x,df1=8)

Run the code above in your browser using DataLab