Bắt đầu ngayBắt đầu miễn phí

Trực quan hóa lấy mẫu hoán vị

Để hiểu trực quan cách lấy mẫu hoán vị hoạt động, trong bài này bạn sẽ tạo các mẫu hoán vị và quan sát chúng bằng đồ thị.

Ta sẽ tiếp tục dùng dữ liệu Trạm Thời tiết Sheffield, lần này xét lượng mưa theo tháng vào tháng 6 (tháng khô) và tháng 11 (tháng ẩm). Ta kỳ vọng hai phân phối này có thể khác nhau, nên sẽ lấy các mẫu hoán vị để xem các ECDF của chúng sẽ trông như thế nào nếu chúng có cùng phân phối.

Dữ liệu được lưu trong các mảng NumPy rain_junerain_november.

Nhắc lại, permutation_sample() có chữ ký hàm permutation_sample(data_1, data_2) và trả về permuted_data[:len(data_1)], permuted_data[len(data_1):], trong đó permuted_data = np.random.permutation(np.concatenate((data_1, data_2))).

Bài tập này là một phần của khóa học

Tư duy Thống kê với Python (Phần 2)

Xem khóa học

Hướng dẫn bài tập

  • Viết một vòng lặp for để tạo 50 mẫu hoán vị, tính ECDF của chúng và vẽ đồ thị.
    • Tạo một cặp mẫu hoán vị từ rain_junerain_november bằng hàm permutation_sample() của bạn.
    • Tạo các giá trị xy cho một ECDF cho từng mẫu hoán vị bằng hàm ecdf() của bạn.
    • Vẽ ECDF của mẫu hoán vị thứ nhất (x_1y_1) bằng các điểm. Làm tương tự cho mẫu hoán vị thứ hai (x_2y_2).
  • Tạo các giá trị xy cho ECDF của dữ liệu rain_junerain_november và vẽ các ECDF này lần lượt với đối số từ khóa color='red'color='blue'.
  • Gắn nhãn trục, đặt lề 2% và hiển thị biểu đồ. Phần này đã được làm sẵn, nên bạn chỉ cần bấm gửi để xem biểu đồ!

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.

for _ in ____:
    # Generate permutation samples
    perm_sample_1, perm_sample_2 = ____


    # Compute ECDFs
    x_1, y_1 = ____
    x_2, y_2 = ____

    # Plot ECDFs of permutation sample
    _ = plt.plot(____, ____, marker='.', linestyle='none',
                 color='red', alpha=0.02)
    _ = plt.plot(____, ____, marker='.', linestyle='none',
                 color='blue', alpha=0.02)

# Create and plot ECDFs from original data
x_1, y_1 = ____
x_2, y_2 = ____
_ = plt.plot(x_1, y_1, marker='.', linestyle='none', color='red')
_ = plt.plot(x_2, y_2, marker='.', linestyle='none', color='blue')

# Label axes, set margin, and show plot
plt.margins(0.02)
_ = plt.xlabel('monthly rainfall (mm)')
_ = plt.ylabel('ECDF')
plt.show()
Chỉnh sửa và Chạy Mã