Example #1
0
def _(samples, estimator, repetitions=1000, probs=0.68):
    estimand = torch.zeros(repetitions)
    for i in range(repetitions):
        bootstrap_values = resample(samples,
                                    num_samples=len(samples),
                                    replacement=True)
        estimand[i] = estimator(bootstrap_values)
    return pi(estimand, probs)
Example #2
0
def _(dist, estimator, preprocess=None, repetitions=1000, probs=0.68):
    estimand = torch.zeros(repetitions)
    for i in range(repetitions):
        samples = dist.sample()
        if preprocess is not None:
            samples = preprocess(samples)
        # bootstrap_values = resample(samples, num_samples=len(samples), replacement=True)
        bootstrap_values = np.random.choice(samples,
                                            size=len(samples),
                                            replace=True)
        estimand[i] = estimator(bootstrap_values)
    return pi(estimand, probs)
Example #3
0
def get_percentile_confidence_interval(samples, probs):
    pi = stats.pi(samples, prob=probs)
    below_interval_1 = (samples < pi[0].item()).sum().float() / len(samples)
    below_interval_2 = (samples < pi[1].item()).sum().float() / len(samples)

    df = {
        "LPI":
        [round(below_interval_1.item(), 2) * 100,
         round(pi[0].item(), 2)],
        "UPI":
        [round(below_interval_2.item(), 2) * 100,
         round(pi[1].item(), 2)]
    }
    df = pd.DataFrame.from_dict(df)
    return df
Example #4
0
def _pi(x, dim=0):
    return pi(x, prob=0.8, dim=dim)
Example #5
0
def test_hpdi():
    x = torch.randn(20000)
    assert_equal(hpdi(x, prob=0.8), pi(x, prob=0.8), prec=0.01)

    x = torch.empty(20000).exponential_(1)
    assert_equal(hpdi(x, prob=0.2), torch.tensor([0.0, 0.22]), prec=0.01)
Example #6
0
def test_pi():
    x = torch.randn(1000).exp()
    assert_equal(pi(x, prob=0.8), quantile(x, probs=[0.1, 0.9]))
Example #7
0
def _(dist, estimator, repetitions=1000, probs=0.68):
    samples = dist.sample((repetitions, ))
    estimand = torch.zeros(repetitions)
    for i in range(repetitions):
        estimand[i] = estimator(samples[i])
    return pi(estimand, probs)
Example #8
0
def test_pi():
    x = torch.empty(1000).log_normal_(0, 1)
    assert_equal(pi(x, prob=0.8), quantile(x, probs=[0.1, 0.9]))