MATLAB Answers

Shiladitya Sen

How can I avoid error in mnrfit line 164?

Asked by Shiladitya Sen
on 19 Jul 2013

I am getting an error message when I use the mnrfit function on a matrix X and Y like this:

X =

     1   NaN     2
   NaN     3   NaN
   NaN   NaN     4
     6   NaN   NaN
     5   NaN   NaN

Y =

    -1
     1
    -1
     1
    -1
 b=mnrfit(X,Y+2);
Error using mnrfit (line 164)
X and Y must contain at least one valid observation.

I cannot understand why I'm running into such an error...please advise...

  0 Comments

Tags

Products

No products are associated with this question.

2 Answers

Answer by Wayne King
on 19 Jul 2013
Edited by Wayne King
on 19 Jul 2013
 Accepted answer

The problem is that you have NaNs in every single row of your X matrix.

As the documentation states:

"mnrfit treats NaNs in X and Y as missing data, and removes the corresponding observations."

Every row in your X matrix is an observation on P predictor variables.

Since you have at least one NaN for every observation, all the observations are removed.

  1 Comment

Shiladitya Sen
on 19 Jul 2013

In that case, how should I perform logistic regression on a sparse dataset like this?


Thomas
Answer by Thomas
on 19 Jul 2013

I'm assuming mnrfit does not like 'NaN' values as its input.

works fine with

 x =
          0.14          0.66          0.76
          0.42          0.04          0.74
          0.92          0.85          0.39
          0.79          0.93          0.66
          0.96          0.68          0.17
 y =
         -1.00
          1.00
         -1.00
          1.00
         -1.00
 b=mnrfit(x,y+2)
 b =
         95.33         47.37
        -58.97        -31.76
         15.27          6.52
       -112.15        -62.24

  0 Comments


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today