NAG Library Function Document nag_kruskal_wallis_test (g08afc)

Similar documents
NAG Library Function Document nag_kruskal_wallis_test (g08afc)

NAG C Library Function Document nag_kruskal_wallis_test (g08afc)

NAG Library Function Document nag_friedman_test (g08aec)

NAG Library Function Document nag_durbin_watson_stat (g02fcc)

NAG Library Function Document nag_summary_stats_onevar_combine (g01auc)

NAG Library Function Document nag_mv_discrim (g03dac)

NAG Library Function Document nag_outlier_peirce (g07gac)

NAG Library Function Document nag_legendre_p (s22aac)

NAG Library Function Document nag_frequency_table (g01aec)

NAG Library Function Document nag_tsa_dickey_fuller_unit (g13awc)

NAG Library Function Document nag_wfilt (c09aac)

NAG Library Function Document nag_sum_sqs_update (g02btc)

NAG Library Function Document nag_smooth_spline_fit (g10abc)

NAG Library Function Document nag_tsa_auto_corr_part (g13acc)

NAG Library Function Document nag_corr_cov (g02bxc)

NAG Library Function Document nag_stable_sort (m01ctc)

NAG Library Function Document nag_mv_prin_comp (g03aac)

NAG Library Function Document nag_chi_sq_2_way_table (g11aac)

NAG Library Function Document nag_quad_md_gauss (d01fbc)

NAG Library Function Document nag_2d_spline_eval (e02dec)

NAG Library Function Document nag_regsn_mult_linear_upd_model (g02ddc)

NAG Library Function Document nag_bsm_price (s30aac)

NAG Library Function Document nag_prob_non_central_f_dist (g01gdc)

NAG Library Function Document nag_1d_spline_evaluate (e02bbc)

NAG Library Function Document nag_regsn_mult_linear_delete_var (g02dfc)

NAG Library Function Document nag_prob_durbin_watson (g01epc)

NAG Library Function Document nag_2d_panel_sort (e02zac)

NAG Library Function Document nag_sum_fft_real_3d (c06pyc)

NAG Library Function Document nag_dspr (f16pqc)

NAG Library Function Document nag_sum_fft_cosine (c06rfc)

NAG Library Function Document nag_dwt (c09cac)

NAG Library Function Document nag_dger (f16pmc)

NAG Library Function Document nag_dtpttr (f01vcc)

NAG Library Function Document nag_search_vector (m01fsc)

NAG Library Function Document nag_real_gen_matrix_exp (f01ecc)

NAG Library Function Document nag_dummy_vars (g04eac)

NAG Library Function Document nag_tsa_noise_spectrum_bivar (g13cgc)

NAG Library Function Document nag_dtfttp (f01vlc)

NAG Library Function Document nag_regress_confid_interval (g02cbc)

NAG Library Function Document nag_dtpsv (f16plc)

NAG Library Function Document nag_binomial_ci (g07aac)

NAG Library Function Document nag_tsa_cp_binary (g13ndc)

NAG Library Function Document nag_2_sample_ks_test (g08cdc)

NAG Library Function Document nag_tsa_varma_update (g13dkc)

NAG Library Function Document nag_zaxpby (f16gcc)

NAG Library Function Document nag_mv_dendrogram (g03ehc)

NAG C Library Function Document nag_binary_factor_service (g11sbc)

NAG Library Function Document nag_5d_shep_eval (e01tnc)

NAG Library Function Document nag_kalman_sqrt_filt_info_var (g13ecc)

NAG Library Function Document nag_dgetrf (f07adc)

NAG Library Function Document nag_2d_spline_eval_rect (e02dfc)

NAG Library Function Document nag_regsn_mult_linear_addrem_obs (g02dcc)

NAG Library Function Document nag_robust_m_corr_user_fn (g02hlc)

NAG Library Function Document nag_ode_bvp_ps_lin_cheb_eval (d02uzc)

NAG Library Function Document nag_1d_spline_fit_knots (e02bac)

NAG Library Function Document nag_tsa_spectrum_univar_cov (g13cac)

NAG Library Function Document nag_dsf_norm (f16rkc)

NAG Library Function Document nag_bessel_j0 (s17aec)

NAG Library Function Document nag_bessel_j1 (s17afc)

NAG Library Function Document nag_1d_spline_deriv (e02bcc)

NAG Library Function Document nag_sum_convcorr_real (c06fkc)

NAG Library Function Document nag_nd_shep_eval (e01znc)

NAG Library Function Document nag_full_step_regsn (g02efc)

NAG Library Function Document nag_robust_m_corr_user_fn_no_derr (g02hmc)

NAG Library Function Document nag_superlu_lu_factorize (f11mec)

NAG Library Function Document nag_tsa_cp_pelt_user (g13nbc)

NAG Library Function Document nag_4d_shep_eval (e01tlc)

