Trực quan hóa các nút và cạnh quan trọng
Một vấn đề với bộ dữ liệu bệnh sởi là có ba cá nhân không rõ ai đã lây cho họ. Một trong số đó (đỉnh 184) dường như là người cuối cùng chịu trách nhiệm làm lây lan bệnh cho nhiều người khác, dù họ không trực tiếp lây cho quá nhiều người. Tuy nhiên, vì đỉnh 184 không có cạnh đi vào trong mạng lưới nên chỉ số betweenness trông có vẻ thấp. Một cách để khám phá tầm quan trọng của đỉnh này là trực quan hóa khoảng cách địa cực (geodesic) của các kết nối đi ra từ cá nhân này. Trong bài tập này, bạn sẽ tạo một biểu đồ các khoảng cách đó tính từ bệnh nhân số 0 này.
Bài tập này là một phần của khóa học
Phân tích Mạng lưới trong R
Hướng dẫn bài tập
- Dùng
make_ego_graph()để tạo một mạng con gồm các đỉnh có kết nối đến đỉnh 184. Đối số thứ nhất là đồ thị gốcg. Đối số thứ hai là số kết nối tối đa mà bất kỳ đỉnh nào cần có để kết nối đến đỉnh mục tiêu của chúng ta. Trong trường hợp này, ta có thể dùngdiameter()để trả về độ dài đường đi dài nhất trong mạng. Đối số thứ ba là đỉnh quan tâm, ở đây là 184. Đối số cuối cùng là mode. Ở đây bạn có thể bao gồm tất cả các kết nối bất kể hướng. - Tạo đối tượng
distschứa khoảng cách địa cực của mọi đỉnh tính từ đỉnh 184. Dùng hàmdistances()để tính. - Gán thuộc tính
colorcho mỗi đỉnh. Mỗi màu sẽ được chọn dựa trên khoảng cách địa cực của đỉnh đó. Bảng màucolorscó độ dài bằng khoảng cách địa cực lớn nhất cộng một. Như vậy, các đỉnh cùng khoảng cách sẽ được vẽ cùng màu và bệnh nhân số 0 cũng có màu riêng. - Dùng
plot()để trực quan hóa mạngg184. Nhãn đỉnh nên là các khoảng cách địa cựcdists.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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"
)