Desculpas pela falta de clareza Walmes, é que não citei que a função faz é D_{ij}^2 = (x_i - x_j)' (Σ^-1) (x_i - x_j) e a matriz Σ, neste caso não tem inversa comum. Já tentei várias funções e de fato todas funções para tal método usam a função solve(Σ) como padrão. Desisti de usar a matriz de Mahalanobis, pensei em distancia Euclidiana, mas seria importante eu conseguir usar um método que envolvesse a matriz de covariâncias para obter D2. Minha pergunta é se teria uma forma de usar, neste caso, um outro tipo de inversa (outro algorítimo) e sem comprometer a matriz D2 ou se vou mesmo ter ficar com distancia Euclidiana e variantes.
setwd("/home/andre")
dados <- read.csv("dados.txt", sep="")
str(dados)
'data.frame': 6 obs. of 10 variables:
$ ch : int 146 26 44 56 73 101
$ lam : int 126 14 20 104 54 156
$ esfr : int 208 1 1 36 73 22
$ cut : int 43 10 9 20 22 40
$ fleh : int 16 1 1 2 9 5
$ tmont : int 45 5 12 15 11 27
$ mont : int 18 8 16 25 21 32
$ montco : int 6 0 3 2 2 3
$ vocal : int 106 14 21 105 97 151
$ respaud: int 123 44 64 113 56 79
dados
ch lam esfr cut fleh tmont mont montco vocal respaud
A 146 126 208 43 16 45 18 6 106 123
B 26 14 1 10 1 5 8 0 14 44
C 44 20 1 9 1 12 16 3 21 64
D 56 104 36 20 2 15 25 2 105 113
E 73 54 73 22 9 11 21 2 97 56
F 101 156 22 40 5 27 32 3 151 79
require(StatMatch)
D2=mahalanobis.dist(dados)
mahalanobis.dist(dados)
Error in solve.default(cov, ...) :
sistema é computacionalmente singular: condição recíproca número = 1.53112e-19
require(biotools)
Cov=cov(dados)
D2=D2.dist(dados, Cov)
D2=D2.dist(dados, Cov)
Error in solve.default(cov, (x[i, ] - x[j, ])) :
sistema é computacionalmente singular: condição recíproca número = 1.53112e-19
André Oliveira Souza.
Graduação em Matemática, mestrado em estatística aplicada.Instituto Federal de Educação, Ciência e Tecnologia do Espirito Santo. IFES