Compute a one-sample Z-test for a double-precision floating-point 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: μ ≥ μ0versus the alternative hypothesisH1: μ < μ0.H0: μ ≤ μ0versus the alternative hypothesisH1: μ > μ0.H0: μ = μ0versus the alternative hypothesisH1: μ ≠ μ0.
var dztest = require( '@stdlib/stats/strided/dztest' );Computes a one-sample Z-test for a double-precision floating-point strided array.
var Results = require( '@stdlib/stats/base/ztest/one-sample/results/float64' );
var Float64Array = require( '@stdlib/array/float64' );
var x = new Float64Array( [ 4.0, 4.0, 6.0, 6.0, 5.0 ] );
var results = new Results();
var out = dztest( x.length, 'two-sided', 0.05, 0.0, 1.0, x, 1, results );
// returns {...}
var bool = ( out === results );
// returns trueThe 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
Float64Array. - 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 Float64Array = require( '@stdlib/array/float64' );
var x = new Float64Array( [ 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 = dztest( 5, 'two-sided', 0.05, 0.0, 1.0, x, 2, results );
// returns {...}
var bool = ( out === results );
// returns trueNote 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 = dztest( x1.length, 'two-sided', 0.05, 0.0, 1.0, x1, 1, results );
// returns {...}
var bool = ( out === results );
// returns trueComputes a one-sample Z-test for a double-precision floating-point strided array using alternative indexing semantics.
var Results = require( '@stdlib/stats/base/ztest/one-sample/results/float64' );
var Float64Array = require( '@stdlib/array/float64' );
var x = new Float64Array( [ 4.0, 4.0, 6.0, 6.0, 5.0 ] );
var results = new Results();
var out = dztest.ndarray( x.length, 'two-sided', 0.05, 0.0, 1.0, x, 1, 0, results );
// returns {...}
var bool = ( out === results );
// returns trueThe 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 Float64Array = require( '@stdlib/array/float64' );
var x = new Float64Array( [ 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 = dztest.ndarray( 5, 'two-sided', 0.05, 0.0, 1.0, x, 2, 1, results );
// returns {...}
var bool = ( out === results );
// returns true- 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.
var Results = require( '@stdlib/stats/base/ztest/one-sample/results/float64' );
var normal = require( '@stdlib/random/array/normal' );
var dztest = require( '@stdlib/stats/strided/dztest' );
var x = normal( 1000, 0.0, 1.0, {
'dtype': 'float64'
});
var results = new Results();
var out = dztest( x.length, 'two-sided', 0.05, 0.0, 1.0, x, 1, results );
// returns {...}
console.log( out.toString() );#include "stdlib/stats/strided/dztest.h"Computes a one-sample Z-test for a double-precision floating-point strided array.
#include "stdlib/stats/base/ztest/one-sample/results/float64.h"
#include "stdlib/stats/base/ztest/alternatives.h"
struct stdlib_stats_ztest_one_sample_float64_results results = {
.rejected = false,
.alpha = 0.0,
.alternative = STDLIB_STATS_ZTEST_TWO_SIDED,
.pValue = 0.0,
.statistic = 0.0,
.ci = { 0.0, 0.0 },
.nullValue = 0.0,
.sd = 0.0
};
const double x[] = { 4.0, 4.0, 6.0, 6.0, 5.0 };
stdlib_strided_dztest( 5, STDLIB_STATS_ZTEST_TWO_SIDED, 0.05, 0.0, 1.0, x, 1, &results );The function accepts the following arguments:
- N:
[in] CBLAS_INTnumber of indexed elements. - alternative:
[in] enum STDLIB_STATS_ZTEST_ALTERNATIVEalternative hypothesis. - alpha:
[in] doublesignificance level. - mu:
[in] doublevalue of the mean under the null hypothesis. - sigma
[in] doubleknown standard deviation. - X:
[in] double*input array. - strideX:
[in] CBLAS_INTstride length forX. - results:
[out] struct stdlib_stats_ztest_one_sample_results_float64*output results object.
void stdlib_strided_dztest( const CBLAS_INT N, const enum STDLIB_STATS_ZTEST_ALTERNATIVE alternative, const double alpha, const double mu, const double sigma, const double *X, const CBLAS_INT strideX, struct stdlib_stats_ztest_one_sample_float64_results *results );Computes a one-sample Z-test for a double-precision floating-point strided array using alternative indexing semantics.
#include "stdlib/stats/base/ztest/one-sample/results/float64.h"
#include "stdlib/stats/base/ztest/alternatives.h"
struct stdlib_stats_ztest_one_sample_float64_results results = {
.rejected = false,
.alpha = 0.0,
.alternative = STDLIB_STATS_ZTEST_TWO_SIDED,
.pValue = 0.0,
.statistic = 0.0,
.ci = { 0.0, 0.0 },
.nullValue = 0.0,
.sd = 0.0
};
const double x[] = { 4.0, 4.0, 6.0, 6.0, 5.0 };
stdlib_strided_dztest_ndarray( 5, STDLIB_STATS_ZTEST_TWO_SIDED, 0.05, 0.0, 1.0, x, 1, 0, &results );The function accepts the following arguments:
- N:
[in] CBLAS_INTnumber of indexed elements. - alternative:
[in] enum STDLIB_STATS_ZTEST_ALTERNATIVEalternative hypothesis. - alpha:
[in] doublesignificance level. - mu:
[in] doublevalue of the mean under the null hypothesis. - sigma
[in] doubleknown standard deviation. - X:
[in] double*input array. - strideX:
[in] CBLAS_INTstride length forX. - offsetX:
[in] CBLAS_INTstarting index forX. - results:
[out] struct stdlib_stats_ztest_one_sample_results_float64*output results object.
void stdlib_strided_dztest_ndarray( const CBLAS_INT N, const enum STDLIB_STATS_ZTEST_ALTERNATIVE alternative, const double alpha, const double mu, const double sigma, const double *X, const CBLAS_INT strideX, const CBLAS_INT offsetX, struct stdlib_stats_ztest_one_sample_float64_results *results );#include "stdlib/stats/strided/dztest.h"
#include "stdlib/stats/base/ztest/one-sample/results/float64.h"
#include "stdlib/stats/base/ztest/alternatives.h"
#include <stdbool.h>
#include <stdio.h>
int main( void ) {
// Create a strided array:
const double x[] = { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 };
// Specify the number of elements:
const int N = 4;
// Specify the stride length:
const int strideX = 2;
// Initialize a results object:
struct stdlib_stats_ztest_one_sample_float64_results results = {
.rejected = false,
.alpha = 0.0,
.alternative = STDLIB_STATS_ZTEST_TWO_SIDED,
.pValue = 0.0,
.statistic = 0.0,
.ci = { 0.0, 0.0 },
.nullValue = 0.0,
.sd = 0.0
};
// Compute a Z-test:
stdlib_strided_dztest( N, STDLIB_STATS_ZTEST_TWO_SIDED, 0.05, 5.0, 3.0, x, strideX, &results );
// Print the result:
printf( "Statistic: %lf\n", results.statistic );
printf( "Null hypothesis was %s\n", ( results.rejected ) ? "rejected" : "not rejected" );
}