def test_l1tf_on_mock(alpha=1.0, beta=0.0, noise=0.0, doplot=doplot): if doplot: plt.clf() mock = make_l1tf_mock(noise=noise) l1tf_fit = myl1tf.l1tf(mock["y"], alpha=alpha, beta=beta) resid = l1tf_fit["x"] - mock["y_with_seasonal"] assert_is_good(resid, mean_abs_resid_max=0.035, max_abs_resid_max=0.1) if doplot: plt.plot(mock["x"], l1tf_fit["x"], marker="o", linestyle="-", label="L1TF, alpha=%s" % alpha) plt.legend(loc="lower center") plt.show()
def test_first_derivative_on_noisy_data( num=10, slope=1.0, offset=3.0, noise=1.0, alpha=1.0, beta=0.0, seed=7863, doplot=doplot ): if doplot: plt.clf() np.random.seed(seed) i = np.arange(num) x = i * slope + offset y = x + noise * np.random.randn(num) l1tf_fit = myl1tf.l1tf(y, alpha=alpha, beta=beta) resid = l1tf_fit["x"] - y assert_is_good(resid, mean_abs_resid_max=0.6, max_abs_resid_max=1) if doplot: plt.plot(i, y, marker="o", markersize=12, alpha=0.8, linestyle="") plt.plot(i, l1tf_fit["x"], marker="o", linestyle="-", markersize=4, alpha=0.8)
def test_l1tf_on_mock_with_period_l1p(alpha=1.0, period=6, eta=0.1, sea_amp=0.05, doplot=doplot): if doplot: plt.clf() mock = make_l1tf_mock(period=period, sea_amp=sea_amp) l1tf_fit = myl1tf.l1tf(mock["y_with_seasonal"], alpha=alpha, period=period, eta=eta, with_l1p=True) resid = l1tf_fit["x"] - mock["y_with_seasonal"] assert_is_good(resid, mean_abs_resid_max=0.035, max_abs_resid_max=0.1) if doplot: lab = "L1TF, period=%s, alpha=%s, eta=%s" % (period, alpha, eta) plt.plot(mock["x"], l1tf_fit["x"], marker="o", linestyle="-", markersize=4, alpha=0.8, label=lab) lab = "L1TF + seasonal, period=%s, alpha=%s, eta=%s" % (period, alpha, eta) plt.plot(mock["x"], l1tf_fit["x_with_seasonal"], marker="o", markersize=4, linestyle="-", label=lab) plt.legend(loc="lower left") plt.ylim(0, 1) plt.show()
def test_l1tf_on_mock_with_period_l1p_with_spike_and_step(alpha=0.5, period=6, eta=0.1, doplot=doplot, sea_amp=0.05): # no test for this yet if doplot: plt.clf() mock = make_l1tf_mock2(period=period, sea_amp=sea_amp) y = mock["y_with_seasonal"] ymax = max(y) l1tf_fit = myl1tf.l1tf(y, alpha=alpha, period=period, eta=eta, with_l1p=True) if doplot: lab = "L1TF, period=%s, alpha=%s, eta=%s" % (period, alpha, eta) plt.plot(mock["x"], l1tf_fit["x"], marker="o", linestyle="-", markersize=4, alpha=0.8, label=lab) lab = "L1TF + seasonal, period=%s, alpha=%s, eta=%s" % (period, alpha, eta) plt.plot(mock["x"], l1tf_fit["x_with_seasonal"], marker="o", markersize=4, linestyle="-", label=lab) plt.legend(loc="upper left") plt.ylim(0, ymax) plt.plot(mock["x"], y) plt.show() return l1tf_fit