Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

ztest

Compute a one-sample Z-test for a strided array.

A Z-test commonly refers to a one-sample location test which compares the mean of a set of measurements X to a given constant when the standard deviation is known. A Z-test supports testing three different null hypotheses H0:

  • H0: μ ≥ μ0 versus the alternative hypothesis H1: μ < μ0.
  • H0: μ ≤ μ0 versus the alternative hypothesis H1: μ > μ0.
  • H0: μ = μ0 versus the alternative hypothesis H1: μ ≠ μ0.

Usage

var ztest = require( '@stdlib/stats/strided/ztest' );

ztest( N, alternative, alpha, mu, sigma, x, strideX, out )

Computes a one-sample Z-test for a strided array.

var Results = require( '@stdlib/stats/base/ztest/one-sample/results/float64' );

var x = [ 4.0, 4.0, 6.0, 6.0, 5.0 ];

var results = new Results();
var out = ztest( x.length, 'two-sided', 0.05, 0.0, 1.0, x, 1, results );
// returns {...}

var bool = ( out === results );
// returns true

The function has the following parameters:

  • N: number of indexed elements.
  • alternative: alternative hypothesis.
  • alpha: significance level.
  • mu: mean value under the null hypothesis.
  • sigma: known standard deviation.
  • x: input array.
  • strideX: stride length for x.
  • out: output results object.

The N and stride parameters determine which elements in the strided array are accessed at runtime. For example, to perform a one-sample Z-test over every other element in x,

var Results = require( '@stdlib/stats/base/ztest/one-sample/results/float64' );

var x = [ 4.0, 0.0, 4.0, 0.0, 6.0, 0.0, 6.0, 0.0, 5.0, 0.0 ];

var results = new Results();
var out = ztest( 5, 'two-sided', 0.05, 0.0, 1.0, x, 2, results );
// returns {...}

var bool = ( out === results );
// returns true

Note that indexing is relative to the first index. To introduce an offset, use typed array views.

var Results = require( '@stdlib/stats/base/ztest/one-sample/results/float64' );
var Float64Array = require( '@stdlib/array/float64' );

var x0 = new Float64Array( [ 0.0, 4.0, 4.0, 6.0, 6.0, 5.0 ] );
var x1 = new Float64Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element

var results = new Results();
var out = ztest( x1.length, 'two-sided', 0.05, 0.0, 1.0, x1, 1, results );
// returns {...}

var bool = ( out === results );
// returns true

ztest.ndarray( N, alternative, alpha, mu, sigma, x, strideX, offsetX, out )

Computes a one-sample Z-test for a strided array using alternative indexing semantics.

var Results = require( '@stdlib/stats/base/ztest/one-sample/results/float64' );

var x = [ 4.0, 4.0, 6.0, 6.0, 5.0 ];

var results = new Results();
var out = ztest.ndarray( x.length, 'two-sided', 0.05, 0.0, 1.0, x, 1, 0, results );
// returns {...}

var bool = ( out === results );
// returns true

The function has the following additional parameters:

  • offsetX: starting index for x.

While typed array views mandate a view offset based on the underlying buffer, the offset parameter supports indexing semantics based on a starting index. For example, to perform a one-sample Z-test over every other element in x starting from the second element

var Results = require( '@stdlib/stats/base/ztest/one-sample/results/float64' );

var x = [ 0.0, 4.0, 0.0, 4.0, 0.0, 6.0, 0.0, 6.0, 0.0, 5.0 ];

var results = new Results();
var out = ztest.ndarray( 5, 'two-sided', 0.05, 0.0, 1.0, x, 2, 1, results );
// returns {...}

var bool = ( out === results );
// returns true

Notes

  • As a general rule of thumb, a Z-test is most reliable when N >= 50. For smaller sample sizes or when the standard deviation is unknown, prefer a t-test.
  • Both functions support array-like objects having getter and setter accessors for array element access (e.g., @stdlib/array/base/accessor).
  • Depending on the environment, the typed versions (dztest, sztest, etc.) are likely to be significantly more performant.

Examples

var Results = require( '@stdlib/stats/base/ztest/one-sample/results/float64' );
var normal = require( '@stdlib/random/array/normal' );
var ztest = require( '@stdlib/stats/strided/ztest' );

var x = normal( 1000, 0.0, 1.0, {
    'dtype': 'generic'
});

var results = new Results();
var out = ztest( x.length, 'two-sided', 0.05, 0.0, 1.0, x, 1, results );
// returns {...}

console.log( out.toString() );