GNU Octave Manual Version 3 by John W. Eaton, David Bateman, Søren Hauberg Paperback (6"x9"), 568 pages ISBN 095461206X RRP £24.95 ($39.95) 
24.4 Tests
Octave can perform several different statistical tests. The following table summarizes the available tests.
Hypothesis  Test Functions

Equal mean values  anova , hotelling_test2 , t_test_2 ,
welch_test , wilcoxon_test , z_test_2

Equal medians  kruskal_wallis_test , sign_test

Equal variances  bartlett_test , manova , var_test

Equal distributions  chisquare_test_homogeneity , kolmogorov_smirnov_test_2 ,
u_test

Equal marginal frequencies  mcnemar_test

Equal success probabilities  prop_test_2

Independent observations  chisquare_test_independence , run_test

Uncorrelated observations  cor_test

Given mean value  hotelling_test , t_test , z_test

Observations from given distribution  kolmogorov_smirnov_test

Regression  f_test_regression , t_test_regression

 Function File: [pval, f, df_b, df_w] = anova (y, g)
 Perform a oneway analysis of variance (ANOVA). The goal is to test whether the population means of data taken from k different groups are all equal. Data may be given in a single vector y with groups specified by a corresponding vector of group labels g (e.g. numbers from 1 to k). This is the general form which does not impose any restriction on the number of data in each group or the group labels. If y is a matrix and g is omitted, each column of y is treated as a group. This form is only appropriate for balanced ANOVA in which the numbers of samples from each group are all equal. Under the null hypothesis of constant means, the statistic f follows an F distribution with df_b and df_w degrees of freedom. The pvalue (1 minus the CDF of this distribution at f) is returned in pval. If no output argument is given, the standard oneway ANOVA table is printed.
 Function File: [pval, chisq, df] = bartlett_test (x1, ...)
 Perform a Bartlett test for the homogeneity of variances in the data vectors x1, x2, ..., xk, where k > 1. Under the null hypothesis of equal variances, the test statistic chisq approximately follows a chisquare distribution with df degrees of freedom. The pvalue (1 minus the CDF of this distribution at chisq) is returned in pval. If no output argument is given, the pvalue is displayed.
 Function File: [pval, chisq, df] = chisquare_test_homogeneity (x, y, c)
 Given two samples x and y, perform a chisquare test for
homogeneity of the null hypothesis that x and y come from
the same distribution, based on the partition induced by the
(strictly increasing) entries of c.
For large samples, the test statistic chisq approximately follows a
chisquare distribution with df =
length (c)
degrees of freedom. The pvalue (1 minus the CDF of this distribution at chisq) is returned in pval. If no output argument is given, the pvalue is displayed.
 Function File: [pval, chisq, df] = chisquare_test_independence (x)
 Perform a chisquare test for independence based on the contingency table x. Under the null hypothesis of independence, chisq approximately has a chisquare distribution with df degrees of freedom. The pvalue (1 minus the CDF of this distribution at chisq) of the test is returned in pval. If no output argument is given, the pvalue is displayed.
 Function File: cor_test (x, y, alt, method)
 Test whether two samples x and y come from uncorrelated
populations.
The optional argument string alt describes the alternative
hypothesis, and can be
"!="
or"<>"
(nonzero),">"
(greater than 0), or"<"
(less than 0). The default is the twosided case. The optional argument string method specifies on which correlation coefficient the test should be based. If method is"pearson"
(default), the (usual) Pearson's product moment correlation coefficient is used. In this case, the data should come from a bivariate normal distribution. Otherwise, the other two methods offer nonparametric alternatives. If method is"kendall"
, then Kendall's rank correlation tau is used. If method is"spearman"
, then Spearman's rank correlation rho is used. Only the first character is necessary. The output is a structure with the following elements: pval
 The pvalue of the test.
 stat
 The value of the test statistic.
 dist
 The distribution of the test statistic.
 params
 The parameters of the null distribution of the test statistic.
 alternative
 The alternative hypothesis.
 method
 The method used for testing.
 Function File: [pval, f, df_num, df_den] = f_test_regression (y, x, rr, r)
 Perform an F test for the null hypothesis
rr * b = r
in a classical normal regression modely = X * b + e
. Under the null hypothesis, the test statistic f follows an F distribution with df_num and df_den degrees of freedom. The pvalue (1 minus the CDF of this distribution at f) is returned in pval. If not given explicitly, r = 0. If no output argument is given, the pvalue is displayed.
 Function File: [pval, tsq] = hotelling_test (x, m)
 For a sample x from a multivariate normal distribution with unknown
