MATLAB Answers

Error using glmfit: Second column in Y?

19 views (last 30 days)
Eric
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

  0 Comments

Sign in to comment.

Accepted Answer

Walter Roberson
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.

  0 Comments

Sign in to comment.

More Answers (1)

Saurabh Gupta
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
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.


Translated by