diff --git a/src/nns/diff.py b/src/nns/diff.py index 458f982..2a877d4 100644 --- a/src/nns/diff.py +++ b/src/nns/diff.py @@ -8,6 +8,7 @@ DiffResult = dict[str, float] DyDxResult = float | dict[str, NDArray[np.float64]] +_DyDReducer = Callable[[list[NDArray[np.float64]]], dict[str, NDArray[np.float64]]] _RESULT_KEYS = [ "Value of f(x) at point", @@ -207,47 +208,30 @@ def dy_d( messages: bool = True, factor_levels: Sequence[Sequence[Any] | None] | None = None, ) -> dict[str, NDArray[np.float64]]: - """Faithful Python port of R's ``dy.d_``. + """Faithful Python port of R's ``dy.d_`` (NNS 13.2, reconciled). + + This is the reconciled finite-difference estimator that matches R's + ``NNS::dy.d_`` bit-for-bit: a locally-adaptive ``dy.dx`` step combined with + an ``NNS.stack`` fit on the equal-weight synthetic regressor. See + :func:`dy_d_best` for the full description of the algorithm. ``wrt`` uses R-style 1-based indexing and selects a column of the - factor-expanded predictor matrix. Numeric scalar/vector ``eval_points`` - evaluate only the selected regressor; a two-dimensional array evaluates - complete predictor tuples. ``factor_levels`` supplies R factor levels when - NumPy inputs do not retain categorical metadata. + factor-expanded predictor matrix. A scalar/1-D ``eval_points`` evaluates + only the selected regressor (averaged over the distribution of the other + regressors); a two-dimensional array evaluates complete predictor tuples. + The string modes ``"mean"``, ``"median"``, ``"last"``, ``"obs"`` and + ``"apd"`` mirror R. ``factor_levels`` supplies R factor levels when NumPy + inputs do not retain categorical metadata. """ - raw_x = np.asarray(x) - if raw_x.ndim != 2: - raise ValueError("Please ensure (x) is a matrix or data.frame type object.") - if raw_x.shape[1] < 2: - raise ValueError("Please use NNS::dy.dx(...) for univariate partial derivatives.") - - raw_y = np.asarray(y).reshape(-1) - if raw_y.size != raw_x.shape[0]: - raise ValueError("x and y must have compatible row counts.") - if _dy_d_has_missing(raw_x) or _dy_d_has_missing(raw_y): - raise ValueError("You have some missing values, please address.") - - x_values = _dy_d_expand_predictors(x, factor_levels=factor_levels) - y_values = np.asarray(raw_y, dtype=np.float64) - if _dy_d_has_missing(x_values) or _dy_d_has_missing(y_values): - raise ValueError("You have some missing values, please address.") - - wrt_values = _dy_d_validate_wrt(wrt, x_values.shape[1]) - outputs = [ - _dy_d_scalar( - x_values, - y_values, - int(wrt_value) - 1, - eval_points, - mixed=bool(mixed), - messages=bool(messages), - wrt_label=int(wrt_value), - ) - for wrt_value in wrt_values - ] - if len(outputs) == 1: - return outputs[0] - return _combine_dy_d_outputs(outputs) + return _dy_d_reconciled( + x, + y, + wrt, + eval_points, + mixed=mixed, + messages=messages, + factor_levels=factor_levels, + ) def _combine_dy_d_outputs( @@ -302,7 +286,32 @@ def dy_d_best( matrix. A scalar/1-D ``eval_points`` evaluates only the selected regressor (averaged over the distribution of the other regressors); a 2-D array evaluates complete predictor tuples. + + This is kept as an explicit alias of :func:`dy_d`; both share the same + reconciled engine and differ only in the default ``messages`` value. """ + return _dy_d_reconciled( + x, + y, + wrt, + eval_points, + mixed=mixed, + messages=messages, + factor_levels=factor_levels, + ) + + +def _dy_d_reconciled( + x: NDArray[Any], + y: NDArray[Any], + wrt: int | NDArray[np.int64], + eval_points: str | float | NDArray[np.float64] = "obs", + *, + mixed: bool = False, + messages: bool = False, + factor_levels: Sequence[Sequence[Any] | None] | None = None, +) -> dict[str, NDArray[np.float64]]: + """Shared reconciled ``dy.d_`` engine backing :func:`dy_d`/:func:`dy_d_best`.""" raw_x = np.asarray(x) if raw_x.ndim != 2: raise ValueError("Please ensure (x) is a matrix or data.frame type object.") @@ -341,7 +350,7 @@ def dy_d_best( ] all_chunks: list[NDArray[np.float64]] = [] - spans: list[tuple[int, int, Any]] = [] + spans: list[tuple[int, int, _DyDReducer]] = [] for chunks, reduce in plans: spans.append((len(all_chunks), len(chunks), reduce)) all_chunks.extend(chunks) @@ -614,169 +623,6 @@ def reduce(parts: list[NDArray[np.float64]]) -> dict[str, NDArray[np.float64]]: -def _dy_d_scalar( - x_values: NDArray[np.float64], - y_values: NDArray[np.float64], - wrt_index: int, - eval_points: str | float | NDArray[np.float64], - *, - mixed: bool, - messages: bool, - wrt_label: int, -) -> dict[str, NDArray[np.float64]]: - from nns.central_tendencies import nns_rescale - from nns.copula import nns_copula - from nns.dependence import _gravity, nns_dep - from nns.var import lpm_var - - n, n_predictors = x_values.shape - if wrt_index < 0 or wrt_index >= n_predictors: - raise ValueError("`wrt` must select exactly one column of the expanded predictor matrix.") - if n_predictors != 2: - mixed = False - - if messages: - print( - "Currently generating NNS.reg finite difference estimates...Regressor " - f"{wrt_label}\r" - ) - - eval_values, vector_branch = _dy_d_eval_points(x_values, wrt_index, eval_points) - - norm_matrix = np.column_stack( - [nns_rescale(x_values[:, col], 0.0, 1.0) for col in range(n_predictors)] - ) - zz_candidates = np.asarray( - [ - float(nns_dep(x_values[:, wrt_index], y_values, asym=True)["Dependence"]), - float( - nns_copula( - np.column_stack( - (x_values[:, wrt_index], x_values[:, wrt_index], y_values) - ) - ) - ), - float( - nns_copula( - np.column_stack( - ( - norm_matrix[:, wrt_index], - norm_matrix[:, wrt_index], - y_values, - ) - ) - ) - ), - ], - dtype=np.float64, - ) - non_missing_zz = zz_candidates[~np.isnan(zz_candidates)] - zz = float(np.max(non_missing_zz)) if non_missing_zz.size else float("-inf") - - root_n = int(np.floor(np.sqrt(n))) - if root_n < 2: - raise ValueError("Insufficient observations to construct finite-difference bandwidths.") - h_s = _derivative_bandwidths(n) - - base_h = float(_gravity(np.abs(np.diff(x_values[:, wrt_index])))) - if not np.isfinite(base_h) or base_h == 0.0: - value_range = abs( - float(np.max(x_values[:, wrt_index]) - np.min(x_values[:, wrt_index])) - ) - if not np.isfinite(value_range) or value_range == 0.0: - raise ValueError("Regressor `wrt` is constant; derivative is undefined.") - base_h = value_range / float(n) - - deriv_grid: NDArray[np.float64] | None = None - sample_size = 0 - if vector_branch: - seq_by = max(0.01, (1.0 - zz) / 2.0) - probs = _r_seq_0_1(seq_by) - deriv_grid = np.column_stack( - [ - np.asarray( - [lpm_var(float(prob), 1.0, x_values[:, col]) for prob in probs], - dtype=np.float64, - ) - for col in range(n_predictors) - ] - ) - if deriv_grid.ndim != 2 or deriv_grid.shape[1] != n_predictors: - deriv_grid = np.asarray(deriv_grid, dtype=np.float64).reshape( - -1, n_predictors, order="F" - ) - sample_size = deriv_grid.shape[0] - else: - eval_values = _as_eval_matrix(eval_values, n_predictors) - - results: list[dict[str, NDArray[np.float64]]] = [] - for index, h_value in enumerate(h_s, start=1): - h_step = base_h * float(h_value) - if not np.isfinite(h_step) or h_step <= 0.0: - raise ValueError("A non-positive finite-difference step was generated.") - - if vector_branch: - assert deriv_grid is not None - first, second = _dy_d_vector_band( - x_values, - y_values, - wrt_index, - np.asarray(eval_values, dtype=np.float64).reshape(-1), - deriv_grid, - sample_size, - h_step, - index=index, - total=h_s.size, - messages=messages, - ) - mixed_eval_points: NDArray[np.float64] | None = None - else: - matrix_eval = _as_eval_matrix(eval_values, n_predictors) - first, second = _dy_d_matrix_band( - x_values, - y_values, - wrt_index, - matrix_eval, - h_step, - index=index, - total=h_s.size, - messages=messages, - ) - mixed_eval_points = matrix_eval - - result: dict[str, NDArray[np.float64]] = { - "First": first, - "Second": second, - } - if mixed: - if vector_branch: - vector_eval = np.asarray(eval_values, dtype=np.float64).reshape(-1) - if vector_eval.size != 2: - raise ValueError( - "Mixed derivatives require a complete two-predictor evaluation tuple." - ) - mixed_eval_points = vector_eval.reshape(1, 2) - assert mixed_eval_points is not None - result["Mixed"] = _dy_d_mixed( - x_values, - y_values, - mixed_eval_points, - int(h_value), - ) - results.append(result) - - output = { - "First": _weighted_band_average([result["First"] for result in results]), - "Second": _weighted_band_average([result["Second"] for result in results]), - } - if mixed: - output["Mixed"] = _weighted_band_average([result["Mixed"] for result in results]) - - if messages: - print("\r") - return output - - def _dy_d_expand_predictors( x: NDArray[Any], *, @@ -946,100 +792,6 @@ def _dy_d_eval_points( raise ValueError("eval_points must be a scalar, vector, matrix, or supported string.") -def _dy_d_matrix_band( - x: NDArray[np.float64], - y: NDArray[np.float64], - wrt_index: int, - eval_points: NDArray[np.float64], - h_step: float, - *, - index: int, - total: int, - messages: bool, -) -> tuple[NDArray[np.float64], NDArray[np.float64]]: - lower_points = eval_points.copy() - upper_points = eval_points.copy() - lower_points[:, wrt_index] = eval_points[:, wrt_index] - h_step - upper_points[:, wrt_index] = eval_points[:, wrt_index] + h_step - deriv_points = np.vstack((lower_points, eval_points, upper_points)) - - if messages: - print( - "Currently generating NNS.reg finite difference estimates...bandwidth " - f"{index} of {total}\r", - end="", - flush=True, - ) - - estimates = _dy_d_stack_estimates(x, y, deriv_points) - n_eval = eval_points.shape[0] - if estimates.size != 3 * n_eval: - raise ValueError("NNS.reg returned an unexpected number of point estimates.") - lower = estimates[:n_eval] - fx = estimates[n_eval : 2 * n_eval] - upper = estimates[2 * n_eval :] - first = (upper - lower) / (2.0 * h_step) - second = (upper - 2.0 * fx + lower) / (h_step**2) - return first, second - - -def _dy_d_vector_band( - x: NDArray[np.float64], - y: NDArray[np.float64], - wrt_index: int, - eval_values: NDArray[np.float64], - deriv_grid: NDArray[np.float64], - sample_size: int, - h_step: float, - *, - index: int, - total: int, - messages: bool, -) -> tuple[NDArray[np.float64], NDArray[np.float64]]: - from nns.dependence import _gravity - - blocks: list[NDArray[np.float64]] = [] - for eval_value in eval_values: - lower_grid = deriv_grid.copy() - middle_grid = deriv_grid.copy() - upper_grid = deriv_grid.copy() - lower_grid[:, wrt_index] = eval_value - h_step - middle_grid[:, wrt_index] = eval_value - upper_grid[:, wrt_index] = eval_value + h_step - blocks.extend((lower_grid, middle_grid, upper_grid)) - deriv_points = np.vstack(blocks) - - ids = np.repeat(np.arange(eval_values.size), 3 * sample_size) - position = np.tile( - np.repeat(np.asarray(["l", "m", "u"], dtype=object), sample_size), - eval_values.size, - ) - - if messages: - print( - f"Currently evaluating the {deriv_points.shape[0]} required points " - f"{index} of {total}\r", - end="", - flush=True, - ) - - estimates = _dy_d_stack_estimates(x, y, deriv_points) - if estimates.size != deriv_points.shape[0]: - raise ValueError("NNS.reg returned an unexpected number of point estimates.") - - lower = np.empty(eval_values.size, dtype=np.float64) - fx = np.empty(eval_values.size, dtype=np.float64) - upper = np.empty(eval_values.size, dtype=np.float64) - for eval_id in range(eval_values.size): - lower[eval_id] = float(_gravity(estimates[(position == "l") & (ids == eval_id)])) - fx[eval_id] = float(_gravity(estimates[(position == "m") & (ids == eval_id)])) - upper[eval_id] = float(_gravity(estimates[(position == "u") & (ids == eval_id)])) - - first = (upper - lower) / (2.0 * h_step) - second = (upper - 2.0 * fx + lower) / (h_step**2) - return first, second - - def _dy_d_stack_estimates( x: NDArray[np.float64], y: NDArray[np.float64], @@ -1062,52 +814,6 @@ def _dy_d_stack_estimates( return np.asarray(result["stack"], dtype=np.float64).reshape(-1) -def _dy_d_mixed( - x: NDArray[np.float64], - y: NDArray[np.float64], - eval_points: NDArray[np.float64], - h_value: int, -) -> NDArray[np.float64]: - from nns.dependence import _gravity - - points = _as_eval_matrix(eval_points, 2) - h_step_1 = float(_gravity(np.abs(np.diff(x[:, 0])))) * float(h_value) - h_step_2 = float(_gravity(np.abs(np.diff(x[:, 1])))) * float(h_value) - - if not np.isfinite(h_step_1) or h_step_1 == 0.0: - h_step_1 = ( - abs(float(np.max(x[:, 0]) - np.min(x[:, 0]))) / float(x.shape[0]) - ) * float(h_value) - if not np.isfinite(h_step_2) or h_step_2 == 0.0: - h_step_2 = ( - abs(float(np.max(x[:, 1]) - np.min(x[:, 1]))) / float(x.shape[0]) - ) * float(h_value) - if h_step_1 <= 0.0 or h_step_2 <= 0.0: - raise ValueError("Unable to construct valid mixed-derivative bandwidths.") - - blocks = [] - for point in points: - blocks.append( - np.asarray( - [ - [point[0] + h_step_1, point[1] + h_step_2], - [point[0] - h_step_1, point[1] + h_step_2], - [point[0] + h_step_1, point[1] - h_step_2], - [point[0] - h_step_1, point[1] - h_step_2], - ], - dtype=np.float64, - ) - ) - mixed_points = np.vstack(blocks) - estimates = _dy_d_stack_estimates(x, y, mixed_points) - if estimates.size != 4 * points.shape[0]: - raise ValueError("NNS.reg returned an unexpected number of mixed-derivative estimates.") - z = estimates.reshape(points.shape[0], 4) - return (z[:, 0] - z[:, 1] - z[:, 2] + z[:, 3]) / ( - 4.0 * h_step_1 * h_step_2 - ) - - def _as_eval_matrix(values: NDArray[np.float64], n_cols: int) -> NDArray[np.float64]: matrix = np.asarray(values, dtype=np.float64) if matrix.ndim == 1: @@ -1121,39 +827,6 @@ def _as_eval_matrix(values: NDArray[np.float64], n_cols: int) -> NDArray[np.floa return matrix -def _weighted_band_average(values: list[NDArray[np.float64]]) -> NDArray[np.float64]: - matrix = np.column_stack( - [np.asarray(value, dtype=np.float64).reshape(-1) for value in values] - ) - if matrix.ndim == 1: - matrix = matrix.reshape(1, -1) - weights = np.arange(matrix.shape[1], 0, -1, dtype=np.float64) - return np.asarray(matrix @ (weights / np.sum(weights)), dtype=np.float64).reshape(-1) - - -def _derivative_bandwidths(n: int) -> NDArray[np.int64]: - root_n = int(np.floor(np.sqrt(n))) - if root_n < 2: - raise ValueError("Insufficient observations to construct finite-difference bandwidths.") - return np.rint( - np.exp(np.linspace(np.log(2.0), np.log(float(root_n)), 5)) - ).astype(np.int64) - - -def _r_seq_0_1(by: float) -> NDArray[np.float64]: - if not np.isfinite(by) or by <= 0.0: - raise ValueError("A positive finite probability increment is required.") - values: list[float] = [] - current = 0.0 - tolerance = np.finfo(float).eps * 8.0 - while current <= 1.0 + tolerance: - values.append(min(current, 1.0)) - current += by - if not values or values[-1] < 1.0: - values.append(1.0) - return np.asarray(values, dtype=np.float64) - - def _finite_step( f: Callable[[float | complex | NDArray[np.float64]], float | complex | NDArray[np.float64]], point: float, diff --git a/sync/nns_source.json b/sync/nns_source.json index 79939ce..0344f72 100644 --- a/sync/nns_source.json +++ b/sync/nns_source.json @@ -1,7 +1,7 @@ { "r_repo": "OVVO-Financial/NNS", - "r_commit": "1d4d1e9ccc872ccc25eacfc7153a5ff8c4abd172", - "r_version": "13.1", + "r_commit": "8f236b97ba4612c93c09a949e7e14ec20dcb6c14", + "r_version": "13.2", "r_src_tree_hash": "1c82fa36a4af3ce6359cc34b3d841afa6bdd1815", "core_repo": "OVVO-Financial/NNS-core", "core_commit": "cfc25a3469df6460f9224fb976fcb58de9d58068", @@ -11,5 +11,5 @@ "vendored_r_path": "tools/NNS", "vendored_r_tarball": "tools/NNS_13.0.tar.gz", "r_cache_path": "tests/_r_cache.json", - "notes": "NNS-python consumes accepted NNS-core snapshots for native code and verifies public Python behavior against live or cached R NNS." + "notes": "NNS-python consumes accepted NNS-core snapshots for native code and verifies public Python behavior against live or cached R NNS. r_commit/r_version record the 13.2 Beta commit that generated the committed parity cache (NNS_13.2.tar.gz). The vendored native snapshot (tools/NNS, r_src_tree_hash, tarball) and NNS-core commit are left at their prior values; re-syncing the native snapshot to this R commit is a separate NNS-core snapshot update and is not part of this cache/behavior reconciliation." } diff --git a/tests/_r.py b/tests/_r.py index 02aa5b9..caf0d8b 100644 --- a/tests/_r.py +++ b/tests/_r.py @@ -16,7 +16,7 @@ _CACHE_PATH = Path(__file__).with_name("_r_cache.json") _LOCK_PATH = _CACHE_PATH.with_suffix(".lock") _SCHEMA_VERSION = 1 -_NNS_VERSION = '13.1' +_NNS_VERSION = '13.2' JsonValue: TypeAlias = None | str | float | list["JsonValue"] | dict[str, "JsonValue"] RValue: TypeAlias = ( None | float | str | list[str | None] | NDArray[np.float64] | dict[str, "RValue"] diff --git a/tests/_r_cache.json b/tests/_r_cache.json index 3fafd36..5ff7fe6 100644 --- a/tests/_r_cache.json +++ b/tests/_r_cache.json @@ -55559,14 +55559,14 @@ "Confidence_Level": 0.95, "Control": 0.0191268165633628, "Control_CDF": 0.559051831188266, - "Effect_Size_LB.2.5%": -0.59234155635365, - "Effect_Size_UB.97.5%": 1.17082423861204, + "Effect_Size_LB.2.5%": -0.624604587013741, + "Effect_Size_UB.97.5%": 1.12917479150283, "Grand_Statistic": 0.142983064395218, - "Lower 95% CI": 0.175989485138373, - "Robust Certainty Estimate": 0.574167342557862, + "Lower 95% CI": 0.197141860663723, + "Robust Certainty Estimate": 0.58035678975461, "Treatment": 0.266839312227074, "Treatment_CDF": 0.439774510459534, - "Upper 95% CI": 0.85089076035208 + "Upper 95% CI": 0.853525008108945 }, "17c46fcc5682d4b241f0133ff0ec7ca10862ad67c7784593002b99bbb7b12e91": { "ensemble": { @@ -83021,21 +83021,21 @@ 9.09112309621664, 9.09112309621664, 9.09112309621664, - 12.4202016593783, - 12.4202016593783, - 12.4202016593783, - 12.4202016593783, - 12.4202016593783, - 12.4202016593783, - 12.4202016593783, - 12.4202016593783, - 12.4202016593783, - 12.4202016593783, - 12.4202016593783, - 12.4202016593783, - 12.4202016593783, - 12.4202016593783, - 12.4202016593783 + 12.4202016593784, + 12.4202016593784, + 12.4202016593784, + 12.4202016593784, + 12.4202016593784, + 12.4202016593784, + 12.4202016593784, + 12.4202016593784, + 12.4202016593784, + 12.4202016593784, + 12.4202016593784, + 12.4202016593784, + 12.4202016593784, + 12.4202016593784, + 12.4202016593784 ], "residuals": [ 0.0, @@ -83075,18 +83075,18 @@ -0.225389982163459, -0.20085968052984, -0.160047180753023, - -0.122680375849843, - -0.088989097598275, - -0.0591786980695241, - -0.0334286819441783, - -0.0118915109768749, - 0.00530841142799199, - 0.0180755687666081, - 0.0263439675938244, - 0.0300775770520634, - 0.0292705688436832, - 0.0239473560485388, - 0.0141624305282484, + -0.122680375849842, + -0.0889890975982741, + -0.0591786980695233, + -0.0334286819441774, + -0.011891510976874, + 0.00530841142799332, + 0.018075568766609, + 0.0263439675938257, + 0.0300775770520647, + 0.0292705688436841, + 0.0239473560485406, + 0.0141624305282502, 0.0 ], "x": [ @@ -83233,7 +83233,7 @@ 1.7332577425222, 1.88080388425333, 2.01812702549914, - 2.14487529526494, + 2.14487529526495, 2.26076725321197, 2.36559376410356, 2.45921939068563, @@ -83258,7 +83258,7 @@ "Coefficient": [ 12.4034428992673, 9.09112309621664, - 12.4202016593783 + 12.4202016593784 ], "X.Lower.Range": [ 0.0122382136583337, @@ -103680,8 +103680,8 @@ }, "30175b96be50e9df511af212e64285714823b4163a2726c09dadc3a919b365e8": 0.5, "3029afa62b43ae882877abedcd6f156887a6928d131a0240bb324dce62b887af": { - "First": 5.6787978789998, - "Second": 0.0319925123011446 + "First": 1.2998260952223, + "Second": -0.682302489501279 }, "3057bf09a309ace832d4c2fd98501dfa9b528067eb3c86ebd8994d58e6444e21": { "clpm": [ @@ -109157,88 +109157,88 @@ 3.0 ], "conf.int.neg": [ - -1.22340448383785, - -1.17002886116556, - -1.11664847624097, - -1.06325849918412, - -1.00985410011509, - -0.956430449153901, - -0.902982716420623, - -0.849506072035304, - -0.795995686117997, - -0.742446876142017, - -0.688858032508514, - -0.635230452515772, - -0.581565547577085, - -0.527864729105743, - -0.474129408515038, - -0.420360997218261, - -0.366560906628705, - -0.312730548159659, - -0.258871333224416, - -0.204984673236268, - -0.151071979608505, - -0.097134663754419, - -0.0431741370873019, - 0.0108081889795553, - 0.0648109030328605, - 0.118832593659323, - 0.172871849445651, - 0.226927258978552, - 0.280997410844737, - 0.335080899120109, - 0.389176422992371, - 0.443282776206687, - 0.497398755879138, - 0.551523159125805, - 0.60565478306277, - 0.659792424806115, - 0.713934881471921, - 0.768080950176269, - 0.822229428035242, - 0.876379112164919 + -1.22340448383794, + -1.17002886116565, + -1.11664847624105, + -1.0632584991842, + -1.00985410011515, + -0.956430449153962, + -0.902982716420677, + -0.849506072035351, + -0.795995686118037, + -0.74244687614205, + -0.688858032508538, + -0.63523045251579, + -0.581565547577095, + -0.527864729105746, + -0.474129408515033, + -0.420360997218249, + -0.366560906628685, + -0.312730548159632, + -0.258871333224381, + -0.204984673236225, + -0.151071979608455, + -0.0971346637543619, + -0.0431741370872372, + 0.0108081889796273, + 0.0648109030329402, + 0.11883259365941, + 0.172871849445745, + 0.226927258978655, + 0.280997410844847, + 0.335080899120227, + 0.389176422992496, + 0.44328277620682, + 0.497398755879278, + 0.551523159125953, + 0.605654783062926, + 0.659792424806278, + 0.713934881472092, + 0.768080950176448, + 0.822229428035428, + 0.876379112165113 ], "conf.int.pos": [ - -0.167774197005115, - -0.114398574332826, - -0.0610181894082349, - -0.00762821235139349, - 0.0457761867176458, - 0.0991998376788304, - 0.152647570412108, - 0.206124214797427, - 0.259634600714734, - 0.313183410690714, - 0.366772254324218, - 0.420399834316959, - 0.474064739255646, - 0.527765557726988, - 0.581500878317693, - 0.63526928961447, - 0.689069380204027, - 0.742899738673072, - 0.796758953608315, - 0.850645613596464, - 0.904558307224226, - 0.958495623078312, - 1.01245614974543, - 1.06643847581229, - 1.12044118986559, - 1.17446288049205, - 1.22850213627838, - 1.28255754581128, - 1.33662769767747, - 1.39071118595284, - 1.4448067098251, - 1.49891306303942, - 1.55302904271187, - 1.60715344595854, - 1.6612850698955, - 1.71542271163885, - 1.76956516830465, - 1.823711237009, - 1.87785971486797, - 1.93200939899765 + -0.167774197005118, + -0.114398574332821, + -0.0610181894082228, + -0.0076282123513739, + 0.0457761867176726, + 0.0991998376788647, + 0.15264757041215, + 0.206124214797476, + 0.25963460071479, + 0.313183410690778, + 0.366772254324289, + 0.420399834317037, + 0.474064739255732, + 0.527765557727081, + 0.581500878317794, + 0.635269289614578, + 0.689069380204142, + 0.742899738673195, + 0.796758953608446, + 0.850645613596602, + 0.904558307224372, + 0.958495623078465, + 1.01245614974559, + 1.06643847581245, + 1.12044118986577, + 1.17446288049224, + 1.22850213627857, + 1.28255754581148, + 1.33662769767767, + 1.39071118595305, + 1.44480670982532, + 1.49891306303965, + 1.5530290427121, + 1.60715344595878, + 1.66128506989575, + 1.71542271163911, + 1.76956516830492, + 1.82371123700927, + 1.87785971486825, + 1.93200939899794 ], "gradient": [ -0.467922136642199, @@ -109283,46 +109283,46 @@ 0.600193735396032 ], "residuals": [ - -0.375162512049451, - -0.20401098957306, - -0.047016923897039, - 0.0955315538117302, - 0.223454014604779, - 0.336679678855112, - 0.4352482109265, - 0.519309353056892, - 0.5891214023039, - 0.645048399206659, - 0.687553425294982, - 0.717193918968422, - 0.73461859586739, - 0.740560730037819, - 0.735830432257024, - 0.721306120791925, - 0.697925274233473, - 0.666674563596619, - 0.628579467399206, - 0.584693478867143, - 0.536087018700036, - 0.483836169926085, - 0.429011353244899, - 0.372666061882385, - 0.315825774356386, - 0.259477161681855, - 0.204557702449739, - 0.151945814926961, - 0.102451609890836, - 0.0568083668764932, - 0.0156649121253358, - -0.0204212249196307, - -0.0509897752113644, - -0.0756825836213331, - -0.0942473858557913, - -0.106540472440655, - -0.11252821177602, - -0.112287416252749, - -0.106004547583175, - -0.0939737696980483 + -0.375162512049498, + -0.2040109895731, + -0.0470169238970711, + 0.0955315538117056, + 0.223454014604762, + 0.336679678855102, + 0.435248210926497, + 0.519309353056897, + 0.589121402303912, + 0.645048399206679, + 0.687553425295009, + 0.717193918968456, + 0.734618595867432, + 0.740560730037868, + 0.73583043225708, + 0.721306120791989, + 0.697925274233545, + 0.666674563596698, + 0.628579467399293, + 0.584693478867236, + 0.536087018700137, + 0.483836169926194, + 0.429011353245015, + 0.372666061882509, + 0.315825774356518, + 0.259477161681993, + 0.204557702449885, + 0.151945814927115, + 0.102451609890998, + 0.0568083668766621, + 0.0156649121255121, + -0.0204212249194464, + -0.0509897752111728, + -0.0756825836211339, + -0.0942473858555843, + -0.10654047244044, + -0.112528211775798, + -0.112287416252519, + -0.106004547582938, + -0.0939737696978034 ], "x": [ -2.0, @@ -109409,56 +109409,56 @@ 1.70929742682568 ], "y.hat": [ - -0.484459938875132, - -0.431084316202843, - -0.377703931278252, - -0.324313954221411, - -0.270909555152371, - -0.217485904191187, - -0.164038171457909, - -0.11056152707259, - -0.0570511411552832, - -0.00350233117930329, - 0.0500865124542005, - 0.103714092446942, - 0.157378997385629, - 0.211079815856971, - 0.264815136447676, - 0.318583547744453, - 0.37238363833401, - 0.426213996803055, - 0.480073211738298, - 0.533959871726447, - 0.587872565354209, - 0.641809881208295, - 0.695770407875412, - 0.749752733942269, - 0.803755447995575, - 0.857777138622037, - 0.911816394408365, - 0.965871803941266, - 1.01994195580745, - 1.07402544408282, - 1.12812096795509, - 1.1822273211694, - 1.23634330084185, - 1.29046770408852, - 1.34459932802548, - 1.39873696976883, - 1.45287942643463, - 1.50702549513898, - 1.56117397299796, - 1.61532365712763 + -0.484459938875179, + -0.431084316202883, + -0.377703931278284, + -0.324313954221435, + -0.270909555152389, + -0.217485904191197, + -0.164038171457911, + -0.110561527072585, + -0.057051141155271, + -0.00350233117928373, + 0.0500865124542274, + 0.103714092446976, + 0.157378997385671, + 0.21107981585702, + 0.264815136447733, + 0.318583547744517, + 0.372383638334081, + 0.426213996803134, + 0.480073211738384, + 0.53395987172654, + 0.587872565354311, + 0.641809881208404, + 0.695770407875529, + 0.749752733942393, + 0.803755447995706, + 0.857777138622176, + 0.911816394408511, + 0.96587180394142, + 1.01994195580761, + 1.07402544408299, + 1.12812096795526, + 1.18222732116959, + 1.23634330084204, + 1.29046770408872, + 1.34459932802569, + 1.39873696976904, + 1.45287942643486, + 1.50702549513921, + 1.56117397299819, + 1.61532365712788 ] }, "Point.est": [ - -0.224165078482974, - 0.560913052548707, - 1.35136622881313 + -0.224165078482985, + 0.560913052548805, + 1.35136622881334 ], "Prediction.Accuracy": [], "R2": 0.862687196937265, - "SE": 0.434437193916526, + "SE": 0.434437193916563, "class.levels": [], "derivative": { "Coefficient": [ @@ -109480,14 +109480,14 @@ "equation": [], "pred.int": { "pred.int.neg": [ - -0.963109623445688, - -0.178031492414007, - 0.61242168385042 + -0.96310962344575, + -0.178031492413961, + 0.612421683850576 ], "pred.int.pos": [ - 0.0925206633870435, - 0.877598794418724, - 1.66805197068315 + 0.0925206633870768, + 0.877598794418866, + 1.6680519706834 ] }, "regression.points": { @@ -111101,7 +111101,7 @@ 0.192010732428617, 0.211240413770698, 0.22876449116343, - 0.244327856096221, + 0.24432785609622, 0.257688458776483, 0.268618920227306, 0.276908046674694, @@ -111109,17 +111109,17 @@ 0.284806767857378, 0.284086965964422, 0.280069229655743, - 0.272641922998295, - 0.261716118446225, - 0.247226189115242, + 0.272641922998296, + 0.261716118446227, + 0.247226189115243, 0.229130245870147, 0.207410416314455, 0.182072963823945, 0.172534998668692, 0.192686615238916, 0.20261221270614, - 0.202381631414573, - 0.192132353791142, + 0.202381631414571, + 0.19213235379114, 0.172068588686399, 0.142459911304707, 0.103639467782102, @@ -111127,7 +111127,7 @@ 0.0, -0.0638568722634818, -0.135007614791191, - -0.212842403389903, + -0.212842403389902, -0.29670689684793 ], "x": [ @@ -111252,12 +111252,12 @@ -1.36956703994095, -1.19357668159803, -1.01440864947764, - -0.832850942581507, + -0.832850942581506, -0.649707475599994, -0.465792724687319, -0.281926302895418, -0.098927501395087, - 0.0823901671590823, + 0.0823901671590819, 0.261224386777752, 0.43678938171397, 0.608321149879131, @@ -127565,7 +127565,7 @@ 0.940127006573475, 0.976128418550371, 1.05177071777053, - 1.16123214402551, + 1.16123214402552, 1.29782394551492, 1.45373017727906, 1.62054665728736, @@ -127576,39 +127576,39 @@ 1.41109174608093, 1.03539651631878, 0.737435821950251, - 0.510574975024431, - 0.34615354654971, - 0.23830013455531, - 0.182380203537029, - 0.173828708310534, - 0.207572911921399, - 0.277995012414422, - 0.379142814862235, - 0.504992337766842, - 0.649507402521857, + 0.51057497502443, + 0.346153546549708, + 0.238300134555308, + 0.182380203537027, + 0.173828708310532, + 0.207572911921397, + 0.27799501241442, + 0.379142814862234, + 0.504992337766841, + 0.649507402521856, 0.806489141947753, 0.96941074126303, 1.13066133854708, 1.28094151147096, 1.41109174608093, - 0.609809899680448, - 0.262797728039634, - -0.0192857006143052, - -0.240830706298986, - -0.40398053861314, - -0.511663692949551, - -0.567575484522169, - -0.576126961099754, - -0.542383920827308, - -0.471996878206204, - -0.371122946444504, - -0.246340716144096, - -0.104559307116091, - 0.0470771493284001, - 0.201288903307131, - 0.350952708943758, - 0.489423574054561, - 0.609809899680448 + 0.609809899680447, + 0.262797728039632, + -0.0192857006143078, + -0.240830706298989, + -0.403980538613144, + -0.511663692949555, + -0.567575484522173, + -0.576126961099759, + -0.542383920827312, + -0.471996878206208, + -0.371122946444508, + -0.246340716144099, + -0.104559307116094, + 0.0470771493283977, + 0.201288903307129, + 0.350952708943757, + 0.48942357405456, + 0.609809899680447 ], "Prediction.Accuracy": [], "R2": [], @@ -127809,7 +127809,7 @@ -0.145546370539265, -0.167025044391149, -0.186465189363946, - -0.203859135656178, + -0.203859135656179, -0.219212841538871, -0.232545853672326, -0.243891176921648, @@ -127825,7 +127825,7 @@ -0.264209079238342, -0.259328705923298, -0.25374392798275, - -0.247613746362777, + -0.247613746362778, -0.24110079450173, -0.234370255160584, -0.227588760274326, @@ -127837,7 +127837,7 @@ -0.0773052055254873, -0.0556046974539179, -0.036902415107384, - -0.0213508007874763, + -0.021350800787475, -0.00908131274732638, -0.000203549654619994, 0.00519547935637732, @@ -127969,7 +127969,7 @@ -1.36042032332147, -1.21490681169795, -1.06494056781621, - -0.911098511654006, + -0.911098511654007, -0.753983376836209, -0.59421969631425, -0.432449642857835, @@ -127981,7 +127981,7 @@ 0.543213203876133, 0.700479736323405, 0.854504767068137, - 1.00468434383992, + 1.00468434383991, 1.15044012582337, 1.29122323551806, 1.426517914367, @@ -148368,8 +148368,8 @@ ] }, "453184acb2e34f39511db704f40df8a9cfbf8069d54ceab5079f822551412d18": { - "First": 0.0, - "Second": 0.0 + "First": 2.66666666666667, + "Second": -3.14715850995189e-17 }, "45597e89ab250cd450b2236329f36dd3e695969faea44b1c4f21938675a09b35": { "clpm": [ @@ -151392,7 +151392,7 @@ 0.00847476722519658, 0.0057337704811613, 0.0066105705972086, - 0.0135571600095032, + 0.0135571600095021, 0.0172127572967413, 0.0172172459888404, 0.0132488834129134, @@ -151401,13 +151401,13 @@ 0.01621006088724, 0.0159533331882993, 0.009197329599411, - 0.0210479613558714, + 0.0210479613558707, 0.0325242176285379, 0.033734957120902, 0.0246366646142051, 0.00529417463961535, 0.0358954711374246, - 0.0954696033562819, + 0.0954696033562787, 0.118393688663786, 0.0740950832032619, 0.0, @@ -151518,7 +151518,7 @@ -0.879018242847105, -0.677288704328039, -0.469613532790042, - -0.254636256401145, + -0.254636256401146, -0.0428261290413219, 0.164346958747834, 0.365461852530879, @@ -151549,8 +151549,8 @@ -2.83106627321256 ], "Prediction.Accuracy": [], - "R2": 0.998030711734226, - "SE": 0.0880817607571853, + "R2": 0.998030711734227, + "SE": 0.0880817607571852, "class.levels": [], "derivative": { "Coefficient": [ @@ -158835,10 +158835,10 @@ }, "Point.est": [ 2.35876858969354, - 2.87974538349059 + 2.8797453834906 ], "Prediction.Accuracy": [], - "R2": 0.228855792528303, + "R2": 0.228855792528304, "SE": 1.15820717336244, "class.levels": [], "derivative": { @@ -206408,14 +206408,14 @@ 1.0 ], "first.derivative": [ - 1.54673290262586, - 1.58817145541601, - 1.57667800037126 + 1.54673290262598, + 1.58817145541624, + 1.57667800037164 ], "second.derivative": [ - 0.0587852248500207, - 0.0154330454755768, - -0.0321099514025849 + 0.0587852248500906, + 0.015433045475724, + -0.0321099514024272 ] }, "59a54c9b089ada22a30460699dbf621092795b98f8327893bef62f979a38d7ee": 2.0, @@ -251515,36 +251515,36 @@ -1.02551648164156, -0.907758055013791, -0.777945031254864, - -0.636751545621144, - -0.486265224854371, - -0.329712089029423, - -0.171052288166198, - -0.014499152341256, + -0.636751545621145, + -0.486265224854372, + -0.329712089029424, + -0.171052288166199, + -0.0144991523412563, 0.135987168425504, 0.277180654059203, 0.4069936778181, 0.524752104445825, - 0.631287298809351, + 0.631287298809352, 0.728790296352238, 0.820374443139822, 0.909297426825682 ], "conf.int.pos": [ -0.909297426825682, - -0.820374443139748, - -0.72879029635209, - -0.63128729880914, - -0.52475210444556, - -0.406993677817793, - -0.277180654058866, - -0.135987168425147, - 0.014499152341626, - 0.171052288166574, - 0.329712089029799, - 0.486265224854741, - 0.636751545621502, - 0.777945031255201, - 0.907758055014097, + -0.820374443139749, + -0.728790296352092, + -0.631287298809141, + -0.524752104445562, + -0.406993677817795, + -0.277180654058868, + -0.135987168425149, + 0.0144991523416243, + 0.171052288166572, + 0.329712089029797, + 0.48626522485474, + 0.6367515456215, + 0.777945031255199, + 0.907758055014096, 1.02551648164182, 1.13205167600535, 1.22955467354823, @@ -251574,24 +251574,24 @@ -0.317717090869705 ], "residuals": [ - -0.250382188598143, - -0.0945713963080627, + -0.250382188598142, + -0.0945713963080622, 0.0207942954938953, - 0.0979224320182934, + 0.0979224320182932, 0.14082606985445, - 0.154506078633895, - 0.144389704774512, - 0.115981797580223, - 0.0746839670638576, - 0.0257389733343797, - -0.0257389733342936, - -0.0746839670637772, - -0.115981797580154, + 0.154506078633894, + 0.144389704774511, + 0.115981797580222, + 0.0746839670638572, + 0.0257389733343793, + -0.0257389733342939, + -0.0746839670637774, + -0.115981797580155, -0.144389704774464, -0.154506078633878, -0.140826069854475, - -0.0979224320183717, - -0.0207942954940377, + -0.0979224320183713, + -0.0207942954940374, 0.0945713963078471, 0.250382188597854 ], @@ -251640,31 +251640,31 @@ 0.909297426825682 ], "y.hat": [ - -1.15967961542383, + -1.15967961542382, -1.07075663173789, -0.979172484950234, -0.881669487407283, -0.775134293043704, - -0.657375866415937, + -0.657375866415938, -0.52756284265701, - -0.38636935702329, - -0.235883036256517, - -0.0793299004315695, - 0.0793299004316554, + -0.386369357023291, + -0.235883036256518, + -0.0793299004315699, + 0.0793299004316551, 0.235883036256598, 0.386369357023358, 0.527562842657057, 0.657375866415953, 0.775134293043679, 0.881669487407205, - 0.979172484950091, + 0.979172484950092, 1.07075663173768, 1.15967961542354 ] }, "Point.est": [ -0.943480658896791, - 4.33729658091963e-14, + 4.29980486979508e-14, 0.943480658896674 ], "Prediction.Accuracy": [], @@ -251744,8 +251744,8 @@ 0.69309847029882 ], "pred.int.pos": [ - -0.693098470298647, - 0.250382188598187, + -0.693098470298649, + 0.250382188598185, 1.19386284749482 ] }, @@ -263027,8 +263027,8 @@ ] }, "648dd7d19142f0bf27922bb6b0528fa3455b2935c9d225bc66b901d8f66d3b80": { - "First": 7.55, - "Second": 0.450000000000001 + "First": 2.66666666666667, + "Second": -1.22927590014839e-16 }, "649b62e9d4fece78b5ced9f33d8e9e03591a5bd8147bd46a69fb4f66bf4d1a46": { "clpm": [ @@ -299161,44 +299161,44 @@ }, "75f28622f6fe98b590a119c40168344c0fa04f68661a29e0a8b051a515206413": { "First": [ - -1.08827163599758, - -1.28235006336917, - -1.41041149341595, - -1.25591080980119, - -1.02661891383535, - -0.674935877635429, - -0.303679061102696, - -0.101655974763764, - 0.10564874984223, - 0.278420017985464, - 0.404924635854653, - 0.609650136473552, - 0.664689619810623, - 0.666551593262399, - 0.715621562039004, - 0.57774131269729, - 0.505597431181942, - 0.486119027686176 + -1.73424225017432, + -1.53907955475956, + -1.31555156456967, + -1.05801491472917, + -0.770984583044355, + -0.468527149584781, + -0.239236822980657, + 0.0480016245952955, + 0.344247796370419, + 0.63973868923625, + 0.93295988628721, + 1.21709942149206, + 1.44686940236421, + 1.75128892672369, + 2.03912643024845, + 2.29616464702853, + 2.52067132636059, + 2.71815872908292 ], "Second": [ - -2.09716833598798, - -1.6074433803486, - -0.22403219537178, - 1.63442809297665, - 2.83536903549681, - 1.85569259364352, - 1.59688683854124, - 1.22799053614658, - 0.704553690734135, - 0.849214071681799, - 0.9270846459091, - 0.974080781981405, - 0.953981515497588, - -0.803646076289666, - -0.675287569139307, - 0.0666575108987927, - -0.489463958308912, - -0.489822379971863 + 0.860554057858598, + 1.06902243882765, + 1.30164193569547, + 1.54613116592639, + 1.77711510770278, + 1.95711845590648, + 2.15036370126466, + 2.26285650659398, + 2.32378686127174, + 2.30808160757588, + 2.2283490963031, + 2.128430437778, + 1.95673035556225, + 1.78133245744912, + 1.56164159932943, + 1.33055610513555, + 1.10529979559515, + 0.89618586802455 ] }, "761f376ddb2fb8741c10a1d31fe162f4cb2aa68e892d1aac01a87231b8309aac": 0.356640938389107, @@ -374713,8 +374713,8 @@ -0.0070688155087435, -0.00736197745686429, -0.00370317042705715, - -0.00185246089973323, - -0.00262339815942902, + -0.00185246089973301, + -0.0026233981594288, -0.00137552959862419, -0.00342906898074935, -0.00344114330720346, @@ -374735,19 +374735,19 @@ 0.00162100031916435, 0.00190584019985218, 0.00194936241444044, - 0.00276561405267373, + 0.00276561405267284, 0.00278729554880641, 0.00739676792176081, 0.0121801902088494, 0.00708711105253013, - 0.0127635679717581, + 0.0127635679717555, -4.88498130835069e-15 ], "x": [ 0.00656298195132025, 0.00936214715854958, 0.012921464997476, - 0.0172503536130235, + 0.0172503536130236, 0.0223501428251207, 0.0282140601520579, 0.0348273019904685, @@ -374877,7 +374877,7 @@ ], "Prediction.Accuracy": [], "R2": 0.999998035307633, - "SE": 0.00433410433912336, + "SE": 0.00433410433912315, "class.levels": [], "derivative": { "Coefficient": [ @@ -374995,7 +374995,7 @@ 0.00656298195132025, 0.00936214715854958, 0.012921464997476, - 0.0172503536130235, + 0.0172503536130236, 0.0223501428251207, 0.0282140601520579, 0.0348273019904685, @@ -383928,8 +383928,8 @@ }, "9c1d0005f2772c1189bb1a90329125eb04eea449906d880447d4d41bbaa6128a": { "eval.point": 0.0, - "first.derivative": 1.58817145541601, - "second.derivative": 0.0154330454755768 + "first.derivative": 1.58817145541624, + "second.derivative": 0.015433045475724 }, "9c2dc7cebccb1c77ec42f7750bbd0bb0f070736727f5a18c336789c5fdd1c857": "NO TSD EXISTS", "9c397561f7408a8a8637fe9cf9a494f00cac13f5b201a747b6176cd4c589a998": 0.336, @@ -427305,33 +427305,33 @@ -0.805142415507911, -0.595508310993011, -0.402156962100874, - -0.226871539290751, - -0.0711899052454172, - 0.0636140480052259, - 0.17654546805344, - 0.26690198388824, - 0.334274477439033, - 0.378549332083891, - 0.399911971638764, - 0.398845894058585, - 0.376127063254627, - 0.332813782966756, - 0.270232341714826, - 0.189958850015671, - 0.0937977808938579, - -0.0162402639156416, - -0.137958861816914, + -0.22687153929075, + -0.0711899052454166, + 0.0636140480052267, + 0.176545468053441, + 0.266901983888241, + 0.334274477439034, + 0.378549332083892, + 0.399911971638765, + 0.398845894058586, + 0.376127063254628, + 0.332813782966757, + 0.270232341714827, + 0.189958850015672, + 0.0937977808938584, + -0.0162402639156407, + -0.137958861816913, -0.269005677144386, -0.406903964045453 ], "conf.int.pos": [ - -0.92470377553259, + -0.924703775532589, -0.757379632763165, -0.571754792314946, -0.369439226913285, - -0.152235737131522, - 0.0778829175289943, - 0.318794097522075, + -0.152235737131521, + 0.0778829175289952, + 0.318794097522074, 0.568183182564439, 0.823548711235276, 1.08229188857327, @@ -427401,42 +427401,42 @@ 7.33349518323306 ], "residuals": [ - -0.267234166150939, - -0.14606927841946, - -0.0179987880651109, - 0.114627157262405, - 0.249423911107323, - 0.384002788479386, - 0.515996571322857, - 0.643020598843589, - 0.762678820928141, - 0.872651930437969, - 0.970733504382263, - 1.05486246347258, + -0.267234166150943, + -0.146069278419465, + -0.0179987880651149, + 0.1146271572624, + 0.249423911107318, + 0.384002788479382, + 0.515996571322851, + 0.643020598843583, + 0.762678820928136, + 0.872651930437963, + 0.970733504382257, + 1.05486246347257, 1.12315412331279, - 1.17392903605173, - 1.20573886305151, + 1.17392903605172, + 1.2057388630515, 1.21738860854277, - 1.20795467361906, - 1.1767983478318, + 1.20795467361905, + 1.17679834783179, 1.12357452822387, 1.04823562812648, - 0.951030796382917, - 0.832501115181719, - 0.693473002470479, - 0.535039037367969, - 0.358540616007579, - 0.165552506954199, - -0.0421362418955977, - -0.262544945025054, - -0.493527123445094, - -0.732799057181041, - -0.977970439677588, - -1.22657646011547, + 0.951030796382912, + 0.832501115181713, + 0.693473002470474, + 0.535039037367964, + 0.358540616007574, + 0.165552506954194, + -0.0421362418956022, + -0.262544945025059, + -0.493527123445099, + -0.732799057181045, + -0.977970439677593, + -1.22657646011548, -1.47610865264549, - -1.72404169987823, + -1.72404169987824, -1.96786763177047, - -2.20512935907171 + -2.20512935907172 ], "x": [ 0.0150579266385732, @@ -427516,51 +427516,51 @@ ], "y.hat": [ -3.07249488383984, - -2.90517074107041, - -2.71954590062219, - -2.51723033522053, + -2.90517074107042, + -2.7195459006222, + -2.51723033522054, -2.30002684543877, - -2.06990819077825, - -1.82899701078517, + -2.06990819077826, + -1.82899701078518, -1.57960792574281, -1.32424239707197, - -1.06549921973397, - -0.806034734576143, - -0.548524498692458, - -0.295624217132801, - -0.0499308417328191, - 0.186055272242139, - 0.409966325428297, - 0.619600429943197, - 0.812951778835333, - 0.988237201645456, + -1.06549921973398, + -0.806034734576149, + -0.548524498692464, + -0.295624217132807, + -0.049930841732825, + 0.186055272242133, + 0.409966325428291, + 0.619600429943191, + 0.812951778835328, + 0.988237201645451, 1.14391883569079, 1.27872278894143, - 1.39165420898965, - 1.48201072482445, + 1.39165420898964, + 1.48201072482444, 1.54938321837524, - 1.5936580730201, + 1.59365807302009, 1.61502071257497, 1.61395463499479, 1.59123580419083, 1.54792252390296, 1.48534108265103, - 1.40506759095188, - 1.30890652183007, - 1.19886847702057, + 1.40506759095187, + 1.30890652183006, + 1.19886847702056, 1.07714987911929, - 0.946103063791821, - 0.808204776890755 + 0.946103063791816, + 0.808204776890749 ] }, "Point.est": [ -3.07249488383984, - -0.295624217132801, - 1.5936580730201 + -0.295624217132807, + 1.59365807302009 ], "Prediction.Accuracy": [], "R2": 0.763068556759632, - "SE": 0.984514420247087, + "SE": 0.984514420247086, "class.levels": [], "derivative": { "Coefficient": [ @@ -427597,10 +427597,10 @@ "pred.int.neg": [ -4.28760362477604, -1.51073295806901, - 0.378549332083891 + 0.378549332083892 ], "pred.int.pos": [ - -0.92470377553259, + -0.924703775532589, 1.85216689117444, 3.74144918132734 ] @@ -529607,44 +529607,44 @@ ], "dad0ab296ece0021f0e2cd70433b3f0d8fc8ce2396d8703a099970888b948e6a": { "First": [ - -1.08827163599758, - -1.28235006336917, - -1.41041149341595, - -1.25591080980119, - -1.02661891383535, - -0.674935877635429, - -0.303679061102696, - -0.101655974763764, - 0.10564874984223, - 0.278420017985464, - 0.404924635854653, - 0.609650136473552, - 0.664689619810623, - 0.666551593262399, - 0.715621562039004, - 0.57774131269729, - 0.505597431181942, - 0.486119027686176 + -1.14609138454744, + -0.891136694990114, + -0.629013946687417, + -0.360636633686476, + -0.104752968219893, + 0.11494186974304, + 0.252584424482161, + 0.416374720371816, + 0.578593136806792, + 0.729034239806271, + 0.862585121564395, + 0.966158266392631, + 1.01436053847825, + 1.14272090063942, + 1.26917731702716, + 1.39255637341101, + 1.51293363559811, + 1.63230914123472 ], "Second": [ - -2.09716833598798, - -1.6074433803486, - -0.22403219537178, - 1.63442809297665, - 2.83536903549681, - 1.85569259364352, - 1.59688683854124, - 1.22799053614658, - 0.704553690734135, - 0.849214071681799, - 0.9270846459091, - 0.974080781981405, - 0.953981515497588, - -0.803646076289666, - -0.675287569139307, - 0.0666575108987927, - -0.489463958308912, - -0.489822379971863 + 1.48275666077616, + 1.79423265330046, + 2.0659294265928, + 2.28758695798132, + 2.43102839843767, + 2.47104249267457, + 2.63681927851368, + 2.66016671347036, + 2.67589559311456, + 2.7041473585442, + 2.70882742128667, + 2.64797148722659, + 2.48851642821501, + 2.50401911135987, + 2.48142323719946, + 2.42323200135496, + 2.32374584641828, + 2.17561771381005 ] }, "dad3048a797a2c188ef37aea77e87962a951bdfd50620d2ba31c362234a9871a": { @@ -598138,8 +598138,8 @@ ] }, "eb8d7dd858ecee450da1151ac93ffd670c2ceb1a143a5c3bcb0af9c4f74dc3ca": { - "First": 7.55, - "Second": 0.450000000000001 + "First": 2.66666666666667, + "Second": -1.22927590014839e-16 }, "eba37446182a695a0997119c977e26fcccd83f2d7f2fde1e0f426280f80a7b0a": "NO TSD EXISTS", "eba4fa32deb19547a28d826e8de72c8a1a5cc8a46c96729ebeb018517bd9113a": 0.274567263158972, @@ -615972,8 +615972,8 @@ 0.0 ], "f4b3277537abed5bad989cc624759516c8fd0e0a0ece19a95ba07c13e34dce9c": { - "First": -0.107338124891535, - "Second": 1.21804228861 + "First": 0.0250991950729877, + "Second": 0.429236423574704 }, "f4b96ac05752df71a2b86f1e93a82cb336e39cad7a1fc349015af6071d3a0f11": 0.0, "f4e7383eee5e4a0d8b03dab79be16eedd6f51c7ec838ceb1c0db12964cd5081e": [ @@ -630655,6 +630655,6 @@ "x.star": [] } }, - "nns_version": "13.1", + "nns_version": "13.2", "schema_version": 1 } diff --git a/tests/invariants/test_diff.py b/tests/invariants/test_diff.py index 1871ff4..cd2860a 100644 --- a/tests/invariants/test_diff.py +++ b/tests/invariants/test_diff.py @@ -90,7 +90,7 @@ def test_dy_d_vectorized_wrt_apd_mixed_remains_invalid() -> None: with pytest.raises( ValueError, - match="Mixed derivatives require a complete two-predictor evaluation tuple", + match="Mixed Derivatives are only for 2 IV", ): dy_d(x, y, wrt=np.array([1, 2]), eval_points="apd", mixed=True)