How to compare two proportions ?

32 views (last 30 days)
laurie on 19 Mar 2014
Answered: laurie on 20 Mar 2014
I have a vector of x1=[0 1 1 0 1 0 ... 1 0 1] and a cell array of string x2={'Condition A' 'Condition A' 'Condition B'..... 'Condition A' 'Condition B' 'Condition B' 'Condition A}.
How can I test if the proportion of "1" is different in Condition A versus Condition B ?
I tried using crosstab() but I am unsure how to set up the data. It looks like crosstab(x1,x2) expects x1 and x2 to be grouping variables. The x1 I have is a response variable.
How should i set up my data for crosstab? Is there another function which would take counts or a binary response variable? Maybe an equivalent of the R function prop.test() ?

laurie on 20 Mar 2014
Since I could not find a build-in function for my purpose I ended up writing this little function: http://www.mathworks.com/matlabcentral/fileexchange/45966-compare-two-proportions-chi-square

dpb on 19 Mar 2014
Start by simply converting the ASCII to another logical array of 0/1...
xA=ismember(x2,'Condition A'); % swap 'B' for 'A' if sense is other way in x1; you don't say
then compute the estimated p for the two populations as
p=[sum(x1) sum(xA)]/length(x1); % assuming same length; if not use each length of course
To test the null hypothesis the two are the same, see--
for method. Not positive if Matlab has a builtin test or not but it's surely not complicated.