1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Phân tích Mạng lưới trong R

Connected

Bài tập

Ngẫu nhiên hóa mạng lưới

Trong bài trước, bạn có thể đã nhận thấy độ dài đường đi trung bình của mạng Forrest Gump nhỏ hơn so với mạng ngẫu nhiên. Nếu bạn chạy mã vài lần, bạn sẽ thấy nó gần như luôn thấp hơn ở mạng Forrest Gump so với mạng ngẫu nhiên. Điều này gợi ý rằng mạng Forrest Gump liên kết chặt chẽ hơn từng mạng ngẫu nhiên, dù các mạng ngẫu nhiên có cùng số đỉnh và mật độ đồ thị gần như giống hệt. Thay vì chạy lại mã nhiều lần, bạn có thể tiếp cận chính quy hơn bằng cách tạo 1000 đồ thị ngẫu nhiên dựa trên số đỉnh và mật độ của đồ thị Forrest Gump gốc. Sau đó, bạn có thể xem có bao nhiêu lần độ dài đường đi trung bình của các đồ thị ngẫu nhiên nhỏ hơn mạng Forrest Gump gốc. Điều này được gọi là kiểm định ngẫu nhiên hóa (randomization test).

Đồ thị g và độ dài đường đi trung bình của nó (bạn đã tính ở bài trước), g.apl, đã có trong không gian làm việc của bạn.

Hướng dẫn

100 XP
  • Tạo 1000 đồ thị ngẫu nhiên từ đồ thị gốc g bằng cách chạy đoạn mã tạo đối tượng danh sách gl và vòng lặp for.
  • Tính độ dài đường đi trung bình của 1000 đồ thị ngẫu nhiên bằng lapply(). Tạo vector gl.apls gồm 1000 giá trị này bằng cách chạy đoạn mã dùng unlist().
  • Vẽ histogram của độ dài đường đi trung bình của 1000 đồ thị ngẫu nhiên bằng hist() trên vector gl.apls. Thêm một đường thẳng đứng màu đỏ, nét đứt vào biểu đồ bằng abline() với hoành độ là giá trị độ dài đường đi trung bình của đồ thị gốc, g.apl.
  • Tính tỷ lệ số lần giá trị độ dài đường đi trung bình của các đồ thị ngẫu nhiên gl.apls nhỏ hơn giá trị của đồ thị gốc g.apl. Về bản chất, đây là xác suất để chúng ta kỳ vọng quan sát được độ dài đường đi trung bình như vậy một cách ngẫu nhiên, khi biết mật độ và số đỉnh của đồ thị gốc.