Ejemplo n.º 1
0
def example_pmd():
    s = {}
    y, a = hospital_with_exog(k=3)
    x = [pmd_exogenous(y=yj, s=s, k=3, a=aj) for yj, aj in zip(y[:500], a)]
    return s
Ejemplo n.º 2
0
        param_names = ['changepoint_prior_scale', 'seasonality_prior_scale']
        return fbprophet_hyperparam_skater_factory(y=y0,
                                                   s=s,
                                                   k=k,
                                                   a=None,
                                                   t=t,
                                                   e=e,
                                                   r=r,
                                                   param_names=param_names,
                                                   recursive=False)

    PROPHET_R2_SKATERS = [
        fbprophet_exogenous_r2, fbprophet_known_r2, fbprophet_univariate_r2,
        fbprophet_recursive_r2
    ]
else:
    PROPHET_SKATERS_SINGULAR = []
    PROPHET_R2_SKATERS = []

if __name__ == '__main__':
    from timemachines.skatertools.data import hospital_with_exog
    from timemachines.skatertools.visualization.priorplot import prior_plot
    import matplotlib.pyplot as plt
    k = 1
    y, a = hospital_with_exog(k=k, n=450, offset=True)
    f = fbprophet_exogenous
    err2 = prior_plot(f=f, k=k, y=y, n=450, n_plot=50)
    print(err2)
    plt.show()
    pass
Ejemplo n.º 3
0
                   t: T_TYPE = None,
                   e: E_TYPE = None,
                   r: R_TYPE = None):
    """ Exponential moving average
          r      weight to place on existing anchor point
    """
    assert r is not None
    y0 = wrap(y)[0]
    if not s.get('rho'):
        s = {'x': y0, 'rho': r}
        assert 0 <= s['rho'] <= 1, 'Expecting rho=r to be between 0 and 1'
    else:
        assert abs(r - s['rho']) < 1e-6, 'rho=r is immutable'

    if y0 is None:
        return None, s, None
    else:
        s['x'] = s['rho'] * s['x'] + (1 - s['rho']) * y0  # Make me better !
        x = [s['x'] * k]
        return x, [1.0] * k, s


if __name__ == '__main__':
    from timemachines.skatertools.data import hospital_with_exog
    from timemachines.skatertools.evaluation.evaluators import evaluate_mean_absolute_error

    k = 3
    y, a = hospital_with_exog(k=k, n=500)
    f = trivial_ema_r1
    err1 = evaluate_mean_absolute_error(f=f, k=k, y=y, a=a, r=0.9, n_burn=50)