Home/Tools/@tpmjs/tools-multiple-testing-adjust

multipleTestingAdjustTool

@tpmjs/tools-multiple-testing-adjust

Adjust p-values for multiple testing using Bonferroni, Benjamini-Hochberg (BH), or Holm methods. Returns adjusted p-values and indices of significant tests. Use Bonferroni for strict family-wise error control, BH for false discovery rate control, or Holm for a more powerful alternative to Bonferroni.

Official
statistics
v0.2.0
MIT

Interactive Playground

Test @tpmjs/tools-multiple-testing-adjust (multipleTestingAdjustTool) 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-multiple-testing-adjust
pnpm add @tpmjs/tools-multiple-testing-adjust
yarn add @tpmjs/tools-multiple-testing-adjust
bun add @tpmjs/tools-multiple-testing-adjust
deno add npm:@tpmjs/tools-multiple-testing-adjust

2. Import the tool

import { multipleTestingAdjustTool } from '@tpmjs/tools-multiple-testing-adjust';

3. Use with AI SDK

import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { multipleTestingAdjustTool } from '@tpmjs/tools-multiple-testing-adjust';

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

console.log(result.text);

Parameters

Available configuration options

Auto-extracted
pValues
Required
Type: array

Array of p-values to adjust (each between 0 and 1)

method
Optional
Type: string

Adjustment method: bonferroni (most conservative), bh (Benjamini-Hochberg, controls FDR), or holm (step-down, more powerful than Bonferroni). Default: bonferroni

alpha
Optional
Type: number

Significance level (default: 0.05)

Schema extracted: 1/1/2026, 8:18:13 AM

README

@tpmjs/tools-multiple-testing-adjust

Adjust p-values for multiple testing using Bonferroni, Benjamini-Hochberg (BH), or Holm methods to control family-wise error rate or false discovery rate.

Installation

npm install @tpmjs/tools-multiple-testing-adjust

Usage

import { multipleTestingAdjustTool } from '@tpmjs/tools-multiple-testing-adjust';

// Use with AI SDK
const result = await multipleTestingAdjustTool.execute({
  pValues: [0.001, 0.02, 0.03, 0.15, 0.8],
  method: 'bh', // 'bonferroni', 'bh', or 'holm'
  alpha: 0.05,
});

console.log(result);
// {
//   adjusted: [0.005, 0.05, 0.05, 0.1875, 0.8],
//   significant: [0, 1, 2],  // Indices of significant tests
//   method: 'bh',
//   alpha: 0.05,
//   metadata: {
//     totalTests: 5,
//     significantCount: 3,
//     originalSignificant: 3
//   }
// }

Parameters

  • pValues (number[], required): Array of p-values to adjust (each between 0 and 1)
  • method (string, optional): Adjustment method - 'bonferroni', 'bh', or 'holm' (default: 'bonferroni')
  • alpha (number, optional): Significance level (default: 0.05)

Returns

{
  adjusted: number[];        // Adjusted p-values in original order
  significant: number[];     // Indices of tests that remain significant
  method: string;            // Method used
  alpha: number;             // Significance level
  metadata: {
    totalTests: number;
    significantCount: number;      // Count after adjustment
    originalSignificant: number;   // Count before adjustment
  }
}

Methods

Bonferroni

  • Most conservative method
  • Controls family-wise error rate (FWER)
  • Multiplies each p-value by the number of tests
  • Use when you need strict control over false positives

Benjamini-Hochberg (BH)

  • Controls false discovery rate (FDR)
  • Less conservative than Bonferroni
  • Better power for large numbers of tests
  • Recommended for exploratory analyses

Holm

  • Step-down procedure
  • Controls FWER like Bonferroni but more powerful
  • Good middle ground between Bonferroni and BH
  • Use when you want FWER control with better power

When to use

  • When performing multiple hypothesis tests simultaneously
  • To avoid inflated Type I error rates
  • In genomics, neuroimaging, A/B testing with multiple variants
  • Any study with multiple comparisons

Example: Comparing methods

const pValues = [0.001, 0.01, 0.02, 0.03, 0.05, 0.1];

// Bonferroni (most strict)
const bonf = await multipleTestingAdjustTool.execute({
  pValues,
  method: 'bonferroni',
});
// significant: [0] - only the smallest p-value survives

// Holm (moderate)
const holm = await multipleTestingAdjustTool.execute({
  pValues,
  method: 'holm',
});
// significant: [0, 1] - two tests survive

// BH (least strict)
const bh = await multipleTestingAdjustTool.execute({
  pValues,
  method: 'bh',
});
// significant: [0, 1, 2, 3] - four tests survive

License

MIT

Statistics

Downloads/month

0

Quality Score

0%

Bundle Size

NPM Keywords

tpmjs
statistics
ai
multiple-testing
p-value-adjustment

Maintainers

thomasdavis(thomasalwyndavis@gmail.com)

Frameworks

vercel-ai