Description Usage Arguments Details Value Objects from the Class Slots Methods Author(s) References See Also Examples
Sobol [1] proposed a definition called Sobol indices for estimating
the importance of single variable or multiple variales' interaction.
We have derived the formulas and rank their importance based on the
estimated total effect Sobol indices by using sensitivity analysis
under GLM of three link functions in SobolIndicesTotal
class, and enhanced the computation by automating the whole procedure.
1 2 | SobolIndicesTotal(xdata, ydata, varinput=1, beta=0, link=c("identity","log","logit"))
summary(object)
|
xdata |
A data set of class 'matrix' or 'data.frame' which only includes the variables or features. |
ydata |
A data set of class 'numeric' or 'factor' which only includes the response variable or output. |
varinput |
A vector; the indices of the variables which are of interest for computing their total effect Sobol indices. |
beta |
A vector; the intercept and coefficients of the variables estimated by the GLM model. |
link |
A character; the link function used under the GLM model. |
object |
An object of the |
The proposed algorithm for computing the total effect Sobol Indices is to use a simple strategy under the GLM model with independent or multivariate normal inputs:
g(E(Y|X))=β_0 + X β_1
where X is the data matrix of the varibles or features, g(.) is the link function under GLM, and β=(β_0, β_1) is the vector of intercept and coefficients estimates in GLM. Note that β_0=0 if there is no intercept in the setting of fitting GLM.
We derive the conditional expectations of the response with respect to the input subsets, and then estimate the total effect Sobol indices directly as follows by using closed formulas or (approximate) numerically using empirical variance estimates for a large number of GLMs:
S^T_P=1-Var(E(Y|X_{-P}))/Var(Y)=(Var(Y)-Var(E(Y|X_{-P})))/Var(Y)
where -P is the complementary set of index subset of variables of interest.
The results (numerator of above formula) can enable us to perform
ANOVA-type variance decomposition analysis on data with
multicollinearity issue, not only under Gaussian regression but
also under other types of GLMs such as Poisson and logistic
regression. The resulting total effect sobol indices for ranking the importance of
the variables of interest are stored in the sobol.indices.total
slot.
The SobolIndicesTotal
function computes the total effect Sobol indices for variables
of interest, constructs and returns an object of the SobolIndicesTotal
class.
Objects should be created using the SobolIndicesTotal
constructor.
xdata
:A data set of class 'matrix' or 'data.frame' which only includes the variables or features.
ydata
:A data set of class 'numeric' or 'factor' which only includes the response variable or output.
varinput
A vector which include the indices of the variables which are of interest for computing their total effect Sobol indices.
beta
:A vector which are the coefficients of the variables in a GLM model.
link
:A character which is the link function used under the GLM model.
sobol.indices.total
:A numeric number which is the total effect sobol indices of variable(s) of interest.
(object="SobolIndicesTotal")
: ...
Min Wang <wang.1807@mbi.osu.edu>
[1] Sobol, I. M. (1990). On sensitivity estimation for nonlinear mathematical models, Matematicheskoe Modelirovanie, 2, 112-118.
[2] Lu, R., Wang D., Wang, M. and Rempala, G. (2016). Identifying Gene-gene Interactions Using Sobol Sensitivity Indices, submitted.
identitySIfunction
, logSIfunction
and
logitSIfunction
to get a complete list of the functions
under different link functions to compute the sobol indices.
1 2 3 4 5 6 7 8 9 10 11 12 13 | showClass("SobolIndicesTotal")
# simulate xdata and beta
xdata <- matrix(rnorm(20*5, 1), ncol=5)
beta <- runif(6, min=-1, max=1)
ydata <- beta[1] + xdata
# variables 1 and 2 interaction is of interest
varinput <- c(1,2)
# link function is identity link (gaussian, possion, etc.)
link <- "identity"
# apply the proposed method
si <- SobolIndicesTotal(xdata, ydata, varinput=varinput, beta, link="identity")
# Review the results
summary(si)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.