[R] system is computationally singular: reciprocal condition number
Bert Gunter
gunter.berton at gene.com
Fri Oct 26 01:41:36 CEST 2012
1. I don't know what StatMatch is. Try using stats::mahalanobis.
2. It's the covariance matrix that is **numerically** singular and
can't be inverted. Why do you claim that there's "no way" this could
be true when there are hundreds of variables (= dimensions).
3. Try calculating the svd of your matrix and see what you get if you
haven't already done so.
Cheers,
Bert
On Thu, Oct 25, 2012 at 4:14 PM, langvince <langv at purdue.edu> wrote:
> Hi folks,
>
> I know, this is a fairly common question and I am really disappointed that I
> could not find a solution.
> I am trying to calculate Mahanalobis distances in a data frame, where I have
> several hundreds groups and several hundreds of variables.
>
> Whatever I do, however I subset it I get the "system is computationally
> singular: reciprocal condition number" error.
> I know what it means and I know what should be the problem, but there is no
> way this is a singular matrix.
>
> I have uploaded the input file to my ftp:
> http://mkk.szie.hu/dep/talt/lv/CentInpDuplNoHeader.txt
> It is a tab delimited txt file with no headers.
>
> I tried the StatMatch Mahanalobis function and also this function:
>
> mahal_dist <-function (data, nclass, nvariable) {
> dist <- matrix(0, nclass, nclass)
> n=0
> w <- cov(data)
> print(w)
> for(i in 1:nclass) {
>
> for(c in 1:nclass){
> diffl <- vector(length = nvariable)
> for(l in 1:nvariable){
> diffl[l]=abs(data[i,l]-data[c,l])
>
> }
> ### matrixes
> print(diffl)
> dist[i,c]= (t(diffl))%*%(solve(w))%*%(diffl)
> }
>
> n=n+1
> print(n)
> }
> return(dist)
> sqrt_dist <- sqrt(dist)
> print(sqrt_dist) }
>
>
> I have a deadline for this project (not a homework:)), and I could always
> use this codes, so I thought I will be able to quit the calculations short,
> but now I am just lost.
>
> I would really appreciate any help.
>
> Thanks for any help
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/system-is-computationally-singular-reciprocal-condition-number-tp4647472.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
--
Bert Gunter
Genentech Nonclinical Biostatistics
Internal Contact Info:
Phone: 467-7374
Website:
http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
More information about the R-help
mailing list