acorg / Racmacs

Racmacs R package for performing antigenic cartography
https://acorg.github.io/Racmacs/
GNU Affero General Public License v3.0
20 stars 9 forks source link

MDS implementation with missing and censored values #175

Open adalisan opened 6 months ago

adalisan commented 6 months ago

In the documentation, lack of an MDS implementation for this type of data is mentioned. By "MDS", are you referring to metric MDS specifically (which assume the input matrix is a distance matrix that is based on a metric)? There are relaxed non-metric variants of MDS (like ordinal MDS in smacof package) which would be more robust to outliers as well. I don't know whether the specific R implementation I mentioned support both missing and censored dissimilarities, but ordinal MDS in general should. The limitations of those variants are that they are more expensive to optimize usually.

shwilks commented 6 months ago

Yes, you're right, that question is about metric MDS specifically, but a non-metric variant of MDS that allows for both missing values and right-censored distances would be interesting, the smacof MDS options certainly seem quite comprehensive thanks for sharing that.

It would be nice to have a test set of different types of antigenic map data against which the performance of possible alternative approaches could be easily compared.

adalisan commented 6 months ago

I am relatively new to antigenic cartography, and have some experience in dissimilarity and embedding methodologies. As I understand it, there can be different levels of uncertainty and outliers in the source titer data. in comparing methods, robustness to those may be more important than other factors (like computational efficiency). If there is no reason that you would expect to have the data to have a better fit for metric MDS, other approaches may work better overall.

adalisan commented 6 months ago

As you mentioned, the bottleneck is always test data, which are harder to come by or may not exist at all in some cases.

adalisan commented 6 months ago

I think one of these unfolding functions could be used in smacof https://www.rdocumentation.org/packages/smacof/versions/2.1-6/topics/unfolding