I am new to doing NMDS in R, and I have a question about how the vectors that characterize the fit of environmental data.

I am exploring how the concentrations of metals in sediment affect benthic community composition. I am using scores() to extract coordinate data from envfit(), and overlaying the resulting vectors on NMDS figures.

My understanding based on "The environmental variables are the dependent variables that are explained by the ordination scores, and each dependent variable is analysed separately." in the help text was that, regardless of how many environmental variables you want to overlay on the NMDS plot, the coordinates for each variable should be the same.

This is the case when I include a few variables. However, when I start adding 10 or more environmental variables, the results can change dramatically. I don't believe this is a coding error: as you can see, the code I'm running is identical except for the addition of one variable (in this case, aluminum, which isn't particularly special).

The code I'm using is:

data.frame( scores(envfit(bci.mds_dens,na.rm = TRUE, dat_env%>% filter(loc_id!="TL20-BM-07")%>%
select(Water Depth (ft), Arsenic (mg/kg): Zinc (mg/kg)) ), display="vectors") )%>% rownames_to_column(var="param")

And the only thing changing is the variables I'm calling from dat_env using select().

Of course, results don't copy well, so I've attached two images showing the issue. Regardless of which metal I choose, the results change at this addition of a 10th variable.

enter image description here

enter image description here

I can try to get this into a reproducible format if it would be helpful, but I'm hampered by data confidentiality, and this seems to be more of a theoretical problem than a code problem. If you think this belongs on Stackoverflow, let me know.

Thank you for any help!


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.