| setPriorDfRobust {MAnorm2} | R Documentation |
The Robust Counterpart of setPriorDf
Description
Given a set of bioCond objects of which each has been
associated with a mean-variance curve, setPriorDfRobust assigns
a common number of prior degrees of freedom to all of them
and accordingly adjusts their variance ratio factors
in a robust manner.
Usage
setPriorDfRobust(
conds,
d0,
occupy.only = TRUE,
p_low = 0.01,
p_up = 0.1,
nw = gauss.quad(128, kind = "legendre"),
no.rep.rv = NULL,
.call = TRUE
)
Arguments
conds |
A list of |
d0 |
A non-negative real specifying the number of prior degrees of
freedom. |
occupy.only |
A logical scalar. If it is |
p_low |
Lower- and upper-proportions of extreme values to be Winsorized (see "References"). Each of them must be strictly larger than 0, and their sum must be strictly smaller than 1. |
p_up |
Lower- and upper-proportions of extreme values to be Winsorized (see "References"). Each of them must be strictly larger than 0, and their sum must be strictly smaller than 1. |
nw |
A list containing |
no.rep.rv |
A positive real specifying the variance ratio factor of
those |
.call |
Never care about this argument. |
Details
The specific behavior of this function is pretty much the same as
setPriorDf, except that this function adjusts variance
ratio factors in a manner that is robust to potential outliers
(see also "References").
Value
setPriorDfRobust returns the argument list of
bioCond objects, with the specified
number of prior degrees of
freedom substituted for the "df.prior" component of each of them.
Besides, their "ratio.var" components have been adjusted
accordingly, and an attribute named "no.rep.rv" is added to the
list if it's ever been used as the variance ratio factor of the
bioConds without replicate samples.
To be noted, if the specified number of prior degrees of freedom is 0,
setPriorDfRobust won't adjust existing variance ratio factors.
In this case, you may want to use setPriorDfVarRatio to
explicitly specify variance ratio factors.
References
Tukey, J.W., The future of data analysis. The annals of mathematical statistics, 1962. 33(1): p. 1-67.
Phipson, B., et al., Robust Hyperparameter Estimation Protects against Hypervariable Genes and Improves Power to Detect Differential Expression. Annals of Applied Statistics, 2016. 10(2): p. 946-963.
See Also
bioCond for creating a bioCond object;
fitMeanVarCurve for fitting a mean-variance curve and
using a fit.info field to characterize it;
estimatePriorDfRobust for estimating the number of
prior degrees of freedom and adjusting the variance ratio factors of
a set of bioConds in a robust manner;
setPriorDf for the ordinary (non-robust) version of
setPriorDfRobust;
diffTest for calling
differential intervals between two bioCond objects.
Examples
data(H3K27Ac, package = "MAnorm2")
attr(H3K27Ac, "metaInfo")
## Fit a mean-variance curve for the GM12892 cell line (i.e., individual)
## and set the number of prior degrees of freedom of the curve to Inf.
# Perform the MA normalization and construct a bioCond to represent GM12892.
norm <- normalize(H3K27Ac, 7:8, 12:13)
GM12892 <- bioCond(norm[7:8], norm[12:13], name = "GM12892")
# Fit a mean-variance curve by using the parametric method.
GM12892 <- fitMeanVarCurve(list(GM12892), method = "parametric",
occupy.only = TRUE, init.coef = c(0.1, 10))[[1]]
# Set the number of prior degrees of freedom to Inf.
GM12892_2 <- setPriorDf(list(GM12892), Inf, occupy.only = TRUE)[[1]]
# Use the robust version of setPriorDf.
GM12892_3 <- setPriorDfRobust(list(GM12892), Inf, occupy.only = TRUE)[[1]]
# In this case, there is little difference in estimated variance ratio
# factor between the ordinary routine and the robust one.
summary(GM12892_2)
summary(GM12892_3)