Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Z-Test

One-sample z-Test.

Usage

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

ztest( x, sigma[, opts] )

The function performs a one-sample z-test for the null hypothesis that the data in array or typed array x is drawn from a normal distribution with mean zero and known standard deviation sigma.

var normal = require( '@stdlib/random/array/normal' );

// Create an array of random numbers:
var arr = normal( 300, 0.0, 2.0 );

// Test whether true mean is equal to 0.0:
var out = ztest( arr, 2.0 );
/* e.g., returns
    {
        'rejected': false,
        'pValue': ~0.155,
        'statistic': ~-1.422,
        'ci': [~-0.391,~0.062],
        // ...
    }
*/

The returned object comes with a .print() method which when invoked will print a formatted output of the hypothesis test results. print accepts a digits option that controls the number of decimal digits displayed for the outputs and a decision option which when set to false will hide the test decision.

var table = out.print({
    'digits': 3
});
console.log( table );
/* e.g., =>
    One-sample z-test

    Alternative hypothesis: True mean is not equal to 0

        pValue: 0.155
        statistic: -1.422
        95% confidence interval: [-0.391,0.062]

    Test Decision: Fail to reject null in favor of alternative at 5% significance level
*/

The ztest function accepts the following options:

  • alpha: number in the interval [0,1] giving the significance level of the hypothesis test. Default: 0.05.
  • alternative: Either two-sided, less or greater. Indicates whether the alternative hypothesis is that the mean of x is larger than mu (greater), smaller than mu (less) or equal to mu (two-sided). Default: two-sided.
  • mu: number denoting the hypothesized true mean under the null hypothesis. Default: 0.

By default, the hypothesis test is carried out at a significance level of 0.05. To choose a different significance level, set the alpha option.

var arr = [ 2, 4, 3, 1, 0 ];

var out = ztest( arr, 2.0, {
    'alpha': 0.01
});

var table = out.print();
/* e.g., returns
    One-sample z-test

    Alternative hypothesis: True mean is not equal to 0

        pValue: 0.0253
        statistic: 2.2361
        99% confidence interval: [-0.3039,4.3039]

    Test Decision: Fail to reject null in favor of alternative at 1% significance level
*/

out = ztest( arr, 2.0, {
    'alpha': 0.1
});
table = out.print();
/* e.g., returns
    One-sample z-test

    Alternative hypothesis: True mean is not equal to 0

        pValue: 0.0253
        statistic: 2.2361
        90% confidence interval: [0.5288,3.4712]

    Test Decision: Reject null in favor of alternative at 10% significance level
*/

To test whether the data comes from a distribution with a mean different than zero, set the mu option.

var arr = [ 4, 4, 6, 6, 5 ];

var out = ztest( arr, 1.0, {
    'mu': 5.0
});
/* e.g., returns
    {
        'rejected': false,
        'pValue': 1.0,
        'statistic': 0.0,
        'ci': [ ~4.123, ~5.877 ],
        // ...
    }
*/

By default, a two-sided test is performed. To perform either of the one-sided tests, set the alternative option to less or greater.

var arr = [ 4, 4, 6, 6, 5 ];

var out = ztest( arr, 1.0, {
    'alternative': 'less'
});

var table = out.print();
/* e.g., returns
    One-sample z-test

    Alternative hypothesis: True mean is less than 0

        pValue: 1.0
        statistic: 11.1803
        95% confidence interval: [-Infinity,5.7356]

    Test Decision: Fail to reject null in favor of alternative at 5% significance level
*/

out = ztest( arr, 1.0, {
    'alternative': 'greater'
});
table = out.print();
/* e.g., returns
    One-sample z-test

    Alternative hypothesis: True mean is greater than 0

        pValue: 0.0
        statistic: 11.1803
        95% confidence interval: [4.2644,Infinity]

    Test Decision: Reject null in favor of alternative at 5% significance level
*/

Examples

var normal = require( '@stdlib/random/array/normal' );
var ztest = require( '@stdlib/stats/ztest' );

// Create an array of random numbers:
var arr = normal( 500, 5.0, 4.0 );

// Test whether true mean is equal to 0.0:
var out = ztest( arr, 4.0 );
console.log( out.print() );
/* e.g., =>
    One-sample z-test

    Alternative hypothesis: True mean is not equal to 0

        pValue: 0.0
        statistic: 28.6754
        95% confidence interval: [4.779,5.4802]

    Test Decision: Reject null in favor of alternative at 5% significance level
*/

// Test whether true mean is equal to 5.0:
out = ztest( arr, 4.0, {
    'mu': 5.0
});
console.log( out.print() );
/* e.g., =>
    One-sample z-test

    Alternative hypothesis: True mean is not equal to 5

        pValue: 0.4688
        statistic: 0.7245
        95% confidence interval: [4.779,5.4802]

    Test Decision: Fail to reject null in favor of alternative at 5% significance level
*/

See Also