diff --git a/src/nns/multivariate_regression.py b/src/nns/multivariate_regression.py index 74926961..65c5bf5b 100644 --- a/src/nns/multivariate_regression.py +++ b/src/nns/multivariate_regression.py @@ -385,7 +385,7 @@ def _resolve_n_best( if n_best is not None: return max(1, int(n_best)) dependence = _copula_matrix(np.column_stack((x, y))) - return max(1, math.floor((1.0 - dependence) * math.sqrt(x.shape[1]))) + return max(1, math.floor((1.0 - dependence) * math.sqrt(x.shape[0]))) def _k_as_count(k: KValue, row_count: int) -> int: diff --git a/src/nns/regression.py b/src/nns/regression.py index 389b6f68..4e3ae8f1 100644 --- a/src/nns/regression.py +++ b/src/nns/regression.py @@ -1071,7 +1071,12 @@ def _as_point_est(point_est: NDArray[np.float64] | float | None) -> NDArray[np.f def _regression_dependence(x: NDArray[np.float64], y: NDArray[np.float64]) -> float: - dep = nns_dep(x, y, asym=True)["Dependence"] + # Mirrors R Regression.R's tryCatch chain: NNS.dep error -> 0.1, copula + # error -> keep the NNS.dep component, NA -> 0.1. + try: + dep = nns_dep(x, y, asym=True)["Dependence"] + except (ValueError, FloatingPointError, ZeroDivisionError): + dep = 0.1 try: scaled = np.column_stack( (