;+
;NAME:
; udifference_test
;
;PURPOSE:
; Perform the difference test for two pairs of time-series data sets and
; test the fit of a normal distribution by χ-square test
; If both data sets obey the normal distribution, the Welch test is applied.
; If both data sets do not obey the normal distribution,
; only the Mann-Whitney test is used.
;
;SYNTAX:
; difference_test,vname1,vname2,sl=sl,test_sel=test_sel
;
;KEYWORDS:
; result:Test result.
; The values '0' and '1' mean that the judgement of the Welch test is different
; and same, respectively. Moreover, the values '2' and '3' mean that the judgement
; of the Mann-Whitney test is different and same, respectively.
; sl:Significant level.
; The default is 0.05.
; test_sel:Specify the test to be performed. The value '2' is the Mann-Whitney test,
; '1' is the Welch test, and '0' is to test the fit of a normal distribution
; by χ-square test
;
;CODE:
;R. Hamaguchi, 13/02/2012.
;
;MODIFICATIONS:
;A. Shinbori, 01/05/2013.
;A. Shinbori, 10/07/2013.
;
;ACKNOWLEDGEMENT:
; $LastChangedBy: jimm $
; $LastChangedDate: 2014-02-11 10:52:58 -0800 (Tue, 11 Feb 2014) $
; $LastChangedRevision: 14325 $
; $URL $
;-
pro udifference_test,vname1,vname2,result,sl=sl,test_sel=test_sel
;***********************
;Keyword check test_sel:
;***********************
if not keyword_set(test_sel) then test_sel=0
;Get data from two tplot variables:
if strlen(tnames(vname1)) * strlen(tnames(vname2)) eq 0 then begin
print, 'Cannot find the tplot vars in argument!'
return
endif
get_data,vname1,data=d1
get_data,vname2,data=d2
x=d1.y
y=d2.y
;Welch or Mann Whitney test:
if test_sel eq 1 then begin
result=welch_test(x,y,sl=sl)
endif
if test_sel eq 2 then begin
result=mann_whitney_test(x,y,sl=sl)
endif
if test_sel eq 0 then begin
x1=normality_test(x,sl=sl)
y1=normality_test(y,sl=sl)
if (x1 eq 0) and (y1 eq 0) then begin
result=welch_test(x,y,sl=sl)
endif else begin
result=mann_whitney_test(x,y,sl=sl)
endelse
endif
;The end:
end