MDS 실습
실습1
사용할 데이터: eurodist
- 유럽의 주요 도시들 간의 거리 데이터
- 목표: 거리를 이용해 유럽 지도 복원하기
cmdscale
을 통해 메트릭 MDS 시행
metric = cmdscale(eurodist)
plot(metric, type = 'n')
text(metric, rownames(metric))
isoMDS
을 통해 넌메트릭 MDS 시행
library(MASS)
nonm = isoMDS(eurodist)
plot(nonm$points, type = 'n')
text(nonm$points, rownames(nonm$points))
initial value 7.505733 final value 7.505688 converged
- 가로, 세로 축의 숫자는 크게 신경쓰지 않아도 됨
- 그래프의 방향도 중요하지 않음
실습2
사용할 데이터: USArrests
- 미국 주들 간의 범죄 비율 데이터
- 목표: 범죄 간 차이를 이용해 주들 간 범죄 특성의 유사성 계산하기
데이터 확인
head(USArrests)
Murder Assault UrbanPop Rape Alabama 13.2 236 58 21.2 Alaska 10.0 263 48 44.5 Arizona 8.1 294 80 31.0 Arkansas 8.8 190 50 19.5 California 9.0 276 91 40.6 Colorado 7.9 204 78 38.7
- 주들 간의 범죄 특성의 유사성을 계산할 수 있음
거리 구하기
arrest.dist = dist(USArrests)
arrest.dist
Alabama Alaska Arizona Arkansas California Alaska 37.177009 Arizona 63.008333 46.592489 Arkansas 46.928137 77.197409 108.851918 California 55.524769 45.102217 23.194180 97.582017 ...
- 주들 간의 거리를 구해줌
- 숫자가 클수록 각 범죄간 차이가 큼
cmdscale
을 통해 메트릭 MDS 시행
arr.mds = cmdscale(arrest.dist)
plot(arr.mds, type = 'n')
text(arr.mds, rownames(arr.mds))
- 주들의 좌표가 나옴
- 범죄 수치가 비슷할수록 주들이 가까이 있음
- 우측 하단에 범죄가 많고 도시 인구가 많은 주들이 위치