MATLAB Answers

Eric
0

Error using glmfit: Second column in Y?

Asked by Eric
on 19 Jul 2017
Latest activity Edited by 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

  0 Comments

Sign in to comment.

2 Answers

Answer by Walter Roberson
on 27 Jul 2017
Edited by Walter Roberson
on 27 Jul 2017
 Accepted Answer

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.

  0 Comments

Sign in to comment.


Answer by 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!

  1 Comment

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

Sign in to comment.