[R] NA in eigen()
Elizabeth Purdom
epurdom at stanford.edu
Sat Mar 4 21:36:22 CET 2006
Sorry, I forgot to give my system details. I am using R 2.2.1 on a Windows
XP. I just did the standard download from the CRAN page for Windows. I did
not use any special options. I don't know what compilation the download is,
the details of BLAS or LAPACK for my computer, etc. -- how can I find this
information for my computer?
Thanks,
Elizabeth
At 03:46 AM 3/4/2006, Prof Brian Ripley wrote:
>The default is to use LAPACK rather than EISPACK. In general, LAPACK is a
>lot faster and a lot stabler than EISPACK, so you will get `odd behavior'
>much more often with EISPACK=TRUE (sic).
>
>You have not told us your machine or R details. Most of the problem
>reports we see in this area are not due to R itself but to a problem in
>the BLAS or LAPACK in use on the system running R. So exactly what system
>is this, how was R compiled and with what options?
>
>On Fri, 3 Mar 2006, Elizabeth Purdom wrote:
>
>>Hi,
>>I am using eigen to get an eigen decomposition of a square, symmetric
>>matrix. For some reason, I am getting a column in my eigen vectors (the
>>52nd column out of 601) that is a column of all NAs. I am using the option,
>
>NAs and not NaNs? I don't think the internal code of eigen knows how to
>generate NAs, and is.na is not a test for NAs.
>
>>symmetric=T for eigen. I just discovered that I do not get this behavior
>>when I use the option EISPACK=T. With EISPACK=T, the 52nd eigenvector is
>>(up to rounding error) a vector of all zeros except for -0.6714
>>and +0.6714 in two locations. The eigenvalues (which are the same with
>>either one) has the 52nd eigenvalue being exactly 19. I also do not have
>>the NA problem if I choose symmetric=F.
>
>>My main question is whether there is any reason I should not use the
>>EISPACK option (I do not know that what the EISPACK option really means,
>>except that its not "preferred")? Or stated another way, should I trust
>>that the results for EISPACK=T, and just ignore the very odd behavior of
>>EISPACK=F? Or is there something inherently problematic or unstable about
>>my eigen decomposition of this matrix -- and if so, is it my matrix or the
>>program?
>>
>>I have no idea what's causing it, and I can't get a reproducible example,
>>other than with my large matrix. My original matrix has no NAs in it. Here
>>is code, but of course it requires my original, 601x601 symmetric matrix
>>called mat
>>
>> > any(is.na(mat))
>>[1] FALSE
>> > any(is.na(d))
>>[1] FALSE
>> > dim(mat)
>>[1] 601 601
>> > length(which(d==0))
>>[1] 5
>> > d<-rowSums(mat)
>> > temp1<-eigen(diag(d)-mat,symmetric=T)
>> > temp2<-eigen(diag(d)-mat,symmetric=T,EISPACK=T)
>> > any(is.na(temp1$vec))
>>[1] TRUE
>> > any(is.na(temp1$vec[,-52]))
>>[1] FALSE
>> > any(is.na(temp2$vec))
>>[1] FALSE
>> > all.equal(abs(temp1$vec[,-52]),abs(temp2$vec[,-52]))
>>[1] "Mean relative difference: 0.3278133"
>> > all.equal(temp1$val,temp2$val)
>>[1] TRUE
>> > temp2$val[52]
>>[1] 19
>>
>>Thanks,
>>Elizabeth
>>
>>______________________________________________
>>R-help at stat.math.ethz.ch mailing list
>>https://stat.ethz.ch/mailman/listinfo/r-help
>>PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>
>--
>Brian D. Ripley, ripley at stats.ox.ac.uk
>Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
>University of Oxford, Tel: +44 1865 272861 (self)
>1 South Parks Road, +44 1865 272866 (PA)
>Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list