diff --git a/toarstats/trends/interface.py b/toarstats/trends/interface.py index 3cb825fab5f5f0527a200dcbc3c8283b29f2d916..9998380f71cdd563de724b6cac1a5801e949ed9a 100644 --- a/toarstats/trends/interface.py +++ b/toarstats/trends/interface.py @@ -63,7 +63,7 @@ def calculate_trend(method, data, quantiles=None): if not all(0 < quantile < 1 for quantile in quantile_list): raise ValueError("The quantiles must be strictly between 0 and 1.") anomalies_series = calculate_anomalies(data_in) - if method == "quant_reg": + if method == "quant": fit = { quantile: quant_reg(anomalies_series, quantile) for quantile in quantile_list diff --git a/toarstats/trends/ols.py b/toarstats/trends/ols.py index 766ca2f71b9424826b8c024a6df013b159de1a85..a34cf32f1323e3b07fa6849f4be9169ee6f4d8f9 100644 --- a/toarstats/trends/ols.py +++ b/toarstats/trends/ols.py @@ -21,7 +21,7 @@ def ols(data): :return: The trend with its uncertainty and p value """ fit = smf.ols("value~datetime", data).fit(method="qr").params - mbb = moving_block_bootstrap("OLS", data, quantile) + mbb = moving_block_bootstrap("OLS", data) fit_se = np.nanstd(mbb, axis=0) fit_pv = 2*scipy.stats.t.sf(x=abs(fit/fit_se), df=len(data)-2) return {"trend": fit, "uncertainty": fit_se, "p_value": fit_pv} diff --git a/toarstats/trends/utils.py b/toarstats/trends/utils.py index 18f55b0e3fab84673139e3d3a164013cc168cf61..bd6167aff44a3b6165fe100e0fd850d940328eb1 100644 --- a/toarstats/trends/utils.py +++ b/toarstats/trends/utils.py @@ -42,13 +42,14 @@ def calculate_anomalies(data): }).sort_values("datetime") -def moving_block_bootstrap(method, data, quantile, num_samples=1000): +def moving_block_bootstrap(method, data, quantile=None, num_samples=1000): """Perform the moving block bootstrap algorithm. :param method: either ``"OLS"`` or ``"quant"`` :param data: data containing a list of date time values and associated parameter values - :param quantile: a single quantile, must be between 0 and 1 + :param quantile: a single quantile, must be between 0 and 1 if + ``method="quant"`` :param num_samples: number of sampled trends :return: A list of sampled trends