# Error using glmfit: Second column in Y?

22 views (last 30 days)
Eric on 19 Jul 2017
Edited: Walter Roberson on 27 Jul 2017
Hi everyone,
I'm currently trying to use glmfit like this:
B2 = glmfit(x(c,:),y,'binomial');
With y being a n x 1 matrix with 1's and 2's for group one and two. However, it keeps giving me the following error:
For the binomial distribution, Y must be a binary vector or a matrix with two columns with the number of trials in the second column.
My question is: Should I ad a second column with 1:number of observations? Example below:
y = [1,1; 1,2; 1,3; 1,4; 2,5; 2,6; 2,7; 2,8];
Best regards,
Eric

Walter Roberson on 27 Jul 2017
Edited: Walter Roberson on 27 Jul 2017
B2 = glmfit(x(c,:), y==2, 'binomial');
That is, your use of 1 and 2 is confusing it, so you need to convert those to 0 and 1.

Saurabh Gupta on 21 Jul 2017
As the error suggests, Y should
1) either be a binary vector i.e. a vector of 0s and 1s only (other values, like 2, are not allowed),
2) or a 2-column matrix where second column is "the number of trials" as demonstrated by the example at the following link.
Hope this helps!
Eric on 27 Jul 2017
Dear Saurabh Gupta,
Thanks a lot for your reply. However, I've tried all the suggested ways to do it using the glmfit page.
For:
B2 = glmfit(x(c,:),y,'binomial');
The x(c,:) is a 200x12 matrix and my y is a 200x1 matrix. Is it correct to use it when you have to apply multiple features to the same model?
When I add the following to the code:
B2 = glmfit(x(c,:),[y, ntrials],'binomial');
With the ntrials being 200x1 matrix with 1's and y is either 0 or 1. However, this gives me some very weird results. Do you know what I have done wrong?
Best,
Eric