중요한 노드와 엣지 시각화하기
홍역 데이터세트의 한 가지 문제는 누가 감염시켰는지 알려지지 않은 개인이 세 명 있다는 점이에요. 이들 중 한 명(정점 184)은 직접 감염시킨 사람은 많지 않지만, 결과적으로는 많은 사람에게 질병을 퍼뜨리는 데 책임이 있는 것으로 보여요. 하지만 네트워크에서 정점 184에는 들어오는 엣지가 없기 때문에 매개 중심성(betweenness)이 낮아 보일 수 있어요. 이 정점의 중요성을 살펴보는 한 가지 방법은 이 개인으로부터 바깥으로 퍼지는 연결의 측지 거리(geodesic distance)를 시각화하는 거예요. 이 연습에서는 이 환자 0(patient zero)으로부터의 거리 분포를 그리는 플롯을 만들어 볼 거예요.
이 연습은 강의의 일부입니다
R로 하는 네트워크 분석
연습 안내
make_ego_graph()를 사용해 정점 184와 연결된 정점들로 이루어진 네트워크 부분 그래프를 만드세요. 첫 번째 인수는 원래 그래프g입니다. 두 번째 인수는 관심 정점에 도달하기 위해 허용할 최대 연결 수예요. 이 경우 네트워크에서 가장 긴 경로 길이를 반환하는diameter()를 사용할 수 있어요. 세 번째 인수는 관심 정점으로 184여야 합니다. 마지막 인수는 mode로, 이번에는 방향에 상관없이 모든 연결을 포함해도 됩니다.- 정점 184로부터 각 정점까지의 측지 거리를 담은 객체
dists를 만드세요. 이를 계산하려면distances()함수를 사용하세요. - 각 정점에
color속성을 지정하세요. 색상은 해당 정점의 측지 거리에 따라 선택됩니다. 색상 팔레트colors의 길이는 최대 측지 거리 + 1과 같아요. 이렇게 하면 같은 거리에 있는 정점들이 같은 색으로 표시되고, 환자 0도 고유한 색을 갖게 됩니다. plot()을 사용해 네트워크g184를 시각화하세요. 정점 라벨은 측지 거리dists여야 합니다.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Make an ego graph
g184 <- ___(g, ___(g), nodes = '184', mode = c("all"))[[1]]
# Get a vector of geodesic distances of all vertices from vertex 184
dists <- ___(g184, "184")
# Create a color palette of length equal to the maximal geodesic distance plus one.
colors <- c("black", "red", "orange", "blue", "dodgerblue", "cyan")
# Set color attribute to vertices of network g184.
V(___)$color <- colors[dists+1]
# Visualize the network based on geodesic distance from vertex 184 (patient zero).
___(___,
vertex.label = ___,
vertex.label.color = "white",
vertex.label.cex = .6,
edge.color = 'black',
vertex.size = 7,
edge.arrow.size = .05,
main = "Geodesic Distances from Patient Zero"
)