NAG Library Function Document nag_partial_corr (g02byc)

NAG Library Function Document nag_dtrttf (f01vec)

NAG Library Function Document nag_dgelsd (f08kcc)

NAG Library Function Document nag_ztfttp (f01vmc)

NAG Library Function Document nag_mldwt_2d (c09ecc)

NAG Library Function Document nag_zhfrk (f16zqc)

NAG Library Function Document nag_matop_real_gen_matrix_fun_num (f01elc)

NAG Library Function Document nag_rand_copula_normal (g05rdc)

NAG Library Function Document nag_zsymv (f16tac)

NAG Library Function Document nag_opt_simplex_easy (e04cbc)

NAG Library Function Document. nag_matop_real_gen_matrix_cond_num

NAG Library Function Document nag_2d_spline_deriv_rect (e02dhc)

NAG Library Function Document nag_corr_cov (g02bxc)

NAG Library Function Document nag_mv_promax (g03bdc)

NAG Library Function Document nag_prob_lin_non_central_chi_sq (g01jcc)

NAG Library Function Document nag_zhpr2 (f16ssc)

NAG Library Function Document nag_opt_check_deriv (e04hcc)

NAG Library Function Document nag_tsa_multi_part_lag_corr (g13dnc)

NAG Library Function Document nag_complex_bessel_y (s17dcc)

NAG Library Function Document nag_complex_bessel_j (s17dec)

NAG Library Function Document nag_dgbmv (f16pbc)

NAG Library Function Document nag_dgttrs (f07cec)

NAG Library Function Document nag_ode_bvp_fd_nonlin_fixedbc (d02gac)

NAG Library Function Document nag_mv_discrim (g03dac)

NAG Library Function Document nag_1d_spline_fit (e02bec)

NAG Library Function Document nag_sparse_sym_sol (f11jec)

NAG Library Function Document nag_lars_param (g02mcc)

NAG Library Function Document nag_mv_distance_mat (g03eac)

NAG Library Function Document nag_matop_complex_gen_matrix_fun_num (f01flc)

NAG Library Function Document nag_all_regsn (g02eac)

NAG Library Function Document nag_exp_integral (s13aac)

NAG Library Function Document nag_complex_bessel_i (s18dec)

NAG Library Function Document nag_zgelss (f08knc)

Transcription:

NAG Library Function Document nag_kruskal_wallis_test () 1 Purpose nag_kruskal_wallis_test () performs the Kruskal Wallis one-way analysis of variance by ranks on k independent samples of possibly unequal sizes. 2 Specification #include <nag.h> #include <nagg08.h> void nag_kruskal_wallis_test (Integer k, const Integer l[], const double x[], Integer lx, double *h, double *p, NagError *fail) 3 Description The Kruskal Wallis test investigates the differences between scores from k independent samples of unequal sizes, the ith sample containing l i observations. The hypothesis under test, H 0, often called the null hypothesis, is that the samples come from the same population, and this is to be tested against the alternative hypothesis H 1 that they come from different populations. The test proceeds as follows: (a) The pooled sample of all the observations is ranked. Average ranks are assigned to tied scores. (b) The ranks of the observations in each sample are summed, to give the rank sums R i, for i ¼ 1; 2;...;k. (c) The Kruskal Wallis test statistic H is computed as: 12 H ¼ NNþ ð 1Þ X k i¼1 R 2 i 3ðN þ 1Þ; wheren ¼ Xk l i ; l i i¼1 i.e., N is the total number of observations. If there are tied scores, H is corrected by dividing by: P ð t 3 tþ 1 N 3 N where t is the number of tied scores in a group and the summation is over all tied groups. nag_kruskal_wallis_test () returns the value of H, and also an approximation, p, to the probability of a value of at least H being observed, H 0 is true. (H approximately follows a 2 k 1 distribution). H 0 is rejected by a test of chosen size if p<:the approximation p is acceptable unless k ¼ 3andl 1, l 2 or l 3 5 in which case tables should be consulted (e.g., O of Siegel (1956)) or k ¼ 2 (in which case the Median test (see nag_median_test (g08acc)) or the Mann Whitney U test (see nag_mann_whitney (g08amc)) is more appropriate). 4 References Moore P G, Shirley E A and Edwards D E (1972) Standard Statistical Calculations Pitman Siegel S (1956) Non-parametric Statistics for the Behavioral Sciences McGraw Hill.1

