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

Sinh các bản sao K-S

Giờ bạn cần một hàm để rút các bản sao (replicates) Kolmogorov–Smirnov từ một phân phối mục tiêu f. Hãy xây dựng hàm với chữ ký draw_ks_reps(n, f, args=(), size=10000, n_reps=10000). Ở đây, n là số điểm dữ liệu, và f là hàm bạn sẽ dùng để tạo mẫu từ CDF mục tiêu. Ví dụ, để kiểm định so với phân phối Exponential, bạn sẽ truyền np.random.exponential làm f. Hàm này thường có các tham số, và bạn phải truyền chúng dưới dạng một tuple. Vì vậy, nếu bạn muốn lấy mẫu từ phân phối Exponential với kỳ vọng x_mean, bạn sẽ dùng từ khóa args=(x_mean,). Hai tham số từ khóa sizen_reps lần lượt là số lượng mẫu lấy từ phân phối mục tiêu và số bản sao cần rút.

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

Các nghiên cứu tình huống về tư duy thống kê

Xem khóa học

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

  • Viết một hàm với chữ ký draw_ks_reps(n, f, args=(), size=10000, n_reps=10000) thực hiện các bước sau.
    • Sinh size mẫu từ phân phối mục tiêu f. Nhớ rằng để truyền args vào hàm lấy mẫu, bạn nên dùng cú pháp f(*args, size=size). Lưu kết quả vào x_f.
    • Khởi tạo mảng bản sao reps là một mảng rỗng có n_reps phần tử.
    • Viết vòng lặp for lặp lại n_reps lần các bước sau.
      • Lấy n mẫu từ f. Tiếp tục dùng *args trong lời gọi hàm. Lưu kết quả vào biến x_samp.
      • Tính thống kê K-S bằng dcst.ks_stat(), là hàm bạn đã viết ở bài trước và được lưu sẵn trong mô-đun dcst. Lưu kết quả vào mảng reps.
    • Trả về mảng reps.

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.

____ ____:
    # Generate samples from target distribution
    x_f = ____
    
    # Initialize K-S replicates
    reps = ____
    
    # Draw replicates
    for i in range(n_reps):
        # Draw samples for comparison
        x_samp = ____
        
        # Compute K-S statistic
        ____[i] = ____

    return reps
Chỉnh sửa và Chạy Mã