XYWeightedRegressor
mcup.xy_weighted.XYWeightedRegressor
Bases: BaseRegressor
Regression estimator for data where both x and y have measurement errors.
Uses iteratively reweighted least squares (IRLS) to combine x and y variances
via error propagation: σ_combined² = σ_y² + (∂f/∂x)² σ_x². Faster than
DemingRegressor and well-suited to mildly nonlinear models.
Supports two solvers selected via the method argument:
"analytical"— IRLS with(J^T W J)^{-1}covariance (fast)."mc"— Monte Carlo sampling with Welford online covariance (robust for nonlinear models).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
func
|
Callable
|
Model function with signature |
required |
method
|
str
|
Solver to use, either |
'mc'
|
n_iter
|
int
|
Maximum number of Monte Carlo iterations. Default |
10000
|
rtol
|
Optional[float]
|
Relative tolerance for MC convergence stopping. Default |
None
|
atol
|
Optional[float]
|
Absolute tolerance for MC convergence stopping. Default |
None
|
optimizer
|
str
|
SciPy optimizer name used for parameter fitting. Default |
'Nelder-Mead'
|
Attributes:
| Name | Type | Description |
|---|---|---|
params_ |
Fitted parameter array. |
|
params_std_ |
Standard deviations of fitted parameters. |
|
covariance_ |
Full parameter covariance matrix. |
|
n_iter_ |
Actual number of MC iterations run (MC method only). |
Notes
X may be shape (n,) for scalar input or (n, k) for k-dimensional
input per data point. x_err must match X.shape exactly; set a column
to zero for any feature that is measured without uncertainty (e.g. a controlled
variable). Zero-error features contribute nothing to the combined variance and
receive no noise during Monte Carlo sampling.
Source code in mcup/xy_weighted.py
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | |