my_sig_test_fdr.m 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. function [h,p] = my_sig_test_fdr(pacval, pac_shf_values, alpha, measure)
  2. % function [h,p] = my_sig_test_fdr(pacval, pac_shf_values, alpha, measure)
  3. %
  4. % Returns a binary value for significance 'h' and a p-value 'p', given a
  5. % value under analysis 'pacval', a distribution of values for comparison
  6. % 'pac_shf_values' and a significance level 'alpha'
  7. %
  8. % INPUTS:
  9. % pacval - PAC value
  10. % pac_shf_values - distribution of PAC values obtained from shuffled data
  11. % sets
  12. % alpha - significance level, i.e. if alpha = 0.05 then 'pacval' must fall
  13. % in the top 5% of the 'pac_shf_values' to be deemed significant
  14. %
  15. % Author: Angela Onslow, May 2010
  16. if strcmp(measure, 'esc')
  17. p_tail1 = mean (pac_shf_values > pacval);
  18. p_tail2 = mean (pac_shf_values < pacval);
  19. if (p_tail1 <= alpha/2)
  20. h = 1;
  21. p = 2*(p_tail1);
  22. elseif (p_tail2 <= alpha/2)
  23. h = 1;
  24. p = 2*(p_tail2);
  25. elseif (p_tail1 > alpha/2)
  26. h = 0;
  27. p = 2*(p_tail1);
  28. elseif (p_tail2 > alpha/2)
  29. h = 0;
  30. p= 2*(p_tail2);
  31. end
  32. else
  33. % percentage of times pacval is greater than a pac_shf_value
  34. p = mean (pac_shf_values > pacval);
  35. h = (p <= alpha);
  36. end
  37. if p == 0
  38. p = (1/length(pac_shf_values))-(1/(10*length(pac_shf_values)));
  39. end