# Estimating All Sobol Indices of Certain Order Using Sensitivity Analysis

### Description

Sobol [1] proposed a definition called Sobol Indices for estimating
the importance of single variable or multiple variales' interaction.
We have derived the formulas for Sobol Indices by using sensitivity
analysis under GLM of three link functions in `SobolIndicesAll`

class, and compute the sobol indices of all possible variables
interactions of given order by using this algorithm.

### Usage

1 2 | ```
SobolIndicesAll(xdata, orderinput=1, beta=0, link=c("identity","log","logit"))
summary(object, ...)
``` |

### Arguments

`xdata` |
A data set of class 'matrix' or 'data.frame' which only includes the variables or features. |

`orderinput` |
A integer; the order of the interaction of the variables which are of interest for computing all possible interactions' sobol indices main effect. |

`beta` |
A vector; the coefficients of the variables estimated by the regression model. |

`link` |
A character; the link function used under the GLM model. |

`object` |
An object of the |

`...` |
Other arguments that could be added. |

### Details

The proposed algorithm for computing the Sobol Indices is to use a
simple strategy under the GLM model with independent or multivariate
normal inputs. We derive the conditional expectations of the response
with respect to the input subsets, and then estimate the Sobol'
sensitivity indices directly using closed formulas or approximately
numerically using empirical variance estimates for a large number of
GLMs. The results 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 sobol indices for
all the variables interaction (of order `orderinput`

) of interest
are stored in the `sobol.indices.all`

slot.

### Value

The `SobolIndicesAll`

function computes all the sobol indices for variables
interactions of order `orderinput`

, constructs and returns an object of
the `SobolIndicesAll`

class.

### Objects from the Class

Objects should be created using the `SobolIndicesAll`

constructor.

### Slots

`xdata`

:A data set of class 'matrix' or 'data.frame' which only includes the variables or features.

`orderinput`

A integer which is the order of the interaction of the variables of interest for computing all possible interactions' sobol indices main effect.

`beta`

:A vector which are the coefficients of the variables in a regression model.

`link`

:A character which is the link function used under the GLM model.

`sobol.indices.all`

:A list or a numeric object which stores sobol indices of variables interactions of order

`orderinput`

.

### Methods

- summary
`signature(object = "SobolIndicesAll")`

: ...

### Author(s)

Min Wang <wang.1807@mbi.osu.edu>

### References

[1] Sobol, I. M. (1990). On sensitivity estimation for nonlinear mathematical models, Matematicheskoe Modelirovanie, 2, 112-118. [2] Lu, R., Rempala, G. and Wang, M. (2016). Sensitivity Analysis of Generalized Linear models, submitted.

### See Also

`identitySIfunction`

, `logSIfunction`

and
`logitSIfunction`

to get a complete list of the functions
under different link functions to compute the sobol indices.

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 | ```
showClass("SobolIndicesAll")
# simulate xdata and beta
xdata <- matrix(rnorm(20*5, 1), ncol=5)
beta <- runif(6, min=-1, max=1)
# all paired variables interactions are of interest
orderinput <- 2
# link function is logit link (binomial, etc.)
link <- "logit"
# apply the proposed method
siall <- SobolIndicesAll(xdata, orderinput=orderinput, beta, link="logit")
# Review the results
summary(siall)
``` |