R: Escala multidimensional
-
23-09-2019 - |
Pergunta
Eu tenho várias perguntas:
1. Qual é a diferença entre ISOMDS e CMDSCALE?
2. Posso usar matriz assimétrica?
3. Existe alguma maneira de determinar o número ideal de dimensões (em resultado)?
Solução
Um dos métodos do MDS é
distance scaling
e é dividido em métrica e não-meétrica. Outro é oclassical scaling
(também chamadodistance geometry
por aqueles em bioinformática). A escala clássica pode ser realizada em r usando o comandocmdscale
. O método de Kruskal de escala de distância não -meétrica (usando a função de tensão e a regressão isotônica) pode ser realizada usando o comandoisoMDS
na massa da biblioteca. O tratamento padrão declassical scaling
produz um problema de composição de auto -composição e, como tal, é o mesmo que o PCA se a meta for redução da dimensionalidade. odistance scaling
Os métodos, por outro lado, usam procedimentos iterativos para chegar a uma solução.Se você se referir à estrutura da distância, acho que você deve passar por uma estrutura da classe
dist
que é um objeto com informações de distância. Ou uma matriz (simétrica) de distâncias, ou um objeto que pode ser coagido a uma matriz usando como.matrix (). (Como li na ajuda, apenas o triângulo inferior da matriz é usado, o restante é ignorado).(para o método de escala clássica): Uma maneira de determinar a dimensionalidade da configuração resultante é olhar para os valores próprios do
doubly centered
Matriz simétrica B (= hah). A estratégia usual é plotar os autovalores ordenados (ou alguma função deles) contra a dimensão e, em seguida, identificar uma dimensão na qual os valores próprios se tornam "estáveis" (ou seja, não mude de forma perceptiva). Nessa dimensão, podemos observar um "cotovelo" que mostra onde a estabilidade ocorre (para pontos de um espaço n-dimensional, a estabilidade no gráfico deve ocorrer na dimensão n+1). Para uma interpretação gráfica mais fácil de uma solução clássica de escala, geralmente escolhemos n para ser pequeno, da ordem 2 ou 3.