I'd like to calculate multivariate distance from a set of points to the centroid of those points. Mahalanobis distance seems to be suited for this. However, I get an error (see below).
Can anyone tell me why I am getting this error, and if there is a way to work around it?
If you download the coordinate data and the associated environmental data, you can run the following code.
require(maptools) occ <- readShapeSpatial('occurrences.shp') load('envDat.Rdata') #standardize the data to scale the variables dat <- as.matrix(scale(dat)) centroid <- dat[1547,] #let's assume this is the centroid in this case #Calculate multivariate distance from all points to centroid mahalanobis(dat,center=centroid,cov=cov(dat)) Error in solve.default(cov, ...) : system is computationally singular: reciprocal condition number = 9.50116e-19
tol=1e-20works for all the data set? For me, the input data set is random, and it keeps throwing newreciprocal condition number. Do you know any possible solution to get this working with any possible futurereciprocal condition number?