


fast_t1 - Computes a 2D matrix of one sample/repeated measures t-tests
relatively quickly.
Usage:
[p_values, t_scores, mn, stder]=fast_t1(data,tail,verblevel);
Inputs:
data - 3D matrix of data (Channel x Time x Participant)
Optional Inputs:
tail - [1 | 0 | -1] If tail=1, the alternative hypothesis is that the
mean of data is greater than 0 (upper tailed test). If tail=0,
the alternative hypothesis is that the mean of data is different
than 0 (two tailed test). If tail=-1, the alternative hypothesis
is that the mean of the data is less than 0 (lower tailed test).
{default: 0}
verblevel - An integer specifiying the amount of information you want
this function to provide about what it is doing during runtime.
Options are:
0 - quiet, only show errors, warnings, and EEGLAB reports
1 - stuff anyone should probably know
2 - stuff you should know the first time you start working
with a data set {default value}
3 - stuff that might help you debug (show all
reports)
Outputs:
p_values - p-value at each time point and electrode (no correction
for multiple comparisons)
t_scores - t-score at each time point and electrode
mn - mean voltage at each time point and electrode
stder - standard error of the mean voltage at each time point and
electrode
Author:
David Groppe
May, 2010
Kutaslab, San Diego

0001 % fast_t1 - Computes a 2D matrix of one sample/repeated measures t-tests 0002 % relatively quickly. 0003 % 0004 % Usage: 0005 % [p_values, t_scores, mn, stder]=fast_t1(data,tail,verblevel); 0006 % 0007 % Inputs: 0008 % data - 3D matrix of data (Channel x Time x Participant) 0009 % 0010 % Optional Inputs: 0011 % tail - [1 | 0 | -1] If tail=1, the alternative hypothesis is that the 0012 % mean of data is greater than 0 (upper tailed test). If tail=0, 0013 % the alternative hypothesis is that the mean of data is different 0014 % than 0 (two tailed test). If tail=-1, the alternative hypothesis 0015 % is that the mean of the data is less than 0 (lower tailed test). 0016 % {default: 0} 0017 % verblevel - An integer specifiying the amount of information you want 0018 % this function to provide about what it is doing during runtime. 0019 % Options are: 0020 % 0 - quiet, only show errors, warnings, and EEGLAB reports 0021 % 1 - stuff anyone should probably know 0022 % 2 - stuff you should know the first time you start working 0023 % with a data set {default value} 0024 % 3 - stuff that might help you debug (show all 0025 % reports) 0026 % 0027 % Outputs: 0028 % p_values - p-value at each time point and electrode (no correction 0029 % for multiple comparisons) 0030 % t_scores - t-score at each time point and electrode 0031 % mn - mean voltage at each time point and electrode 0032 % stder - standard error of the mean voltage at each time point and 0033 % electrode 0034 % 0035 % Author: 0036 % David Groppe 0037 % May, 2010 0038 % Kutaslab, San Diego 0039 0040 %%%%%%%%%%%%%%%% REVISION LOG %%%%%%%%%%%%%%%%% 0041 % 0042 0043 0044 function [p_values, t_scores, mn, stder]=fast_t1(data,tail,verblevel) 0045 0046 if nargin<1, 0047 error('You need to provide data.'); 0048 end 0049 0050 if nargin<2, 0051 tail=0; %default two-tailed test 0052 elseif (tail~=0) && (tail~=1) && (tail~=-1), 0053 error('Argument ''tail'' needs to be 0,1, or -1.'); 0054 end 0055 0056 if nargin<3, 0057 verblevel=2; 0058 end 0059 0060 [n_chan, n_pts, n_subs]=size(data); 0061 df=n_subs-1; 0062 if n_subs<2, 0063 error('You need data from at least two observations (e.g., participants) to perform a hypothesis test.') 0064 end 0065 0066 if verblevel~=0, 0067 fprintf('fast_t1: Number of channels: %d\n',n_chan); 0068 fprintf('fast_t1: Number of time points: %d\n',n_pts); 0069 fprintf('fast_t1: Total # of comparisons: %d\n',n_pts*n_chan); 0070 fprintf('fast_t1: Number of participants: %d\n',n_subs); 0071 fprintf('t-score degrees of freedom: %d\n',df); 0072 end 0073 0074 sm=sum(data,3); 0075 mn=sm/n_subs; 0076 sm_sqrs=sum(data.^2,3)-(sm.^2)/n_subs; 0077 stder=sqrt(sm_sqrs/(n_subs*df)); 0078 t_scores=mn./stder; 0079 if tail<0, 0080 %lower tailed test 0081 p_values=tcdf(t_scores,df); 0082 elseif tail>0, 0083 %upper tailed test 0084 p_values=1-tcdf(t_scores,df); 0085 else 0086 %two tailed test 0087 p_values=tcdf(t_scores,df); 0088 ids=find(p_values>.5); %t-scores above zero 0089 p_values(ids)=1-p_values(ids); 0090 p_values=p_values*2; %double for two tailed test 0091 end 0092