Home/Tools/@tpmjs/tools-beta-binomial-update

betaBinomialUpdateTool

@tpmjs/tools-beta-binomial-update

Update Beta prior with binomial data to get posterior distribution

Official
statistics
v0.2.0
MIT

Interactive Playground

Test @tpmjs/tools-beta-binomial-update (betaBinomialUpdateTool) with AI-powered execution

0/2000 characters

Installation & Usage

Install this tool and use it with the AI SDK

1. Install the package

npm install @tpmjs/tools-beta-binomial-update
pnpm add @tpmjs/tools-beta-binomial-update
yarn add @tpmjs/tools-beta-binomial-update
bun add @tpmjs/tools-beta-binomial-update
deno add npm:@tpmjs/tools-beta-binomial-update

2. Import the tool

import { betaBinomialUpdateTool } from '@tpmjs/tools-beta-binomial-update';

3. Use with AI SDK

import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { betaBinomialUpdateTool } from '@tpmjs/tools-beta-binomial-update';

const result = await generateText({
  model: openai('gpt-4o'),
  tools: { betaBinomialUpdateTool },
  prompt: 'Your prompt here...',
});

console.log(result.text);

Signature

(trials: number, priorBeta: number, successes: number, priorAlpha: number, credibleLevel?: number) => Promise<unknown>

Tags

bayesian
beta
beta-distribution
binomial
data
distribution
inference
posterior
prior
statistics
tpmjs
update

Parameters

Available configuration options

Auto-extracted
priorAlpha
Required
Type: number

Prior alpha parameter (pseudo-successes)

priorBeta
Required
Type: number

Prior beta parameter (pseudo-failures)

successes
Required
Type: number

Number of successes observed

trials
Required
Type: number

Total number of trials

Schema extracted: 3/1/2026, 4:29:07 AM

README

Beta-Binomial Update

Bayesian beta-binomial conjugate posterior update for estimating probabilities from data with prior beliefs.

Installation

npm install @tpmjs/tools-beta-binomial-update

Usage

import { betaBinomialUpdateTool } from '@tpmjs/tools-beta-binomial-update';

// Example: Estimate conversion rate with prior belief
// Prior: Beta(2, 2) = uniform-ish prior slightly favoring 0.5
// Data: 15 conversions out of 100 trials
const result = await betaBinomialUpdateTool.execute({
  priorAlpha: 2,
  priorBeta: 2,
  successes: 15,
  trials: 100,
  credibleLevel: 0.95, // 95% credible interval
});

console.log(result);
// {
//   posteriorAlpha: 17,      // 2 + 15
//   posteriorBeta: 87,       // 2 + (100 - 15)
//   posteriorMean: 0.163,    // Best estimate
//   posteriorMode: 0.157,    // Most likely value
//   posteriorVariance: 0.001,
//   credibleInterval: {
//     lower: 0.098,
//     upper: 0.239,
//     level: 0.95
//   },
//   statistics: {
//     effectiveSampleSize: 4,
//     priorMean: 0.5,
//     dataLikelihood: 0.15
//   }
// }

API

Input

  • priorAlpha (required): Prior successes + 1 (e.g., 1 for uninformative, 2 for weak prior)
  • priorBeta (required): Prior failures + 1
  • successes (required): Number of successes observed
  • trials (required): Total number of trials
  • credibleLevel (optional): Credible interval level (default: 0.95)

Output

  • posteriorAlpha: Updated alpha parameter
  • posteriorBeta: Updated beta parameter
  • posteriorMean: Expected value of probability
  • posteriorMode: Most likely probability value
  • posteriorVariance: Uncertainty in estimate
  • credibleInterval: Bayesian confidence interval
  • statistics: Prior mean, likelihood, effective sample size

Algorithm

Uses conjugate Beta-Binomial model:

Prior: θ ~ Beta(α, β) Likelihood: X ~ Binomial(n, θ) Posterior: θ|X ~ Beta(α + k, β + (n - k))

Where:

  • k = successes
  • n = trials
  • θ = unknown probability

The Beta distribution is conjugate to the Binomial, making the update simple and exact.

Common Priors

  • Uninformative: Beta(1, 1) = Uniform[0, 1]
  • Jeffreys: Beta(0.5, 0.5) = Uninformative invariant prior
  • Weak: Beta(2, 2) = Slight preference for θ = 0.5
  • Strong: Beta(20, 20) = Strong belief in θ = 0.5

Use Cases

  • A/B test analysis (conversion rates)
  • Click-through rate estimation
  • Medical test sensitivity/specificity
  • Quality control (defect rates)
  • Sports analytics (win probabilities)

Credible Interval

The credible interval is the Bayesian analog of a confidence interval. A 95% credible interval means "there is a 95% probability that θ lies in this interval given the data."

License

MIT

Statistics

Downloads/month

6

GitHub Stars

0

Quality Score

73%

Bundle Size

NPM Keywords

tpmjs
statistics
bayesian
beta-distribution
inference

Maintainers

thomasdavis(thomasalwyndavis@gmail.com)

Frameworks

vercel-ai
betaBinomialUpdateTool | TPMJS | TPMJS