Beauchamp:ANOVAs in MATLAB

From OpenWetWare

Revision as of 15:37, 25 May 2011 by Audrey Nath (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

While all of your data may be in Excel, unfortunately, the Excel for Mac doesn't do ANOVAs.

So, let's use MATLAB! In this example, I'm doing a 2x2 ANOVA on the BOLD amplitudes of response in the right STS (dependent measure).

The two factors are perceiver group (strong McGurk perceivers are '1' and non-perceivers are '2') and stimulus condition (McGurk is '1', non-McGurk incongruent is '2', and congruent is '3').

I'd like to know if there is a significant difference in the right STS response between the subjects who did and did not perceive the McGurk effect, between the responses to the 3 different stimuli, and if there is an interaction between perceiver group and stimulus type.

The data for the dependent measure and each factor are put into columns in Excel.

R_STS	PerceiverGroup	StimulusType				
0.1662	1	           1				
0.0467	1	           1				
0.1364	1	           1				
-0.0025	1	           1				
0.0185	1	           1				
0.1162	1	           1				
0.1935	1	           1				
0.2685	2	           1				
0.0704	2	           1				
0.3541	2	           1				
0.1392	2	           1				
0.2367	2	           1			
0.0507	2	           1			
-0.0558	2	           1			
0.0738	2	           1			
0.0473	2	           1			
0.0119	2	           1			
0.1375	1	           2			
0.1354	1	           2			
0.1931	1	           2			
-0.26	1	           2			
0.0425	1	           2			
0.2904	1	           2			
0.3069	1	           2			
0.4702	2	           2			
-0.0295	2	           2			
0.391	2	           2			
0.2323	2	           2			
0.6401	2	           2			
0.0562	2	           2			
0.0488	2	           2			
0.0567	2	           2			
0.0635	2	           2			
-0.0592	2	           2			
0.1264	1	           3			
0.1002	1	           3			
0.1368	1	           3			
-0.0933	1	           3			
0.0391	1	           3			
0.2585	1	           3			
0.1405	1	           3			
-0.002	2	           3			
0.0307	2	           3			
0.1367	2	           3			
0.2007	2	           3			
0.438	2	           3			
0.0782	2	           3			
0.0595	2	           3			
0.0279	2	           3			
-0.0203	2	           3			
-0.0746	2	           3


Then, I copied the data from each into a array in MATLAB with the same name. (Copy only numerical data in "Excel", then type v=[ (paste) ] (enter).

Then, run the function 'anovan.m' in MATLAB:

    anovan(R_STS,{PerceiverGroup StimulusType},'model',2,'varnames',strvcat('Group','Stim'))					

The output is a chart-- copy it back into your Excel spreadsheet to have the numbers handy.

    Source Sum Sq. d.f. Mean Sq. F Prob>F					
    --------------------------------------------------------					
    Group 0.00787 1 0.00787 0.3 0.5848					
    Stim 0.03208 2 0.01604 0.62 0.544					
    Group*Stim 0.01316 2 0.00658 0.25 0.7775					
    Error 1.1696 45 0.02599					
    Total 1.2314 50

In this example, there was not a significant main effect of perceiver group or stimulus type (both p > 0.5) on the right STS response. There was also no interaction between the two factors (p > 0.7).

Degrees of freedom:

For the numerator, it's the number of categories in that factor minus one (a-1). Or, for the interaction, multiply (a-1)*(b-1). 
  In this case, the numerator df is 1 (from 2-1) for the Perceiver Group factor and 2 (from 3-1) for the Stimulus Condition Factor. 
  For the interaction, the numerator df is 2 (from 1*2).
For the denominator, it's the total number of data points (17 * 3 = 51) minus the total number of categories (N - a*b). 
  In this example, the denominator df are 45 (51 - 2*3).
Personal tools