음료수 간의 주관적인 거리 행렬 만들기(1~5점)
콜라 | 사이다 | 물 | 주스 | ||
---|---|---|---|---|---|
콜라 | 0 | 2 | 5 | 3 | |
사이다 | 2 | 0 | 3 | 2 | |
물 | 5 | 3 | 0 | 1 | |
주스 | 3 | 2 | 1 | 0 |
-> 엑셀로 만들어 csv 파일로 저장해 R로 불러오면 됨
cmdscale
을 통해 메트릭 MDS 시행
cmdscale(d)
[,1] [,2] [1,] -2.5378165 -0.33255314 [2,] -0.6607996 0.86464887 [3,] 2.4480556 0.07468104 [4,] 0.7505604 -0.60677677
isoMDS
을 통해 넌메트릭 MDS 시행
library(MASS)
mds = isoMDS(d)
mds$points
initial value 1.928240 final value 0.000000 converged
[,1] [,2] [1,] -2.4521328 -0.29996730 [2,] -0.7948391 0.88577426 [3,] 2.4822099 0.06673524 [4,] 0.7647620 -0.65254220
plot(mds$points, type = 'n')
text(mds$points, c('C', 'Y', 'W', 'J'))
A | B | C | ||
---|---|---|---|---|
콜라 | 5 | 1 | 1 | |
사이다 | 1 | 3 | 1 | |
물 | 2 | 5 | 4 | |
주스 | 3 | 4 | 5 |
-> 엑셀로 만들어 csv 파일로 저장해 R로 불러오면 됨
거리 구하기
d = dist(pref)
d
1 2 3 2 4.472136 3 5.830952 3.741657 4 5.385165 4.582576 1.732051
isoMDS
을 통해 넌메트릭 MDS 시행
mds = isoMDS(d)
plot(mds$points, type = 'n')
text(mds$points, c('C', 'Y', 'W', 'J'))
initial value 0.000000 final value 0.000000 converged