{{alias}}( x, y[, options] ) Computes a two-sample Student's t test. By default, the function performs a two-sample t-test for the null hypothesis that the data in arrays or typed arrays `x` and `y` is independently drawn from normal distributions with equal means. The returned object comes with a `.print()` method which when invoked will print a formatted output of the results of the hypothesis test. Parameters ---------- x: Array First data array. y: Array Second data array. options: Object (optional) Options. options.alpha: number (optional) Number in the interval `[0,1]` giving the significance level of the hypothesis test. Default: `0.05`. options.alternative: string (optional) Either `two-sided`, `less` or `greater`. Indicates whether the alternative hypothesis is that `x` has a larger mean than `y` (`greater`), `x` has a smaller mean than `y` (`less`) or the means are the same (`two-sided`). Default: `'two-sided'`. options.difference: number (optional) Number denoting the difference in means under the null hypothesis. Default: `0`. options.variance: string (optional) String indicating if the test should be conducted under the assumption that the unknown variances of the normal distributions are `equal` or `unequal`. As a default choice, the function carries out the Welch test (using the Satterthwaite approximation for the degrees of freedom), which does not have the requirement that the variances of the underlying distributions are equal. If the equal variances assumption seems warranted, set the option to `equal`. Default: `unequal`. Returns ------- out: Object Test result object. out.alpha: number Used significance level. out.rejected: boolean Test decision. out.pValue: number p-value of the test. out.statistic: number Value of test statistic. out.ci: Array 1-alpha confidence interval for the mean. out.nullValue: number Assumed difference in means under H0. out.xmean: number Sample mean of `x`. out.ymean: number Sample mean of `y`. out.alternative: string Alternative hypothesis (`two-sided`, `less` or `greater`). out.df: number Degrees of freedom. out.method: string Name of test. out.print: Function Function to print formatted output. Examples -------- // Student's sleep data: > var x = [ 0.7, -1.6, -0.2, -1.2, -0.1, 3.4, 3.7, 0.8, 0.0, 2.0 ]; > var y = [ 1.9, 0.8, 1.1, 0.1, -0.1, 4.4, 5.5, 1.6, 4.6, 3.4 ]; > var out = {{alias}}( x, y ) { rejected: false, pValue: ~0.079, statistic: ~-1.861, ci: [ ~-3.365, ~0.205 ], // ... } // Print table output: > var table = out.print() Welch two-sample t-test Alternative hypothesis: True difference in means is not equal to 0 pValue: 0.0794 statistic: -1.8608 95% confidence interval: [-3.3655,0.2055] Test Decision: Fail to reject null in favor of alternative at 5% significance level // Choose a different significance level than `0.05`: > out = {{alias}}( x, y, { 'alpha': 0.1 }); > table = out.print() Welch two-sample t-test Alternative hypothesis: True difference in means is not equal to 0 pValue: 0.0794 statistic: -1.8608 90% confidence interval: [-3.0534,-0.1066] Test Decision: Reject null in favor of alternative at 10% significance level // Perform one-sided tests: > out = {{alias}}( x, y, { 'alternative': 'less' }); > table = out.print() Welch two-sample t-test Alternative hypothesis: True difference in means is less than 0 pValue: 0.0397 statistic: -1.8608 df: 17.7765 95% confidence interval: [-Infinity,-0.1066] Test Decision: Reject null in favor of alternative at 5% significance level > out = {{alias}}( x, y, { 'alternative': 'greater' }); > table = out.print() Welch two-sample t-test Alternative hypothesis: True difference in means is greater than 0 pValue: 0.9603 statistic: -1.8608 df: 17.7765 95% confidence interval: [-3.0534,Infinity] Test Decision: Fail to reject null in favor of alternative at 5% significance level // Run tests with equal variances assumption: > x = [ 2, 3, 1, 4 ]; > y = [ 1, 2, 3, 1, 2, 5, 3, 4 ]; > out = {{alias}}( x, y, { 'variance': 'equal' }); > table = out.print() Two-sample t-test Alternative hypothesis: True difference in means is not equal to 0 pValue: 0.8848 statistic: -0.1486 df: 10 95% confidence interval: [-1.9996,1.7496] Test Decision: Fail to reject null in favor of alternative at 5% significance level // Test for a difference in means besides zero: > var rnorm = {{alias:@stdlib/random/base/normal}}.factory({ 'seed': 372 }); > x = new Array( 100 ); > for ( i = 0; i < x.length; i++ ) { ... x[ i ] = rnorm( 2.0, 3.0 ); ... } > y = new Array( 100 ); > for ( i = 0; i < x.length; i++ ) { ... y[ i ] = rnorm( 1.0, 3.0 ); ... } > out = {{alias}}( x, y, { 'difference': 1.0, 'variance': 'equal' }) { rejected: false, pValue: ~0.642, statistic: ~-0.466, ci: [ ~-0.0455, ~1.646 ], // ... } See Also --------