mean and covariance matrix, test the null hypothesis that
mean (x) == m
. Hotelling's T^2 is returned in tsq. Under the null hypothesis, (np) T^2 / (p(n1)) has an F distribution with p and np degrees of freedom, where n and p are the numbers of samples and variables, respectively. The pvalue of the test is returned in pval. If no output argument is given, the pvalue of the test is displayed.
 Function File: [pval, tsq] = hotelling_test_2 (x, y)
 For two samples x from multivariate normal distributions with
the same number of variables (columns), unknown means and unknown
equal covariance matrices, test the null hypothesis
mean (x) == mean (y)
. Hotelling's twosample T^2 is returned in tsq. Under the null hypothesis,(n_x+n_yp1) T^2 / (p(n_x+n_y2))
has an F distribution with p and n_x+n_yp1 degrees of freedom, where n_x and n_y are the sample sizes and p is the number of variables. The pvalue of the test is returned in pval. If no output argument is given, the pvalue of the test is displayed.
 Function File: [pval, ks] = kolmogorov_smirnov_test (x, dist, params, alt)
 Perform a KolmogorovSmirnov test of the null hypothesis that the
sample x comes from the (continuous) distribution dist, i.e.
if F and G are the CDFs corresponding to the sample and distribution,
respectively, then the null hypothesis is that F = G.
The optional argument params contains a list of parameters of
dist. For example, to test whether a sample x comes from
a uniform distribution on [2,4], use
kolmogorov_smirnov_test(x, "uniform", 2, 4)
dist can be any string for which a function dist_cdf that calculates the CDF of distribution dist exists. With the optional argument string alt, the alternative of interest can be selected. If alt is"!="
or"<>"
, the null hypothesis is tested against the twosided alternative F \ne G. In this case, the test statistic ks follows a twosided KolmogorovSmirnov distribution. If alt is">"
, the onesided alternative F > G is considered. Similarly for"<"
, the onesided alternative F > G is considered. In this case, the test statistic ks has a onesided KolmogorovSmirnov distribution. The default is the twosided case. The pvalue of the test is returned in pval. If no output argument is given, the pvalue is displayed.
 Function File: [pval, ks, d] = kolmogorov_smirnov_test_2 (x, y, alt)
 Perform a 2sample KolmogorovSmirnov test of the null hypothesis
