autowisp.fit_expression.iterative_fit module
Define a function doing iterative re-fitting of terms from an expression.
- autowisp.fit_expression.iterative_fit.iterative_fit(predictors, target_values, *, max_downdates=20, weights=None, error_avg, rej_level, max_rej_iter, fit_identifier, pre_reject=False)[source]
Find least squares coefficients reproducing target_values using predictors.
- Parameters:
predictors – The derivatives w.r.t. to the fit coefficients of the predicted values (i.e. the matrix defining the fitting problem, apart from weighting).
target_values – The values wey are trying to reproduce.
max_downdates (float or int) – The maximum number of deletions to handle by downdating the QR decomposition, either as a fraction of the size of weighted_target (if max_downdates is a floating point between 0 and 1), or as an absolute value (if max_downdates is a positive integer). If an operation results in a larger number of deletions, the original matrix is re-constructed, the corresponding rows are deleted and a new QR decomposition is derived from scratch.
weights – The weight to give to each entry in target_values. If None, no weighting is done.
phot_ind – The index of the photometry being fit (only used for reporting errors).
error_avg (str) – How to average fitting residuals for outlier rejection. Should be a scipy/numpy top-level function (e.g. mean, nanmedian etc).
rej_level (float) – How far away from the fit should a point be before it is rejected in units of error_avg.
max_rej_iter – The maximum number of rejection/re-fitting iterations to perform. If the fit has not converged by then, the latest iteration is accepted.
fit_identifier – Identifier of what is being fit. Only used in logging messages.
pre_reject – Should a rejection iteration be performed before even the first fit is attempted (i.e. discard outliers even from the first fit).
- Returns:
The best fit coefficients.
- float:
The average square residual of the best fit.
- int:
The number of non-rejected points used in the last fit iteration.
- Return type:
numpy.array
- autowisp.fit_expression.iterative_fit.iterative_fit_qr(weighted_predictors, weighted_qrp, weighted_target, *, weights=None, max_downdates=20, error_avg, rej_level, max_rej_iter, fit_identifier, pre_reject=False)[source]
Same as iterative_fit() but using the QR decomposition of predictors.
- Parameters:
weighted_predictors (2-D array) – The matrix of predictors, with weights already applied (used for calculating residuals and if too many poinst get rejected, see max_downdates).
weighted_qrp (2-D array) – The QR decomposition of weighted_predictors with pivoting. Should be exactly the output of scipy.linalg.qr(weighted_predictors, pivoting=True), possibly with mode=’economic’.
weighted_target (1-D array) – The vector of values to reproduce as a linear combination of predictors. Should also already be weighted.
max_downdates – See iterative_fit().
weights – See iterative_fit(). Only used for outlier detection.
error_avg – See iterative_fit().
rej_level – See iterative_fit().
max_rej_iter – See iterative_fit().
fit_identifier – See iterative_fit().
- Returns:
See iterative_fit_qr()