?dist ## good for continuous distances library(cluster) ?daisy ## good for continuous, categorical, mixed distances/dissimilarities load("/u/kalisch/teaching/12/ams/vorlesung/v4.2/dataV4.rda") ## interval scaled head(usAirPol) dist1 <- daisy(usAirPol, metric = "euclidean") dist1 mds1 <- cmdscale(dist1) plot(mds1, asp = 1) dist2 <- daisy(usAirPol, metric = "euclidean", stand = TRUE) mds2 <- cmdscale(dist2) plot(mds2, asp = 1) identify(mds2, labels = rownames(usAirPol)) ## symm. bin. ## Which persons are similar (measured by sex/married/fair hair/glasses)? str(dfSymBin) dfSymBin dist3 <- daisy(dfSymBin, type = list(symm = 1:4)) dist3 dfSymBin library(MASS) mds3 <- isoMDS(dist3) plot(mds3$points, asp = 1, type = "n") text(mds3$points, labels = rownames(dfSymBin)) dfSymBin ## asym.bin. ## Which documents are similar (measures by appearance of the words four/referee/goal/return/stock/price) str(dfAsymBin) dist4 <- daisy(dfAsymBin, type = list(asymm = 1:6)) dist4 dfAsymBin mds4 <- isoMDS(dist4) plot(mds4$points, asp = 1, type = "n") text(mds4$points, labels = rownames(dfAsymBin)) dfAsymBin ## generating data done ## Nominal ## what do you like most out of a selection of things? str(dfNom) dist5 <- daisy(dfNom) dist5 mds5 <- isoMDS(dist5) plot(mds5$points, asp = 1, type = "n") text(mds5$points, labels = rownames(dfNom)) dfNom ## Ordinal ## How much do you agree on (0-10) on 5 questions? datOrd dfOrd <- as.data.frame(datOrd) for (i in 1:5) dfOrd[[i]] <- ordered(dfOrd[[i]]) str(dfOrd) dist6 <- daisy(dfOrd) dist6 mds6 <- isoMDS(dist6) plot(mds6$points, asp = 1, type = "n") text(mds6$points, labels = rownames(dfOrd)) datOrd # Mixed ## flowers data(flower) ?flower str(flower) ## use default data types for variables d1 <- daisy(flower, metric = "gower", type = list(asymm = c(1,3), symm = 2)) d1 ## Types = A, S, A, N, O, O, I, I cmd1 <- cmdscale(d1, eig = TRUE) cmd1 cmd2 <- isoMDS(d1) plot(cmd2$points, type = "n") text(cmd2$points, labels = rownames(flower)) flower[c(16,17),] flower[c(5,17),]