Home/Tools/@tpmjs/tools-permutation-test

permutationTestTool

@tpmjs/tools-permutation-test

Perform a permutation test to assess the statistical significance of the difference in means between two groups. Returns p-value, observed difference, and significance status. Useful for non-parametric hypothesis testing without assuming normal distribution.

Official
statistics
v0.2.0
MIT

Interactive Playground

Test @tpmjs/tools-permutation-test (permutationTestTool) 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-permutation-test
pnpm add @tpmjs/tools-permutation-test
yarn add @tpmjs/tools-permutation-test
bun add @tpmjs/tools-permutation-test
deno add npm:@tpmjs/tools-permutation-test

2. Import the tool

import { permutationTestTool } from '@tpmjs/tools-permutation-test';

3. Use with AI SDK

import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { permutationTestTool } from '@tpmjs/tools-permutation-test';

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

console.log(result.text);

Parameters

Available configuration options

Auto-extracted
group1
Required
Type: array

First group of numeric values

group2
Required
Type: array

Second group of numeric values

iterations
Optional
Type: number

Number of permutations to perform (default: 10000)

Schema extracted: 1/1/2026, 8:17:43 AM

README

@tpmjs/tools-permutation-test

Perform a permutation test to assess the statistical significance of the difference in means between two groups.

Installation

npm install @tpmjs/tools-permutation-test

Usage

import { permutationTestTool } from '@tpmjs/tools-permutation-test';

// Use with AI SDK
const result = await permutationTestTool.execute({
  group1: [23, 25, 27, 29, 31],
  group2: [18, 20, 22, 24, 26],
  iterations: 10000, // optional, default: 10000
});

console.log(result);
// {
//   pValue: 0.0234,
//   observedDiff: 5,
//   significant: true,
//   iterations: 10000,
//   metadata: {
//     group1Size: 5,
//     group2Size: 5,
//     group1Mean: 27,
//     group2Mean: 22,
//     alpha: 0.05
//   }
// }

Parameters

  • group1 (number[], required): First group of numeric values
  • group2 (number[], required): Second group of numeric values
  • iterations (number, optional): Number of permutations to perform (default: 10000, min: 100, max: 100000)

Returns

{
  pValue: number;              // Two-tailed p-value
  observedDiff: number;        // Absolute difference in means
  significant: boolean;        // Whether p < 0.05
  iterations: number;          // Number of permutations performed
  metadata: {
    group1Size: number;
    group2Size: number;
    group1Mean: number;
    group2Mean: number;
    alpha: number;             // Significance level (0.05)
  }
}

How it works

The permutation test is a non-parametric method that doesn't assume normal distribution:

  1. Calculate the observed difference in means between the two groups
  2. Combine all values from both groups
  3. Randomly shuffle the combined data and split into two groups
  4. Calculate the difference in means for each permutation
  5. Count how many permutations have a difference as extreme or more extreme than observed
  6. Calculate p-value as the proportion of extreme permutations

When to use

  • When you can't assume normal distribution
  • With small sample sizes
  • When comparing means between two independent groups
  • Alternative to t-test when assumptions aren't met

License

MIT

Statistics

Downloads/month

36

Quality Score

77%

Bundle Size

NPM Keywords

tpmjs
statistics
ai
permutation-test
hypothesis-testing

Maintainers

thomasdavis(thomasalwyndavis@gmail.com)

Frameworks

vercel-ai