Foro de debate

Escalamiento multidimensional no métrico

 
Imagen de sandra hervias parejo
Escalamiento multidimensional no métrico
de sandra hervias parejo - miércoles, 15 de noviembre de 2017, 16:20
 

Enhorabuena a todos por el foro.

Intento llevar a cabo un MDS para representar la similitud que existe entre una serie de especies. Tengo variables categóricas y cuantitativas. Para que podáis entender mejor mis datos copio aquí las primeras 4 filas:

:species family origin syndrome colour shape corolla_length corolla_diameter bell_diameter cor_stig_dist stig_cor_dist stamen_length pistil_length stig_surface_diameter stig_lobe_length n_sepals n_petals n_stamens n_stig_lobes nectar_volume sugar_concentration 
Acacia rorudiana Mimosaceae endemic 2 3 4 2.14 1.33 0.73 1.87 3.37 3.9 0.45 4 4 20 1 0.1 5.8
Alternanthera echinocephala Amaranthaceae native 3 1 4 8.3 9.81 2.1 5.81 6.18 2.07 0.7 5 0 5 1 0.28 13.38
Alternanthera filifolia Amaranthaceae endemic 4 1 4 1.7 2.91 1.04 1.01 3.02 2.14 0.01 5 0 5 1 0.28 1.4
Bastardia viscosa Malvaceae native 1 3 1 4.52 9.61 1.48 4.7 5.7 6.53 0.28 5 5 40 6 0.85 15.58

Antes del MDS, he estandarizado las variables cuantitativas mediante:

mydata.scaled <- scale (mydata, center=TRUE, scale=TRUE)

Uno de los problemas que encuentro aquí es que a cada especies se le ha asignado un número. ¿Cómo puedo ahora identificar las especies? Además, me gustaría saber cómo puedo volver a incluir las variables cualitiativas. Este problema lo arrastro desde el principio.

A continuación, he utilizado la library(gower) para crear la matriz de datos, os copio aquí el script entero:
library(gower)
library(cluster)
daisy.mat <- as.matrix(daisy(mydata.scaled, metric="gower"))
library(StatMatch)
gower.mat <- gower.dist(mydata.scaled)
head(daisy.mat, 29)
head(gower.mat, 29)
identical(daisy.mat, gower.mat)

d.spp <- daisy(mydata, metric = "gower")
species_matrix <- d.spp
species_matrix

library(scatterplot3d)
library(vegan)

example_NMDS=metaMDS(species_matrix, k=2, wascores = FALSE)
example_NMDS
example_NMDS$stress

stressplot(example_NMDS)

plot(example_NMDS)

En este punto el error que obtengo es el siguiente:

Warning message:
In ordiplot(x, choices = choices, type = type, display = display,  :
  Species scores not available
Cualquier ayuda / orientación me vendría súper bien!

Gracias y un saludo,

Imagen de Manuel Muñoz Márquez
Re: Escalamiento multidimensional no métrico
de Manuel Muñoz Márquez - jueves, 16 de noviembre de 2017, 11:18
 

Buenas:

Los nombres de las especies no están como nombres de filas, por eso la salida es con los nombres por defecto que son los números. Con la instrucción:

row.names(mydata) <- as.character(mydata$Especies)

estableces los nombres de fila y luego te salen al aplicar scale.

Un saludo.

Imagen de sandra hervias parejo
Re: Escalamiento multidimensional no métrico
de sandra hervias parejo - jueves, 16 de noviembre de 2017, 14:59
 

Hola Manuel, muchas gracias por tu ayuda.

A ver si alguna persona me puede indicar como podría relacionar la matriz de especies con las variables medidas de las flores para llevar a acabo el MDS.

Gracias a todos!