I have an application in sensitivity analysis of complex system models with moderately nonlinear interactions between arguments
- Arguments potentially dozens or hundreds in number
- Arguments mostly real-valued but some categorical with a handful of levels (unordered settings) per variable
- The outputs of interest are real-valued and highly interdependent, and respond well to the usual dimensionality reduction techniques
- Assume for present purposes that the model output is a single real number.
I have the compute resource to evaluate the model several hundred or a few thousand times, but not millions of times, and I will typically do this on random or Sobol'-gridded points in the design space, i.e. I will have the output value at a few thousand points randomly scattered in a few dozen dimensions.
I want to do the usual thing of assigning importance rankings to inputs and combinations of inputs using techniques from Saltelli et al -- see this paper to get a flavor. I want to estimate the total variation of the expectation of the model output conditional on one or a few inputs at a time.
I plan to do this by fitting a low-order smoothing spline through the space of one input, or a few possibly interacting inputs, plus the model output, and calculating the total variation of the smoother by numerical integration. The interacting sets will typically be three or four variables, so sparsity in high dimensions will never be an issue. I also know how to cross-validate and regularise the splines for optimal fit, and correct for randomness in the total-variation measure.
What I don't know is how to proceed when one or more of the inputs of interest is categorical. I can see what to do for a single binary-valued input, but anything more complex defeats me. I've wiki'ed and googled this up and down without success.
So to summarise the question:
Is there an extension of the concept of total variation to scalar real-valued functions with (possibly multiple) (more than binary) unordered categorical arguments?
and
Is there an explanation digestible by a mere engineer?
Thanks in advance, I hope, but I'm actively looking in multiple places and I'll update this post if I find anything useable elsewhere.