Multidimensional scaling - form of data

Hi!

I would like to have a multidimensional scaling plot according to the following table (this is just a shorter form of the whole table):

photo      expression1        expression2        expression3       expression4
p1           18                       0                          0                        0
p2           8                         0                          0                        3
p3           11                       4                          1                        1   
p4           3                         8                          6                        0
p5           4                         0                          1                        3
  

I have been trying to do it in R (am quite new here...) but now. I am not even sure about that this type of data is good for multidimensional scaling. The whole table should mirror a semantic (linguistic) map (Thats why I thought that MDS should be good) and the rows mean that informants saw some pictures and gave different expressions (columns) for the pictures, so they described them differently.
The numbers in the columns are no judgments in the sense that they are on a scale from 1 to 10 or something like that but they show how many people used the expression for pic1, pic2, and so forth.

Could anyone help me to explain that MDS is actually the appropriate model I am trying to use? (Sorry, I am just too much confused after reading a lot in the last days about different methods... :confused: )
If so, here is the coding I used (just to be sure).

Thanks a lot for any advice! :slight_smile:

has_rownames(daten)
cr<-column_to_rownames(daten, var="photo")
has_rownames(cr)

matr_cr <- as.matrix(cr[,-1])
matr_cr
d<-dist(matr_cr)
fit <- cmdscale(d, eig = TRUE, k = 2)
x <- fit$points[, 1]
y <- fit$points[, 2]
plot(x, y, xlab="Coordinate 1", ylab="Coordinate 2",
    main="Multidimensional Scaling", type="n")
text(x, y, labels = row.names(matr_cr), cex=.6, col="red")
cr

Could you edit to turn this into a full reprex with the data? (Please see the FAQ: What's a reproducible example (`reprex`) and how do I do one? Using a reprex, complete with representative data will attract quicker and more answers. )

It's easy to cut-and-paste the data from

dput(daten)

and allows skipping reverse engineering the problem, which will draw more answers!

1 Like

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

Hi, sorry for the format!
Here is then some other parts of the list in the correct format:

structure(list(photos = c("p1", "p5", "p8", "p13", "p19", "p23", 
"p29", "p34", "p36", "p40", "p59", "p2", "p14"), expression1 = c(18, 
8, 11, 15, 14, 16, 10, 12, 15, 18, 18, 0, 0), expression2 = c(0, 
0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0), expression3 = c(0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 1, 1), expression4 = c(0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 15, 17), expression5 = c(0, 3, 5, 0, 0, 0, 
1, 5, 1, 0, 0, 0, 0), expression6 = c(0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0), expression7 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0), expression8 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0)), row.names = c(NA, -13L), class = c("tbl_df", "tbl", "data.frame"
))