omnibus.c 894 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include <stdio.h>
  2. #include <math.h>
  3. double *Cdhc_omnibus_moments(double *x, int n)
  4. {
  5. double diff, mean = 0., fssm, tssm, sum_cube = 0., sum_four = 0.,
  6. sum_sq = 0.;
  7. static double y[2];
  8. int i;
  9. for (i = 0; i < n; ++i)
  10. mean += x[i];
  11. mean /= n;
  12. for (i = 0; i < n; ++i) {
  13. diff = x[i] - mean;
  14. sum_sq += diff * diff;
  15. sum_cube += diff * diff * diff;
  16. sum_four += diff * diff * diff * diff;
  17. }
  18. /*
  19. fprintf (stdout,"n %d x-bar %g sum^2 %g sum^3 %g sum^4 %g \n",n,mean,sum_sq,sum_cube,sum_four);
  20. */
  21. tssm = sqrt((double)n) * sum_cube / pow(sum_sq, 1.5);
  22. fssm = n * sum_four / (sum_sq * sum_sq);
  23. #ifdef NOISY
  24. fprintf(stdout,
  25. " TESTS OF COMPOSITE DISTRIBUTIONAL HYPOTHESES\n");
  26. fprintf(stdout, " TEST1 TSM =%10.4f FSM =%10.4f\n", tssm, fssm);
  27. #endif /* NOISY */
  28. y[0] = tssm;
  29. y[1] = fssm;
  30. return y;
  31. }