that the samples x and y come from the same (continuous)
distribution, i.e. if F and G are the CDFs corresponding to the
x and y samples, respectively, then the null hypothesis is that F = G.
With the optional argument string alt, the alternative of
interest can be selected. If alt is
"!="
or"<>"
, the null hypothesis is tested against the twosided alternative F \ne G. In this case, the test statistic ks follows a twosided KolmogorovSmirnov distribution. If alt is">"
, the onesided alternative F > G is considered. Similarly for"<"
, the onesided alternative F < G is considered. In this case, the test statistic ks has a onesided KolmogorovSmirnov distribution. The default is the twosided case. The pvalue of the test is returned in pval. The third returned value, d, is the test statistic, the maximum vertical distance between the two cumulative distribution functions. If no output argument is given, the pvalue is displayed.
 Function File: [pval, k, df] = kruskal_wallis_test (x1, ...)
 Perform a KruskalWallis onefactor "analysis of variance". Suppose a variable is observed for k > 1 different groups, and let x1, ..., xk be the corresponding data vectors. Under the null hypothesis that the ranks in the pooled sample are not affected by the group memberships, the test statistic k is approximately chisquare with df = k  1 degrees of freedom. If the data contains ties (some value appears more than once) k is divided by 1  sumTies / ( n^3  n )where sumTies is the sum of t^2  t over each group of ties where t is the number of ties in the group and n is the total number of values in the input data. For more information on this adjustment see "Use of Ranks in OneCriterion Variance Analysis" in Journal of the American Statistical Association, Vol. 47, No. 260 (Dec 1952) by William H. Kruskal and W. Allen Wallis. The pvalue (1 minus the CDF of this distribution at k) is returned in pval. If no output argument is given, the pvalue is displayed.
 Function File: manova (y, g)
 Perform a oneway multivariate analysis of variance (MANOVA). The goal is to test whether the pdimensional population means of data taken from k different groups are all equal. All data are assumed drawn independently from pdimensional normal distributions with the same covariance matrix. The data matrix is given by y. As usual, rows are observations and columns are variables. The vector g specifies the corresponding group labels (e.g. numbers from 1 to k). The LR test statistic (Wilks' Lambda) and approximate pvalues are computed and displayed.
 Function File: [pval, chisq, df] = mcnemar_test (x)
 For a square contingency table x of data crossclassified on the row and column variables, McNemar's test can be used for testing the null hypothesis of symmetry of the classification probabilities. Under the null hypothesis, chisq is approximately distributed as chisquare with df degrees of freedom. The pvalue (1 minus the CDF of this distribution at chisq) is returned in pval. If no output argument is given, the pvalue of the test is displayed.
 Function File: [pval, z] = prop_test_2 (x1, n1, x2, n2, alt)
 If x1 and n1 are the counts of successes and trials in
one sample, and x2 and n2 those in a second one, test the
null hypothesis that the success probabilities p1 and p2
are the same. Under the null hypothesis, the test statistic z
approximately follows a standard normal distribution.
With the optional argument string alt, the alternative of
interest can be selected. If alt is
"!="
or"<>"
, the null hypothesis is tested against the twosided alternative p1 != p2. If alt is">"
, the onesided alternative p1 > p2 is used. Similarly for"<"
, the onesided alternative p1 < p2 is used. The default is the twosided case. The pvalue of the test is returned in pval. If no output argument is given, the pvalue of the test is displayed.
 Function File: [pval, chisq] = run_test (x)
 Perform a chisquare test with 6 degrees of freedom based on the upward runs in the columns of x. Can be used to test whether x contains independent data. The pvalue of the test is returned in pval. If no output argument is given, the pvalue is displayed.
 Function File: [pval, b, n] = sign_test (x, y, alt)
 For two matchedpair samples x and y, perform a sign test
of the null hypothesis PROB (x > y) == PROB (x <
y) == 1/2. Under the null hypothesis, the test statistic b roughly
follows a binomial distribution with parameters
n = sum (x != y)
and p = 1/2. With the optional argumentalt
, the alternative of interest can be selected. If alt is"!="
or"<>"
, the null hypothesis is tested against the twosided alternative PROB (x < y) != 1/2. If alt is">"
, the onesided alternative PROB (x > y) > 1/2 ("x is stochastically greater than y") is considered. Similarly for"<"
, the onesided alternative PROB (x > y) < 1/2 ("x is stochastically less than y") is considered. The default is the twosided case. The pvalue of the test is returned in pval. If no output argument is given, the pvalue of the test is displayed.
 Function File: [pval, t, df] = t_test (x, m, alt)
 For a sample x from a normal distribution with unknown mean and
variance, perform a ttest of the null hypothesis
mean (x) == m
. Under the null hypothesis, the test statistic t follows a Student distribution withdf = length (x)  1
degrees of freedom. With the optional argument string alt, the alternative of interest can be selected. If alt is"!="
or"<>"
, the null hypothesis is tested against the twosided alternativemean (x) != m
. If alt is">"
, the onesided alternativemean (x) > m
is considered. Similarly for "<", the onesided alternativemean (x) < m
is considered. The default is the twosided case. The pvalue of the test is returned in pval. If no output argument is given, the pvalue of the test is displayed.
 Function File: [pval, t, df] = t_test_2 (x, y, alt)
 For two samples x and y from normal distributions with unknown means
and unknown equal variances, perform a twosample ttest of the null
hypothesis of equal means. Under the null hypothesis, the test statistic
t follows a Student distribution with df degrees of
freedom.
With the optional argument string alt, the alternative of
interest can be selected. If alt is
"!="
or"<>"
, the null hypothesis is tested against the twosided alternativemean (x) != mean (y)
. If alt is">"
, the onesided alternativemean (x) > mean (y)
is used. Similarly for"<"
, the onesided alternativemean (x) < mean (y)
is used. The default is the twosided case. The pvalue of the test is returned in pval. If no output argument is given, the pvalue of the test is displayed.
 Function File: [pval, t, df] = t_test_regression (y, x, rr, r, alt)
 Perform an t test for the null hypothesis
rr * b = r
in a classical normal regression modely = x * b + e
. Under the null hypothesis, the test statistic t follows a t distribution with df degrees of freedom. If r is omitted, a value of 0 is assumed. With the optional argument string alt, the alternative of interest can be selected. If alt is"!="
or"<>"
, the null hypothesis is tested against the twosided alternativerr * b != r
. If alt is">"
, the onesided alternativerr * b > r
is used. Similarly for "<", the onesided alternativerr * b < r
is used. The default is the twosided case. The pvalue of the test is returned in pval. If no output argument is given, the pvalue of the test is displayed.
 Function File: [pval, z] = u_test (x, y, alt)
 For two samples x and y, perform a MannWhitney Utest of
the null hypothesis PROB (x > y) == 1/2 == PROB (x
< y). Under the null hypothesis, the test statistic z approximately
follows a standard normal distribution. Note that this test is
equivalent to the Wilcoxon ranksum test.
With the optional argument string alt, the alternative of
interest can be selected. If alt is
"!="
or"<>"
, the null hypothesis is tested against the twosided alternative PROB (x > y) != 1/2. If alt is">"
, the onesided alternative PROB (x > y) > 1/2 is considered. Similarly for"<"
, the onesided alternative PROB (x > y) < 1/2 is considered. The default is the twosided case. The pvalue of the test is returned in pval. If no output argument is given, the pvalue of the test is displayed.
 Function File: [pval, f, df_num, df_den] = var_test (x, y, alt)
 For two samples x and y from normal distributions with
unknown means and unknown variances, perform an Ftest of the null
hypothesis of equal variances. Under the null hypothesis, the test statistic
f follows an Fdistribution with df_num and df_den
degrees of freedom.
With the optional argument string alt, the alternative of
interest can be selected. If alt is
"!="
or"<>"
, the null hypothesis is tested against the twosided alternativevar (x) != var (y)
. If alt is">"
, the onesided alternativevar (x) > var (y)
is used. Similarly for "<", the onesided alternativevar (x) > var (y)
is used. The default is the twosided case. The pvalue of the test is returned in pval. If no output argument is given, the pvalue of the test is displayed.
 Function File: [pval, t, df] = welch_test (x, y, alt)
 For two samples x and y from normal distributions with
unknown means and unknown and not necessarily equal variances,
perform a Welch test of the null hypothesis of equal means.
Under the null hypothesis, the test statistic t approximately follows a
Student distribution with df degrees of freedom.
With the optional argument string alt, the alternative of
interest can be selected. If alt is
"!="
or"<>"
, the null hypothesis is tested against the twosided alternativemean (x) != m
. If alt is">"
, the onesided alternative mean(x) > m is considered. Similarly for"<"
, the onesided alternative mean(x) < m is considered. The default is the twosided case. The pvalue of the test is returned in pval. If no output argument is given, the pvalue of the test is displayed.
 Function File: [pval, z] = wilcoxon_test (x, y, alt)
 For two matchedpair sample vectors x and y, perform a
Wilcoxon signedrank test of the null hypothesis PROB (x >
y) == 1/2. Under the null hypothesis, the test statistic z
approximately follows a standard normal distribution when n > 25.
Warning: This function assumes a normal distribution for z
and thus is invalid for n <= 25.
With the optional argument string alt, the alternative of
interest can be selected. If alt is
"!="
or"<>"
, the null hypothesis is tested against the twosided alternative PROB (x > y) != 1/2. If alt is">"
, the onesided alternative PROB (x > y) > 1/2 is considered. Similarly for"<"
, the onesided alternative PROB (x > y) < 1/2 is considered. The default is the twosided case. The pvalue of the test is returned in pval. If no output argument is given, the pvalue of the test is displayed.
 Function File: [pval, z] = z_test (x, m, v, alt)
 Perform a Ztest of the null hypothesis
mean (x) == m
for a sample x from a normal distribution with unknown mean and known variance v. Under the null hypothesis, the test statistic z follows a standard normal distribution. With the optional argument string alt, the alternative of interest can be selected. If alt is"!="
or"<>"
, the null hypothesis is tested against the twosided alternativemean (x) != m
. If alt is">"
, the onesided alternativemean (x) > m
is considered. Similarly for"<"
, the onesided alternativemean (x) < m
is considered. The default is the twosided case. The pvalue of the test is returned in pval. If no output argument is given, the pvalue of the test is displayed along with some information.
 Function File: [pval, z] = z_test_2 (x, y, v_x, v_y, alt)
 For two samples x and y from normal distributions with
unknown means and known variances v_x and v_y, perform a
Ztest of the hypothesis of equal means. Under the null hypothesis, the test
statistic z follows a standard normal distribution.
With the optional argument string alt, the alternative of
interest can be selected. If alt is
"!="
or"<>"
, the null hypothesis is tested against the twosided alternativemean (x) != mean (y)
. If alt is">"
, the onesided alternativemean (x) > mean (y)
is used. Similarly for"<"
, the onesided alternativemean (x) < mean (y)
is used. The default is the twosided case. The pvalue of the test is returned in pval. If no output argument is given, the pvalue of the test is displayed along with some information.
ISBN 095461206X  GNU Octave Manual Version 3  See the print edition 