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ê] Chọn bậc đa thức tối ưu bằng tiêu chuẩn AIC

    Với tập dữ liệu (xi,yi)(x_i,y_i)(xi​,yi​), i=1,…,ni=1,\dots,ni=1,…,n, hồi quy đa thức bậc ddd có dạng y^=β0+β1x+⋯+βdxd\hat y = \beta_0 + \beta_1 x + \dots + \beta_d x^dy^​=β0​+β1​x+⋯+βd​xd, các hệ số β\betaβ được ước lượng bằng bình phương nhỏ nhất thông qua ma trận Vandermonde VVV với Vi,p=xipV_{i,p} = x_i^{p}Vi,p​=xip​ (p=0,…,dp=0,\dots,dp=0,…,d), giải phương trình chuẩn VTV β=VTyV^T V\,\beta = V^T yVTVβ=VTy. Gọi SSEd=∑i=1n(yi−y^i)2SSE_d = \sum_{i=1}^n (y_i-\hat y_i)^2SSEd​=∑i=1n​(yi​−y^​i​)2 là tổng bình phương sai số của mô hình bậc ddd. Tiêu chuẩn thông tin Akaike (dạng giản lược) được định nghĩa:

    AIC(d)=nln⁡ ⁣(SSEdn)+2(d+1)AIC(d) = n \ln\!\left(\frac{SSE_d}{n}\right) + 2(d+1)AIC(d)=nln(nSSEd​​)+2(d+1)

    Cho nnn điểm dữ liệu và dmaxd_{max}dmax​ (đề bài đảm bảo n>dmaxn > d_{max}n>dmax​ và ma trận VTVV^TVVTV luôn khả nghịch với mọi d=0,…,dmaxd=0,\dots,d_{max}d=0,…,dmax​; nếu SSEdSSE_dSSEd​ tính ra nhỏ hơn 10−1210^{-12}10−12 do sai số dấu phẩy động thì coi SSEd=10−12SSE_d=10^{-12}SSEd​=10−12 khi tính AICAICAIC), hãy tính AIC(d)AIC(d)AIC(d) với d=0,1,…,dmaxd=0,1,\dots,d_{max}d=0,1,…,dmax​ và chọn bậc d∗d^*d∗ có AICAICAIC nhỏ nhất (so sánh trên giá trị đã làm tròn 4 chữ số; nếu có nhiều bậc đồng AICAICAIC nhỏ nhất, chọn ddd nhỏ nhất).

    Ví dụ: n=4n=4n=4, dmax=1d_{max}=1dmax​=1, x=(0,1,2,3)x=(0,1,2,3)x=(0,1,2,3), y=(1.0,3.1,4.9,7.2)y=(1.0,3.1,4.9,7.2)y=(1.0,3.1,4.9,7.2). Hồi quy tuyến tính (d=1d=1d=1) khớp gần như hoàn hảo nên có SSESSESSE nhỏ hơn hẳn d=0d=0d=0, do đó AIC(1)<AIC(0)AIC(1) < AIC(0)AIC(1)<AIC(0) và d∗=1d^*=1d∗=1.

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

      Dòng 1: hai số nguyên nnn và dmaxd_{max}dmax​ (n≥2n \ge 2n≥2, 0≤dmax<n0 \le d_{max} < n0≤dmax​<n). Dòng 2: nnn số thực x1,…,xnx_1,\dots,x_nx1​,…,xn​. Dòng 3: nnn số thực y1,…,yny_1,\dots,y_ny1​,…,yn​.

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

      Dòng 1: dmax+1d_{max}+1dmax​+1 giá trị AIC(0),AIC(1),…,AIC(dmax)AIC(0), AIC(1),\dots,AIC(d_{max})AIC(0),AIC(1),…,AIC(dmax​) theo đúng thứ tự đó, cách nhau bởi khoảng trắng, mỗi giá trị làm tròn và hiển thị với đúng 4 chữ số thập phân. Dòng 2: một số nguyên duy nhất là bậc d∗d^*d∗ được chọn.

    Ví dụ:

    Đầu vào:

    5 2
    -2 -1 0 1 2
    4.1 1.0 0.1 0.9 4.2

    Đầu ra:

    7.5104 9.5100 -19.0818
    2
    

    Đầu vào:

    6 3
    1 2 3 4 5 6
    2.1 4.0 5.9 8.1 9.9 12.2

    Đầu ra:

    16.8148 -22.6170 -23.9787 -22.1116
    2
    

    Đang tải editor...