NAG Library Manual 5 Arguments 1: k Integer Input On entry: the number of samples, k. Constraint: k 2. 2: l½kš const Integer Input On entry: l½i 1Š must contain the number of observations l i in sample i, fori ¼ 1; 2;...;k. Constraint: l½i 1Š > 0, for i ¼ 1; 2;...;k. 3: x½lxš const double Input On entry: the elements of x must contain the observations in the k groups. The first l 1 elements must contain the scores in the first group, the next l 2 those in the second group, and so on. 4: lx Integer Input On entry: the total number of observations, N. Constraint: lx ¼ P k i¼1l½i 1Š. 5: h double * Output On exit: the value of the Kruskal Wallis test statistic, H. 6: p double * Output On exit: the approximate significance, p, of the Kruskal Wallis test statistic. 7: fail NagError* Input/Output The NAG error argument (see Section 3.6 in the Essential Introduction). 6 Error Indicators and Warnings NE_ALLOC_FAIL Dynamic memory allocation failed. NE_ARRAY_CONS The contents of array l are not valid. Constraint: l½i 1Š > 0, for i ¼ 1; 2;...;k. NE_INT On entry, lx ¼ hvaluei. Constraint: lx ¼ P k i¼1l½i 1Š, fori ¼ 1; 2;...;k. NE_INT_ARG_LT On entry, k ¼ hvaluei. Constraint: k 2. NE_INTERNAL_ERROR An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance..2

NE_X_IDEN On entry, all elements of x are equal. 7 Accuracy For estimates of the accuracy of the significance p, see nag_prob_chi_sq (g01ecc). The 2 approximation is acceptable unless k ¼ 3andl 1 ;l 2 or l 3 5. 8 Parallelism and Performance Not applicable. 9 Further Comments The time taken by nag_kruskal_wallis_test () is small, and increases with N and k. If k ¼ 2, the Median test (see nag_median_test (g08acc)) or the Mann Whitney U test (see nag_mann_whitney (g08amc)) is more appropriate. 10 Example This example is taken from Moore et al. Moore et al. (1972). There are 5 groups of sizes 5, 8, 6, 8 and 8. The data represent the weight gain, in pounds, of pigs from five different litters under the same conditions. 10.1 Program Text /* nag_kruskal_wallis_test () Example Program. * * Copyright 2014 Numerical Algorithms Group. * * Mark 6, 2000. */ #include <stdio.h> #include <nag.h> #include <nag_stdlib.h> #include <nagg08.h> int main(void) Integer count, exit_status = 0, i, ii, k, *l = 0, lx, nhi, ni, nlo; NagError fail; double h, p, *x = 0; INIT_FAIL(fail); printf("nag_kruskal_wallis_test () Example Program Results\n"); /* Skip heading in data file */ scanf_s("%*[^\n]"); scanf("%*[^\n]"); k = 5; if (!(l = NAG_ALLOC(k, Integer))) printf("allocation failure\n"); exit_status = -1; for (i = 1; i <= k; i++).3

NAG Library Manual scanf_s("%"nag_ifmt"", &l[i-1]); scanf("%"nag_ifmt"", &l[i-1]); printf("%s\n", "Kruskal-Wallis test"); printf("%s\n", "Data values"); printf("%s\n", " Group Observations"); lx = 0; for (i = 1; i <= 5; ++i) lx += l[i - 1]; if (!(x = NAG_ALLOC(lx, double))) printf("allocation failure\n"); exit_status = -1; for (i = 1; i <= lx; ++i) scanf_s("%lf", &x[i - 1]); scanf("%lf", &x[i - 1]); nlo = 1; for (i = 1; i <= k; ++i) ni = l[i - 1]; nhi = nlo + ni - 1; printf(" %5"NAG_IFMT" ", i); count = 1; for (ii = nlo; ii <= nhi; ++ii) printf("%4.0f%s", x[ii - 1], count%10?"":"\n"); count++; nlo += ni; /* nag_kruskal_wallis_test (). * Kruskal-Wallis one-way analysis of variance on k samples * of unequal size */ nag_kruskal_wallis_test(k, l, x, lx, &h, &p, &fail); if (fail.code!= NE_NOERROR) printf("error from nag_kruskal_wallis_test ().\n%s\n", fail.message); exit_status = 1; printf("%s%9.3f\n", "Test statistic ", h); printf("%s%9"nag_ifmt"\n", "Degrees of freedom ", k-1); printf("%s%9.3f\n", "Significance ", p); END: NAG_FREE(l); NAG_FREE(x); return exit_status;.4

10.2 Program Data nag_kruskal_wallis_test () Example Program Data 5 8 6 8 8 23 27 26 19 30 29 25 33 36 32 28 30 31 38 31 28 35 33 36 30 27 28 22 33 34 34 32 31 33 31 28 30 24 29 30 10.3 Program Results nag_kruskal_wallis_test () Example Program Results Kruskal-Wallis test Data values Group Observations 1 23 27 26 19 30 2 29 25 33 36 32 28 30 31 3 38 31 28 35 33 36 4 30 27 28 22 33 34 34 32 5 31 33 31 28 30 24 29 30 Test statistic 10.537 Degrees of freedom 4 Significance 0.032.5 (last)