Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Xác suất - Thống kê] Tính p-value của kiểm định F trong ANOVA

    Trong kiểm định ANOVA, thay vì so sánh FFF với giá trị tới hạn tra bảng, người ta thường tính trực tiếp p-value:

    p=P(X>F)p = P(X > F)p=P(X>F)

    trong đó XXX tuân theo phân phối FFF với d1d_1d1​ bậc tự do tử số và d2d_2d2​ bậc tự do mẫu số. Hàm phân phối tích lũy của FFF liên hệ với hàm beta không đầy đủ được chuẩn hoá (regularized incomplete beta function) Ix(a,b)I_x(a,b)Ix​(a,b) như sau:

    P(X≤f)=Ix(d12,d22),x=d1fd1f+d2P(X \le f) = I_{x}\left(\frac{d_1}{2}, \frac{d_2}{2}\right), \qquad x = \frac{d_1 f}{d_1 f + d_2}P(X≤f)=Ix​(2d1​​,2d2​​),x=d1​f+d2​d1​f​

    nên p=P(X>f)=1−Ix ⁣(d12,d22)p = P(X>f) = 1 - I_x\!\left(\dfrac{d_1}{2}, \dfrac{d_2}{2}\right)p=P(X>f)=1−Ix​(2d1​​,2d2​​).

    Hãy viết chương trình Python thuần túy (không dùng scipy/numpy) tự cài đặt hàm beta không đầy đủ được chuẩn hoá (ví dụ bằng phân số liên tục - continued fraction, hoặc tích phân số với sai số đủ nhỏ) để tính ppp-value ứng với FFF, d1d_1d1​, d2d_2d2​ cho trước.

    Ví dụ: với F=4.96F=4.96F=4.96, d1=1d_1=1d1​=1, d2=10d_2=10d2​=10, ta có p≈0.050088p \approx 0.050088p≈0.050088 (giá trị FFF tới hạn quen thuộc ở α=0.05\alpha=0.05α=0.05).

    • Định dạng đầu vào:

      Một dòng duy nhất chứa 3 số: FFF, d1d_1d1​, d2d_2d2​ cách nhau bởi khoảng trắng, trong đó F≥0F \ge 0F≥0 là thống kê FFF quan sát được, d1,d2d_1, d_2d1​,d2​ là các số nguyên dương (bậc tự do).

    • Định dạng đầu ra:

      In ra một số thực duy nhất là ppp-value =P(X>F)= P(X>F)=P(X>F), làm tròn và hiển thị với đúng 6 chữ số sau dấu thập phân.

      Ví dụ với input mẫu ở đề bài (4.96 1 10), output là:

      0.050088
      

    Ví dụ:

    Đầu vào:

    1 5 10
    

    Đầu ra:

    0.465119
    

    Đầu vào:

    4.96 1 10
    

    Đầu ra:

    0.050088
    

    Đang tải editor...