Question
I am performing least squares fitting using an objective function of the form $f(\mathbf{x})$ where $\mathbf{x}$ is a vector of parameters containing around 20 elements.
The model function is somewhat expensive to evaluate so I am exploring options for reducing the number of parameters in the model. Are there standard approaches algorithms to tackle this problem?
Current approach
After least squares has completed I calculate the covarience matrix $c$ using the Jacobian $\mathbf{J}$ at the solution point $\mathbf{x}_s$,
$$ c = \left(\mathbf{J}^T\mathbf{J}\right)^{-1} $$
By comparing the relative strength of diagonal contributions to this matrix I then calculate a 'dependency' vector for each parameter,
$$ \mathbf{d} = 1 - \frac{1}{\textrm{diag}(c)\textrm{diag}(c^{-1})}. $$
The closer the element in $\mathbf{d}$ is to zero the more dependence the corresponding parameter has on the least squares solution. For example, I arrive at values shown in the radar plot below,
This shows some key parameters (the ones tipping towards zero), but many parameters that are close to edge. I think these are candidates for reduction. Either don't include them in the model or fix there values.
The problem is don't know a priori which parameters will be the ones to include and the ones to reduce. I therefore need to come up with an algorithm that dynamically turns parameters on and off. I was going to use the dependency vector to help with this. But I'm sure I'm not the first to have this problem and would like some advice before re-inventing the wheel.