3. Kiến thức cơ bản về phân tích số liệu

Trở về Mục lục cuốn sách

Mã nguồn người dịch mới upload: randomness.zip

Ta bắt đầu với một mẫu gồm n điểm đo {x0, x1,  …, xn − 1} của một đại lượng nào đó, thu thập từ một mô phỏng. Các ví dụ bao gồm mật độ của chất khí, thời gian chuyển tiếp giữa hai dạng thù hình của một phân tử, hay giá cổ phiếu. Ta giả sử rằng, một cách chặt chẽ, tất cả các kết quả đo đều có thể được biểu diễn bằng các biến ngẫu nhiên Xi thể hiện cho cùng một biến ngẫu nhiên X và tất cả phép đo đều độc lập thống kê với nhau (tính độc lập thống kê đã được đề cập trong Mục 5). Thông thường, ta không biết được phân bố xác suất F(x) bên trong, với mật độ xác suất p(x), để mô tả X.

3.1 Ước lượng

Vì vậy, ta muốn thu nhận thông tin về X bằng cách nhìn vào mẫu {x0, x1,  …, xn − 1}. Về nguyên lý, ta làm điều này bằng cách xét những ước lượng h = h(x0, x1, …, xn − 1). vì các điểm đo dều nhận được từ các biến ngẫu nhiên, H = h(X0, X1, …, Xn − 1) bản thân lại là một biến ngẫu nhiên. Các ước lượng thường được dùng để ước tính những tham số θ của các biến ngẫu nhiên, chẳng hạn mô-men của các phân bố. Những ước lượng cơ bản nhất gồm có:

  • Trị trung bình\overline{x} \equiv \frac{1}{n} \sum_{i=0}^{n-1} x_i  \label{eq:sampleMean}     (50)
  • Phương sai mẫus^2 \equiv \frac{1}{n}\sum_{i=0}^{n-1} (x_i-\overline{x})^2  \label{eq:samplevariance}     (51)Độ lệch chuẩn của mẫu là s\equiv \sqrt{s^2}.

Mã nguồn: file mean.c

Tiếp theo, một hàm C đơn giản được dùng làm ví dụ; hàm này tính trị trung bình của n điểm số liệu. Hàm nhận vào các tham số gồm có: n là số các điểm đo, và một mảng chứa số liệu. Nó trả lại trị trung bình:

double mean(int n, double *x)
{
  double sum = 0.0;                       /* sum of values */
  int i;                                        /* counter */

  for(i=0; i<n; i++)          /* loop over all data points */
    sum += x[i];
  return(sum/n);
}

Để luyện tập, bạn hãy viết một hàm tương tự để tính phương sai, xem Bài tập (3).

Trị trung bình mẫu có thể được dùng để ước lượng giá trị kì vọng μ ≡ E[X] của phân bố. Ước lượng này không chệch, nghĩa là giá trị kì vọng của trị trung bình, với kích thước mẫu n bấ kì, chính là giá trị kì vọng của biến ngẫu nhiên. Có thể thấy điều này một cách khá dễ dàng. Lưu ý rằng, một cách chặt chẽ, biến ngẫu nhiên từ đó mà trị trung bình mẫu \overline{x} được rút ra là \overline{X}=\frac{1}{n} \sum_{i=0}^{n-1} X_i:

\mu_{\overline{X}} \equiv  \text{E}[\overline{X}] = \text{E}\left[\frac{1}{n} \sum_{i=0}^{n-1} X_i\right]  = \frac{1}{n} \sum_{i=0}^{n-1} \text{E}[X_i] = \frac{1}{n} n \text{E}[X] = \text{E}[X]=\mu  \label{eq:expectMean}     (52)

Một lần nữa, ở đây bản chất tuyến tính của giá trị kì vọng lại được dùng đến. Ước lượng không chệch có nghĩa là nếu bạn lặp lại việc ước tính giá trị kì vọng thông qua tính trị trung bình một nhiều lần, thì tính chung lại ta sẽ nhận được giá trị đúng. Điều này không phụ thuộc vào kích thước của mẫu. Nhìn chung, ước lượng h của một tham số θ được gọi là không chệch nếu E[h] = θ.

Trái với điều bạn có thể trông đợi từ sự đối xứng giữa các PT (16) và (51), phương sai mẫu không phải là ước lượng không chệch đối với phương sai σ2 ≡ Var[X] của phân bố, mà là một ước lượng chệch. Lý do cơ bản là, như đã nói ở trên, rằng \overline{X} bản thân đã là một biến ngẫu nhiên được mô tả bởi một phân bố P_{\overline{X}}. Như ta thấy ở PT (52), phân bố này có trị trung bình μ, không phụ thuộc vào kích thước mẫu. Mặt khác, phân bố này có phương sai

\begin{aligned}  \sigma^2_{\overline{X}} & \equiv &  \text{Var}[\overline{X}] = \text{Var}\left[ \frac{1}{n} \sum_{i=0}^{n-1} X_i\right]  \stackrel{(\ref{eq:varLin})}{=}  \frac{1}{n^2} \sum_{i=0}^{n-1} \text{Var}[X_i] \nonumber \\  & = &\frac{1}{n^2} n \text{Var}[X] =  \frac{\sigma^2}{n} \label{eq:sigmaMean}\end{aligned}     (53)

Như vậy, sự phân bố của \overline{X} trở nên hẹp hơn khi kích thước mẫu, n, tăng lên. Điều đó có hệ quả sau đây đối với giá trị kì vọng của phương sai mẫu vốn được mô tả bởi biến ngẫu nhiên S^2=\frac{1}{n} \sum_{i=0}^{n-1} (X_i-\overline{X})^2:

\begin{aligned}  \text{E}[S^2] & = &  \text{E}\left[ \frac{1}{n} \sum_{i=0}^{n-1} (X_i-\overline{X})^2\right]  = \text{E}\left[ \frac{1}{n} \sum_{i=0}^{n-1} (X_i^2-2X_i \overline{X}  +\overline{X}^2)\right]  \nonumber \\  & = & \frac{1}{n} \left(\sum_{i=0}^{n-1} \text{E}[X_i^2]-n \text{E}[\overline{X}^2]\right)  \stackrel{(22)}{=} \frac{1}{n}  \left(n(\sigma^2+\mu^2)- n(\sigma^2_{\overline{X}}+\mu_{\overline{X}}^2)  \right)  \nonumber \\  & \stackrel{(53)}{=} &  \frac{1}{n} \left(n\sigma^2+n\mu^2-  n\frac{\sigma^2}{n}-n\mu^2 \right) = \frac{n-1}{n} \sigma^2  \label{eq:varianceBiased}\end{aligned}        (54)

Điều này có nghĩa là, mặc dù s2 bị chệch, nhưng \frac{n}{n-1}s^2 lại là ước lượng không chệch đối với phương sai của phân bố bên trong của X. Dù vậy, s2 cũng trở nên không chệch khi n → ∞.1

Với một vài phân bố, chẳng hạn như phân bố hàm lũy thừa, PT (41) với số mũ γ ≤ 2, phương sai không tồn tại. Khi tính toán số trị cho s2 theo PT (51), ta thấy được nó sẽ không hội tụ về một giá trị hữu hạn khi kích thước mẫu n tăng lên. Thay vì vậy, ta sẽ thấy được đôi lúc có những bước nhảy lên giá trị ngày càng cao. Ta nói rằng ước lượng này không vững. Để có được ấn tượng về độ rải rác của các điểm số liệu trong trường hợp này, ta có thể tính thay vào đó là độ lệch trung bình

D \equiv \frac{1}{n} \sum_{i=0}^{n-1} |x_i-\overline{x}|     (55)

Nói chung, một ước lượng càng kém vững thì các mô-men trong đó càng cao. Ngay cả trị trung bình còn có thể không vững, chẳng hạn với một phân bố lũy thừa có γ ≤ 1. Trong trường hợp này ta có thể dùng trung vị mẫu, vốn là giá trị xm sao cho xi ≤ xm với nửa số điểm trong mẫu, nghĩa là xm chính là điểm mẫu thứ (n + 1) / 2 nếu chúng được sắp xếp tăng dần.2 Rõ ràng, trung vị mẫu là một ước lượng cho trung vị (xem Định nghĩa 14). Nó vững hơn, vì ít chịu ảnh hưởng của các điểm mẫu thuộc phần đuôi [của phân bố]. Cách đơn giản nhất để tính trung vị là sắp xếp tất cả các điểm mẫu theo chiều tăng dần rồi lấy điểm mẫu ở vị trí thứ (n / 2 + 1). Quá trình này mất một thời gian chạy là O(n log n). Dù vậy, đã có thuật toán [Press và nnk. (1995); Cormen và nnk. (2001)] tính được trung vị thậm chí trong thời gian chạy tuyến tính, O(n).

3.2 Khoảng tin cậy

Ở mục trước, ta đã nghiên cứu ước lượng cho những tham số của một biến ngẫu nhiên X bằng cách dùng mẫu thu được từ một loạt các phép thử ngẫu nhiên độc lập. Cách này được gọi là ước lượng điểm, vì chỉ có một con số được ước lượng.

Vì mỗi ước lượng bản thân nó lại là một biến ngẫu nhiên, nên mỗi giá trị ước lượng thường sẽ sai khác so với giá trị thực θ. Do vậy, người ta muốn có được cảm nhận xem ước lượng có thể cách giá trị thực θ bao xa. Điều này có thể đạt được, chẳng hạn, thông qua:

Định nghĩa 22. Sai số quân phương cùa một ước lượng điểm H = h(X0, X1, …, Xn − 1) của một tham số θ

\begin{aligned}  \text{MSE}(H) &\equiv & \text{E}[ (H-\theta)^2] = \text{E}[ (H-\text{E}[H]+\text{E}[H]-\theta)^2] \nonumber \\  & = & \text{E}[ (H-\text{E}[H])^2] + \text{E}[ 2(H-\text{E}[H])(\text{E}[H]-\theta) ]  + \text{E}[ (\text{E}[H]-\theta)^2 ] \nonumber \\  & = & \text{E}[ (H-\text{E}[H])^2] + 2\underbrace{(\text{E}[H]-\text{E}[H])}_{=0}(\text{E}[H]-\theta)  + (\text{E}[H]-\theta)^2 \nonumber \\  & = & \text{Var}[H] + (\text{E}[H]-\theta)^2\end{aligned}      (56)

Nếu ước lượng là không chệch, nghĩa là nếu E[H] = θ, thì sai số quân phương được cho bởi phương sai của ước lượng. Bởi vậy, nếu như với các mẫu độc lập (từng mẫu đều chứa n điểm mẫu) và các giá trị ước lượng đều gần sát nhau, thì ước lượng khá chính xác. Không may là, thường chỉ có một mẫu thôi (để biết cách khéo léo khắc phục điều này, hãy xem Mục 3.4). Đông thời, sai số quân phương không cho ta ngay sự diễn giải về mặt xác suất là ước lượng cách xa bao nhiêu so với giá trị thực θ.

Dù vậy, ta có thể nhận được một ước lượng của sai số theo nghĩa xác suất. Ở đây ta muốn tính được cái gọi là khoảng tin cậy, mà đôi khi còn được gọi là thang sai số.

Định nghĩa 23. Đối với một sai số θ miêu tả một biến ngẫu nhiên, có hai ước lượng lα = lα(x0, x1, …, xn − 1)u = uα(x0, x1, …, xn − 1) thu được từ mẫu {x0, x1,  …, xn − 1} cho ta một khoảng tin cậy nếu, với một mức ý nghĩa 1 − α ∈ (0, 1) cho trước, ta có

Pr(lα < θ < uα) = 1 − α           (57)

Giá trị α ∈ (0, 1) được gọi ngược lại là mức ý nghĩa.

Điều này nghĩa là, giá trị đúng như không biết rõ, θ, nằm trong khoảng (l, u), vốn cũng là một biến ngẫu nhiên với xác suất 1 − α. Những giá trị điển hình của mức tin cậy là 0.68, 0.95 và 0.99 (lần lượt với α = 0. 32, 0. 05, 0. 01), cho ta mức độ tin cậy tăng dần. Ta càng muốn chắc chắn rằng khoảng số thực sự chứa tham số thật, nghĩa là giá trị α càng nhỏ, thì khoảng tin cậy sẽ càng rộng ra.

Hình 11. Hàm phân bố mật độ xác suất của trị trung bình mẫu \overline{X} đối với các kích thước mẫu $n$ đủ lớn, khi đó phân bố trở nên có dạng Gauss. Giá trị kì vọng đúng được biểu diễn bởi μ, còn \sigma_{\overline{X}} là phương sai của trị trung bình mẫu. Xác suất để một số ngẫu nhiên rút ra từ phân bố này rơi ra ngoài khoảng đối xứng [\mu-z\sigma_{\overline{X}},\mu+z\sigma_{\overline{X}}]
α.

Tiếp theo là phần phác thảo sơ lược cách ta tìm ra khoảng tin cậy đối với trị trùng bình; để biết chi tiết hơn, bạn đọc cần tham khảo tài liệu chuyên nghành. Trước hết ta nhớ lại rằng theo định nghĩa, trị trung bình là một tổng các biến ngẫu nhiên độc lập. Để mô phỏng trên máy tính, ta có thể giả sử rằng thông thường (dưới đây sẽ có một phản ví dụ) một số lượng nhiều phép thử được tiến hành.3 Vì vậy, theo định lý giới hạn trung tâm  \overline{X} sẽ bộc lộ (gần đúng) một hàm phân bố xác suất f_{\overline{X}} dạng Gauss với giá trị kì vọng μ và phương sai \sigma^2_{\overline{X}}=\sigma^2/n nào đó. Điều này nghĩa là xác suất α để các trị trung bình mẫu rơi ra ngoài một khoảng I=[\mu-z\sigma_{\overline{X}},\mu+z\sigma_{\overline{X}}] có thể dễ dàng tìm được từ phân bố chuẩn hóa. Tình huống này được chỉ ra ở Hình 11. Lưu ý rằng khoảng số này có tính đối xứng hai bên trị trung bình μ và bệ rộng của nó được biểu diễn bằng z = z(α) lần của độ lệch chuẩn \sigma_{\overline{X}}. Mối quan hệ giữa mức cý nghĩa α và nửa bề rộng khoảng z đơn giản là \int_{-z}^{z}dx\,f_{\overline{X}}(x)=1-\alpha. Do đó, trọng số của phân bố chuẩn hóa bên ngoài khoảng [ − z, z]α. Mối quan hệ này có thể tra được từ bất kì bảng nào mô tả phân bố Gauss tiêu chuẩn hoặc từ hàm gsl_cdf_gaussian_P() của thư viện khoa học GNU (thư viện khoa học GNU). Thông thường, ta xét những giá trị nguyên z = 1, 2, 3 tương ứng với các mức ý nghĩa lần lượt là α = 0. 32, 0. 05, và 0. 003. Đến giờ, khoảng tin cậy I có chứa giá trị kì vọng μ mà ta không biết và phương sai không biết \sigma_{\overline{X}}. Trước hết, ta có thể viết lại

\begin{aligned}  1-\alpha & = &\text{Pr}(\mu-z\sigma_{\overline{X}}\le\overline{X}\le\mu+z\sigma_{\overline{X}})\\  & = &  \text{Pr}(-z\sigma_{\overline{X}}\le\overline{X}-\mu\le z\sigma_{\overline{X}})\\  & = &  \text{Pr}(-\overline{X}-z\sigma_{\overline{X}}\le-\mu\le  -\overline{X}z\sigma_{\overline{X}})\\  & = & \text{Pr}(\overline{X}-z\sigma_{\overline{X}} \le\mu\le  \overline{X}+z\sigma_{\overline{X}})  \,.\end{aligned}

Phương trình này phát biểu rằng giá trị thực, vốn được ước tính bằng trị trung bình mẫu \overline{x}, nằm trong một khoảng vốn có tính đối xứng hai bên giá trị ước lượng \overline{x}. Lưu ý rằng bề rộng 2z\sigma_{\overline{X}} về cơ bản được cho bởi \sigma_{\overline{X}}=\sqrt{\text{Var}[\overline{X}]}. Điều này lý giải cho việc sai số quên phương MSE(H)=Var[H]$, như được biểu diễn ở phần đầu mục này, là một độ đo tốt cho sai số thống kê được lập bởi ước lượng. Điều này sẽ được dùng đến ở Mục 3.4.

Để kết thúc, ta ước lượng phương sai thực σ2 qua \frac{n}{n-1}s^2, từ đó thu được . Để tóm tắt lại ta có:

;     (58)

Lưu ý rằng khoảng tin cậy này, với l_\alpha=\overline{x}-z(\alpha)S/\sqrt{n-1}u_\alpha=\overline{x}+z(\alpha)S/\sqrt{n-1}, có tính đối xứng qua \overline{x}, vốn không cần thiết đối với những khoảng tin cậy khác. Trong các ấn phẩm khoa học, người ta thường xuyên đề cập đến ước lượng μ bao gồm khoảng tin cậy, và cho một khoảng mà giá trị trung bình đúng lọt vào trong đó ở 68% của tất cả các trường hợp (z = 1) nghĩa là \overline{x}\pm \frac{S}{\sqrt{n-1}}, đây được gọi là thang sai số Gauss chuẩn hoặc thang sai số một σ . Như vậy, phương sai mẫu và kích thước mẫu sẽ quyết định thang sai số / khoảng tin cậy.

Đối với phương sai, tình hình trở nên phức tạp hơn, vì không nó đơn giản là một tổng các điểm mẫu độc lập thống kê {x0, x1,  …, xn − 1}. Ở đây ta không đi sâu vào chi tiết, mà chỉ đưa ra trích dẫn từ một số tài liệu : Khoảng tin cậy với xác suất 1 − α để giá trị phương sai thực nằm trong đó được cho bởi [σl2, σu2], với

$latex \begin{align} \sigma^2_l & = & \frac{ns^2}{\chi^2(1-\alpha/2, n-1)} \nonumber \\ \sigma^2_u & = & \frac{ns^2}{\chi^2(\alpha/2, n-1)}. \end{align} $         (59)

Ở đây, χ2(β, ν) là nghịch đảo của phân bố khi-bình phương luỹ tích với ν bậc tự do. Nó chỉ ra giá trị tại đó F(χ2, ν) = β. Hàm khi-bình phương này được lập trong thư viện khoa học GNU trong hàm gsl_cdf_chisq_Pinv().

Lưu ý rằng một cách làm khác là có thể coi y_i\equiv (x_i-\overline{x}) gần như các điểm dữ liệu độc lập và dùng ước lượng sai số tiêu chuẩn nêu trên dành cho trị trung bình của mẫu {yi}. Ngoài ra, còn có thể dùng phương pháp bootstrap được giải thích sau đây (Mục 3.4); phương pháp này cho phép tính khoảng tin cậy của một ước lượng bất kì.

3.3 Histogram

Có những lúc bạn không muốn ước lượng các mô-men của một phân bố, mà muốn cảm nhận được toàn bộ phân bố này. Với trường hợp như vậy, bạn có thể dùng các histogram.

Định nghĩa 24. Một histogram được cho bởi một tập hợp các khoảng biệt lập

Bk = [lk, uk) ,         (60)

vốn được gọi là ngăn và một biến đếm hk cho từng ngăn. Với một mẫu cho trước gồm n điểm đo được {x0, x1,  …, xn − 1}, ngăn hk sẽ chứa những điểm đo xi được chứa trong Bk.

Ví dụ 4. Đối với mẫu

\begin{aligned}  \{x_i\} & = & \{ 1.2,\, 1.5,\, 1.0,\, 0.7,\, 1.4,\, 2.0,\,\\  & & \;\; 1.5,\, 1.1,\, 0.9,\, 1.9,\, 1.2,\, 0.8\} \end{aligned}

các ngăn
[0, 0. 5),  [0. 5, 1. 0) [1. 0, 1. 5),  [1. 5, 2. 0),  [2. 0, 2. 5) [2. 5, 3. 0) , 
sẽ được sử dụng, dẫn tới

h1 = 0,  h2 = 3,  h3 = 5,  h4 = 3,  h5 = 1,  h6 = 0 , 
điều này được minh họa trên Hình 12.

Hình 12. Histogram ứng với só liệu ở Ví dụ 4.

Về nguyên tắc, các ngăn có thể được chọn tùy thích. Bạn cần lưu ý rằng hợp của tất cả các khoảng phải phủ hết các điểm mẫu (có thể hoặc thực). Ở đây có giả sử rằng các ngăn được chọn thích hợp. Cũng cần lưu ý rằng bề rộng bk = uk − lk của mỗi ngăn có thể khác nhau. Dù vậy, thông thường người ta vẫn dùng ngăn có độ dài như nhau. Hơn nữa, trong nhiều ứng dụng, chẳng hạn khi ấn định các trọng số khác nhau đối với từng điểm mẫu4, thì cần coi những biến đếm như các biến với giá trị thực. Thư viện khoa học GNU có chứa các cấu trúc dữ liệu và hàm lập cho những histogram có bề rộng ngăn thay đổi.

Theo ngôn ngữ toán học, đối với một biến ngẫu nhiên X cho trước, số lần đếm hk của ngăn k có thể được xem như là kết quả của một phép thử ngẫu nhiên đối với biến ngẫu nhiên theo phân bố nhị thức Hk ∼ B(n, pk) với các tham số npk, trong đó pk = Pr(X ∈ Bk) là xác suất để một phép thử ngẫu nhiên cho X cho ra giá trị nằm trong ngăn Bk. Điều này có nghĩa là các khoảng tin cậy của một ngăn histogram về nguyên tắc, có thể tìm được từ một phân bố nhị thức. Dù vậy, đối với mỗi mẫu, giá trị thực của một giá trị pk lại không thể biết được mà chỉ có thể ước lượng bằng qk ≡ hk / n. Do vậy, phân bố nhị thức thật sự là không thể biết được. Mặt khác, một biến ngẫu nhiên nhị thức là tổng của n biến ngẫu nhiên Bernoulli với tham số pk. Như vậy, ước lượng qk không khác gì một trung bình mẫu của biến ngẫu nhiên Bernoulli. Nếu số các điểm mẫu n là “lớn” (xem dưới đây), thì từ định lý giới hạn trung tâm và như đã thảo luận ở Mục 3.2, dạng phân bố của trị trung bình mẫu (thật ra là nhị thức) sẽ xấp xỉ dạng phân bố Gauss. Từ đó, ta có thể dùng khoảng tin cậy chuẩn PT (58) cho trường hợp này

\begin{aligned}  \text{Pr} \left(  q_k-z\frac{S}{\sqrt{n-1}} \le p_k\le  q_k+z\frac{S}{\sqrt{n-1}}  \right)\approx 1-\alpha \label{eq:confidenceHisto}\end{aligned}     (61)

Ở đây, theo PT (19), biến ngẫu nhiên Bernoulli cho thấy phương sai mẫu s2 = qk(1 − qk) = (hk / n)(1 − hk / n). Một lần nữa, z = z(α) biểu thị cho nửa bề rộng của một khoảng [ − z, z] sao cho trọng số của phân bố chuẩn hóa bên ngoài khoảng bằng với α. Do vậy, ước lượng với thang sai số chuẩn (z = 1) là q_k \pm \sqrt{q_k(1-q_k)/(n-1)}.

Câu hỏi còn lại là: Thế nào là “đủ lớn” để bạn có thể dựa vào khoảng tin cậy “Gauss” này? Chẳng hạn, xét trường hợp bạn không có điểm đo nào trong một ngăn Bk nhất định. Điều này có thể dễ dàng xảy ra ở vùng mà pk nhỏ hơn 1 / n nhưng vẫn khác không, nghĩa là trong các vùng của histogram mà được dùng để lấy mẫu cho hai phần đuôi của một hàm mật độ xác suất. Ở trường hợp này phần được ước lượng có thể dễ dàng là qk = 0, cũng dẫn đến một khoảng tin cậy có bề rộng bằng 0; điều này chắc chắn là sai. Điều này có nghĩa là số lượng các mẫu n cần để có một khoảng tin cậy “đạt yêu cầu” cho một ngăn Bk thì phụ thuộc vào số ngăn. Một quy tắc tiện dụng trong tài liệu thống kê là điều kiện nqk(1 − qk) > 9 cần được thỏa mãn. Nếu điều kiện này không thỏa, thì khoảng tin cậy đúng [qi, l, qi, u] đối với qk cần được tìm từ phân bố nhị thức và như vậy sẽ phức tạp, vì liên quan đến cách dùng phân bố F (xem Định nghĩa 21)

\begin{aligned}  \label{eq:confHistoB}  q_{i,l} & = & \frac{h_k}{h_k+(n-h_k+1)F_1} \nonumber \\  q_{i,u} & = & \frac{(h_k+1)F_2}{(h_k+1)F_2+n-h_k}\,,\\  \mbox{where}\;\; F_1 & = & F(1-\alpha/2;\, 2n-2h_k+2,\, 2h_k) \nonumber\\  F_2 & = & F(1-\alpha/2;\, 2h_k+2,\, 2n-2h_k) \nonumber  \end{aligned}       (62)

Giá trị F(β;  r1,  r2) có nghĩa là giá trị của x được chọn sao cho hàm phân bố của phân bố F với số các bậc r1r2, đạt được giá trị β. Hàm phân bố ngược đã được lập tring thư viện khoa học GNU. Nếu bạn luôn dùng những khoảng tin cậy này, vốn thường không đối xứng qua qk, thì bạn không thể nhầm vào đâu được. Dù vậy, hầu hết các ứng dụng đều dùng được thang sai số Gauss.

Sau cùng, trong trường hợp bạn muốn dùng histogram để biểu diễn một mẫu từ một biến ngẫu nhiên liên tục, thì bạn có thể dễ dàng diễn giải một histogram như một mẫu của một hàm mật độ xác suất, vốn có thể được biểu diễn lại như một tập hợp các điểm \{(\tilde x_k,p(\tilde x_k))\}. Đây được gọi là hàm mật độ xác suất histogram hoặc hàm mật độ xác suất mẫu. Để đơn giản, nó được giả sử rằng các trung điểm của những khoảng được dùng làm hoành độ (x). Để chuẩn hóa, ta phải đem chia cho tổng số lượt đếm, như đối với qk = hk / n và để chia cho bề rộng ngăn. Điều này đảm bảo cho tích phân của hàm mật độ xác suất mẫu, xấp xỉ bởi một tổng, phải bằng 1. Vì vậy, ta có

\begin{aligned}  \tilde x_k & \equiv &(l_k+u_k)/2 \nonumber \\  p(\tilde x_k) & \equiv & h_k/(n b_k)\,.\end{aligned}       (63)

Khoảng tin cậy, bất kể theo kiểu nào mà bạn chọn, phải được chuẩn hóa theo cùng một cách này.

Với các biến ngẫu nhiên rời rạc, histogram có thể được dùng để ước tính hàm khối xác suất.5. Trong rường hợp này, sự lựa chọn của các ngăn, đặc biệt là những bề rộng của ngăn, đều dễ dàng, vì thường tất cả những kết quả có thể xảy ra của những phép thử ngẫu nhiên đều đã biết. Đối với hàm mật độ xác suất histogram, vốn được dùng để mô tả gần đúng một biến ngẫu nhiên liên tục, thì lựa chọn bề rộng của ngăn là quan trọng. Về cơ bản, bạn phải tự tay điều chỉnh bề rộng này, sao cho biểu diễn được “tốt nhất” số liệu mẫu. Do đó, bề rộng ngăn không được quá nhỏ hoặc quá lớn. Đôi khi cách lựa chọn tốt nhất lại là bề rộng ngăn không đều nhau. Trong trường hợp này, không có một lời khuyên chung nào, ngoại trừ là bề rộng ngăn phải đủ lớn ở những chỗ có ít điểm số liệu được lấy mẫu. Điều này có nghĩa là mỗi ngăn nên chứa số các điểm mẫu gần bằng nhau. Một số quy tắc tiện dụng đã được đặt ra đối với bề rộng không đổi. Chẳng hạn b = 3.49Sn − 1 / 3  [Scott (1979)], xuất phát từ việc cực tiểu hóa trung bình tổng hợp các bình phương độ lệch giữa một hàm mật độ xác suất Gauss và một mẫu được rút ra từ phân bố Gauss này. Vì vậy, phương sai S của mẫu càng lớn thì bề rộng ngăn càng lớn, còn việc tăng số các điểm mẫu thì khiến cho bề rộng ngăn được phép giảm đi.

Ở bất kì trường hợp nào, bạn cũng cần hiểu rằng histogram hàm mật độ xác suất chỉ có thể được là xấp xỉ của một hàm mật độ xác suất thực, do số lượng các điểm số liệu chỉ là có hạn và cũng do bản chất rời rạc của các ngăn. Vấn đề thứ hai nói trên đã bắt đầu được xử lý trong những năm gần đây bằng các ước lượng nhân (kernel estimator) . Trong đó, từng điểm mẫu xi được biểu diễn bằng một hàm nhân (kernel function). Một hàm nhân k(x) là một hàm nhọn đỉnh, về mặt toán học thì bộc lộ những tính chất sau:

  • Nó đạt cực đại tại 0.
  • Nó giảm dần về không sau một khoảng cách h nhất định.
  • Tích phân của hàm này ∫ k(x) dx được chuẩn hóa về 1.

Các hàm nhân thường dùng bao gồm, chẳng hạn tam giác, hình parabol úp, hoặc một hàm Gauss. Từng điểm mẫu xi được biểu diễn sao cho một hàm nhân được tịnh tiến có cực đại ở xi. Ước lượng \hat p(x) của hàm mật độ xác suất là tổng được chuẩn hóa một cách thích hợp (qua hệ số 1 / n) của tất cả những hàm nhân này, mỗi hàm nhân cho một điểm mẫu:

\hat p(x) = \frac 1 n \sum_i k(x-x_i)       (64)

Những ưu điểm của các ước lượng nhân này là chúng thường cho ra một hàm trơn \hat p, và đối với một giá trị $\hat p(x)$ các điểm mẫu ở cách xa x hơn cũng có thể đóng góp với trọng số giảm dần theo khoảng cách. Tham số quan trọng nhất là bề rộng h, vì nếu h quá nhỏ sẽ dẫn đến nhiều đỉnh không phân biệt được, mỗi đỉnh ứng với một điểm mẫu; trong khi giá trị h quá lớn sẽ làm mất những chi tiết quan trọng. Điều này có tầm quan trọng giống như việc chọn bề rộng ngăn cho histogram. Việc chọn hàm nhân (chẳng hạn tam giác, hình parabol úp, hoặc một hàm Gauss) thì dường như kém quan trọng bằng.

3.4 Lấy mẫu lại bằng Bootstrap

Như đã được chỉ ra, một ước lượng cho tham số θ nào đó, cho bởi một hàm h(x0, x1, …, xn − 1), thực ra là một biến ngẫu nhiên H = h(X0, X1, …, Xn − 1). Do đó, để thu được ấn tượng về độ chênh lệnh giữa ước lượng với giá trị thực của tham số đó, về nguyên tắc, ta phải biết được dạng phân bố của ước lượng, chẳng hạn qua hàm mật độ xác suất pH hoặc hàm phân bố FH. Ở chương trước, chỉ có một vài tham số đã biết dạng phân bố, đặc biệt nếu kích thước mẫu n là lớn. Chẳng hạn, phân bố của trị trung bình mẫu sẽ hội tụ về một phân bố Gauss, bất kể hàm phân bố FX miêu tả các điểm mẫu {xi} có như thế nào đi nữa.

Với trường hợp một ước lượng H nói chung, đặc biệt khi FX không được biết, thì có thể ta không biết điều gì về dạng phân bố của H. Vào trường hợp này, ta có thể xấp xỉ FX bằng hàm phân bố mẫu:

Định nghĩa 25. Đối với mẫu {x0, x1, …, xn − 1}, hàm phân bố mẫu (cũng được gọi là hàm phân bố thực nghiệm) là


       (65)

Lưu ý rằng hàm phân bố này thực ra mô tả một biến ngẫu nhiên rời rạc (ở đây được gọi là \hat X), nhưng thường (tuy không phải luôn luôn) được dùng để xấp xỉ một hàm phân bố liên tục.

Nguyên lý bootstrap là việc dùng F_{\hat X} thay cho FX. Tên gọi của nguyên lý này đã được phổ biến nhờ B. Efron [Efron (1979); Efron và Tibshirani (1994)] và bắt nguồn từ truyện cổ tích về Bá tước Münchhausen, người đã tự kéo mình ra khỏi đầm lầy bằng cách lấy tay kéo quai giầy (strap–boot) của mình.6 Vì hàm phân bố FX được thay bằng hàm phân bố mẫu thực nghiệm, nên phương pháp này còn được gọi là bootstrap thực nghiệm; cũng có một biến thể khác được gọi là bootstrap tham số sẽ được trình bày sau đây.

Bây giờ, khi có F_{\hat X}, về nguyên tắc, ta đã có thể tính ra chính xác hàm phân bố F_{\hat H} cho biến ngẫu nhiên \hat H = h(\hat X_0, \hat X_1,\ldots, \hat X_{n-1}), vốn sau đó trờ thành xấp xỉ cho FH. Thông thường, việc này rất rườm rà và người ta dùng một cách xấp xỉ thứ hai: Rút ra những mẫu bootstrap \{\hat x_0, \hat x_1, \ldots, \hat x_{n-1}\} từ biến ngẫu nhiên \hat X. Cách này được gọi là lấy mẫu lại. Có thể thực hiện điều này đơn giản bằng cách chọn n lần (có hoàn lại) một trong số các điểm số liệu từ mẫu ban đầu {xi}, mỗi điểm với cùng xác suất 1 / n. Điều này có nghĩa là các điểm mẫu từ {xi} có thể xuất hiện vài lần trong \{\hat x_i\}, một số điểm có thể không xuất hiện.7 Bây giờ, ta có thể tính giá trị của ước lượng h^*=h(\hat x_0, \hat x_1, \ldots, \hat x_{n-1}) đối với từng mẫu bootstrap. Việc này được lặp lại K lần với các mẫu bootstrap khác nhau, cho ra K giá trị hk *  (k = 1, …, K) của ước lượng. Hàm phân bố mẫu FH *  của mẫu này {hk * } là kết quả cuối cùng, vốn là một xấp xỉ của hàm phân bố FH mong muốn. Lưu ý rằng xấp xỉ thứ hai, với việc thay F_{\hat H} bằng FH *  có thể được làm cho chính xác bao nhiêu cũng được, bằng cách làm cho K lớn tùy ý, vốn là cách rất lợi cho việc tính toán.

Bạn có thể hỏi: Liệu việc này có tác dụng không, nghĩa là, liệu FH *  có là xấp xỉ tốt của FH không? Trong trường hợp chung, thì không có câu trả lời nào. Nhưng ở một số trường hợp, đã có chứng minh toán học. Chẳng hạn, với trị trung bình H=\overline{X}, hàm phân bố F_{\overline{X}^*} thực ra đã hội tụ về F_{\overline{X}}. Ở đây, chỉ có một chi tiết nảy sinh là ta phải xét đến: các phân bố chuẩn hóa của \overline{X}-\mu (μ = E[X]) và \hat X -\overline{x} (\overline{x}=\sum_{i=0}^{n-1}x_i/n). Do vậy, các biến ngẫu nhiên chỉ đơn giản được dịch chuyển theo các hằng số. Với những trường hợp khác như ước tính trung vị hoặc phương sai, ta phải chuẩn hóa theo cách khác, nghĩa là, bằng cách trừ đi trung vị (thực nghiệm) hoặc chia cho phương sai (thực nghiệm). Dù sao, đối với các thuộc tính của FH mà ta quan tâm, đặc biệt là về phương sai, như dưới đây, thì các phép chuẩn hóa như dịch chuyển và co giãn đều vô hiệu, do vậy dưới đây ta sẽ bỏ qua chúng. Lưu ý rằng thật ra có một vài ước lượng, như cực đại của một phân bố, mà với chúng ta có thể chứng minh ngược lại rằng FH *  không hội tụ về FH, ngay cả sau khi chuẩn hóa. Mặt khác, với mục đích thu được một ước lượng không quá dở, chẳng hạn về thang sai số, thì bootstrap là một phương pháp rất thuận tiện và phù hợp và gần đây đã được chấp nhận rộng rãi.

Bây giờ, ta có thể dùng FH *  để tính một đại lượng mong muốn bất kì. Quan trọng nhất là trường hợp khoảng tin cậy [hl, hu] sao cho tổng xác suất bên ngoài khoảng bằng α, đối với mức ý nghĩa α cho trước, nghĩa là FH * (hu) − FH * (hl) = 1 − α. Cụ thể là, ta có thể phân phối trọng số α đều về hai bên của khoảng, điều này cho phép xác định hl, hu

F_{H^*}(h_u)=F_{H^*}(h_l)=\alpha/2\,.  \label{eq:bsConfidence}       (66)

Cũng giống như các khoảng tin cậy đã trình bày ở Mục 3.2, [hl, hu] cũng thể hiện khoảng tin cậy cho tham số θ không biết, vốn cần được ước tính từ ước lượng (nếu nó không chệch). Lưu ý rằng [hl, hu] có thể bất đối xứng quanh giá trị ước tính thực h(x0, x1, …, xn − 1). Điều này sẽ xảy ra nếu phân bố FH *  bị xiên (không đối xứng).

Để đơn giản, như ta đã thấy ở Mục 3.2, ta có thể dùng phương sai Var[H] để mô tả độ bất định thống kê của ước lượng. Như đã đề cập đến ở trang , điều này cơ bản là ứng với một độ bất định α = 0. 32.

Mã nguồn: các file ,bootstrap.cbootstrap_test.c

Hàm C sau đây nhằm tính Var[H * ], xấp xỉ của đại lượng Var[H] chưa biết. Ta cần phải truyền dưới dạng tham số các dữ kiện sau: số các điểm mẫu, n, một mảng chứa các điểm mẫu, số lần lặp bootstrap, K, và một con trỏ tời hàm f biểu diễn cho ước lượng. f phải nhận vào hai đối số: số các điểm mẫu và một mảng chứa mẫu. Nếu bạn cần giải thích về con trỏ tới hàm, hãy xem các tài liệu hướng dẫn C. Hàm bootstrap_variance() trả lại Var[H * ].

double bootstrap_variance(int n, double *x, int n_resample,
                         double (*f)(int, double *))
{
  double *xb;                                  /* bootstrap sample */
  double *h;                            /* results from resampling */
  int sample, i;                                  /* loop counters */
  int k;                                        /* sample point id */
  double var;                             /* result to be returned */
  h = (double *) malloc(n_resample * sizeof(double));
  xb = (double *) malloc(n * sizeof(double));
  for(sample=0; sample<n_resample; sample++)
  {
    for(i=0; i<n; i++)                                 /* resample */
    {
      k = (int) floor(drand48()*n);         /* select random point */
      xb[i] = x[k];
    }
    h[sample] = f(n, xb);                   /* calculate estimator */
  }
  var = phương sai(n_resample, h);      /* obtain bootstrap variance */
  free(h);
  free(xb);
  return(var);
}

Mẫu bootstrap \{\hat x_i\} được lưu trong mảng xb, còn các giá trị ước lượng mẫu {hk * } được lưu trong mảng h. Việc cấp phát bộ nhớ cho những mảng này được thực hiện ở hai dòng lệnh 10–11. Ở vòng lặp chính (các dòng 12–20) các mẫu bootstrap được tính toán, mỗi lần ước lượng được tìm ra và kết quả được lưu trong h. Sau cùng, phương sai của mẫu {hk * } được tính toán (dòng 22). Ở đây, hàm variance() được dùng, nó hoạt động giống như hàm mean(), xem Bài tập (3). Bạn cần lập một hàm bootstrap để tính khoảng tin cậy chung trong Bài tập (4).

Cách hiển nhiên nhất là gọi bootstrap_variance() với tham số thứ tư là ước lượng mean. Đối với một phân bố được gọi là “tốt” (theo nghĩa, một tổng của vài biến ngẫu nhiên sẽ giống như phân bố chuẩn), bạn sẽ thu được một phương sai sao cho, ít nhất là nếu n_resample tương đối lớn, thì phương sai này sẽ rất sát với thang sai số Gauss tiêu chuẩn (α = 0. 32).

Để tính ra các thuộc tính của trị trung bình mẫu, phương pháp bootstrap hoạt động tốt, nhưng trong trường hợp này ta cũng có thể thỏa mãn với khoảng tin cậy Gauss. Phương pháp bootstrap sẽ hay hơn đối với các ước lượng không chuẩn. Một ví dụ điển hình trong lĩnh vực vật lý thống kê, đó là đại lượng cumulant mang tên Binder (Binder cumulant) [Binder (1981)], vốn được cho bởi:

b(x_0,x_1, \ldots, x_{n-1})=  0.5\left(3-\frac{\overline{x^4}}  {[\overline{x^2}]^2}\right)          (67)

trong đó \overline{\rule{0pt}{5pt}\ldots} một lần nữa là trung bình mẫu, chẳng hạn \overline{x^2} = \sum_{i=0}^{n-1} x_i^2. Cumulant Binder thường được dùng để xác định sự chuyển pha bằng mô phỏng, trong đó chỉ nghiên cứu được những hệ thống gồm một số hữu hạn các hạt. Chẳng hạn, xét một hệ sắt từ được giữ ở nhiệt độ T nào đó. Ở nhiệt độ thấp, dưới nhiệt độ Curie Tc, hệ sẽ biểu hiện một từ trường vĩ mô m. Mặt khác, với các nhiệt độ cao hơn Tc, thì m về trung bình sẽ hội tụ về không khi kích thước của hệ tăng lên. Sự chuyển tiếp này không rõ ràng, đặc biệt là với các hệ có kích thước nhỏ. Dù vậy, khi tính cumulant của Binder đối với các tập hợp khác nhau của điểm mẫu {m(T, L)i} vốn thu được từ nhiều giá trị nhiệt độ T và kích thước hệ L khác nhau, thì các đường cong bL(T) với L biến đổi đều (hầu như) cắt qua Tc [Landau và Binder (2000)], vốn cho phép xác định chính xác Tc. Một kết quả ví dụ của mô hình sắt từ hai chiều (xếp chồng) thể hiện L × L hạt như chỉ ra trên Hình 13. Cumulant của Binder đã rất có ích trong việc mô phỏng nhiều hệ khác như vật liệu hỗn độn, chất khí, các bài toán tối ưu, chất lỏng/khí, và đồ thị mô tả các hệ thống xã hội.

Hình 13. Biểu đồ cumulant Binder của mô hình sắt từ hai chiều dưới dạng hàm số của nhiệt độ T (không thứ nguyên). Mỗi hệ bao gồm L × L hạt. Những đường cong với các kích thước hệ L khác nhau đều gần như cắt qua nhiệt độ chuyển pha T= 2.269 (được biết từ những tính toán theo công thức giải tích của mô hình này). Các thang sai số được chỉ ra có thể xác định được bằng phương pháp bootstrap.

Mã nguồn: các file binder_L8.dat, binder_L10.dat, binder_L16.dat, binder_L30.dat

Một khoảng tin cậy cho cumulant Binder là rất khó (hoặc thậm chí không thể) xác định bằng tính toán sai số một cách chuẩn mực. Bằng cách bootstrap, việc này đã dễ dàng hơn. Bạn có thể đơn giản là dùng hàm bootstrap_variance() ở trên cùng việc cung cấp đối số là một hàm ước tính cumulant Binder của một tập hợp cho trước các điểm số liệu.

Đến giờ, ta mới giả sử rằng hàm phân bố thực nghiệm F_{\hat X} được dùng để xác định một xấp xỉ cho FH. Ngoài ra, ta còn có thể dùng thêm kiến thức nào đó có sẵn. Hoặc cũng có thể đưa vào một số giả thiết, qua việc sử dụng một hàm phân bố F_{\underline{\lambda}} vốn được tham số hóa bởi một vec-tơ các tham số \underline{\lambda}. Đối với phân bố lũy thừa, véc-tơ chỉ chứa đúng một tham số, giá trị kì vọng, còn với phân bố Gauss, \underline{\lambda} sẽ chứa giá trị kì vọng và phương sai. Về nguyên tắc, cách này có thể dùng được với phân bố phức tạp, nhiều tham số tùy ý. Để cho F_{\underline{\lambda}} là xấp xỉ “tốt” cho FX, ta phải chỉnh các tham số sao cho hàm phân bố biểu diễn được mẫu {xi} được “đạt nhất”, kết quả là véc-tơ tham số \underline{\hat \lambda}. Những phương pháp và công cụ để thực hiện việc khớp tham số này được trình bày ở Mục 6.2. Dùng F_{\underline{\hat \lambda}} ta có thể tiến hành như trên: Hoặc là ta đi tính F_{\hat H} chính xác dựa theo F_{\underline{\hat \lambda}}, vốn thường hay rườm rà. Thay vì vậy, người ta thường thực hiện mô phỏng trong đó có lấy lặp lại những mẫu \{\hat x_0, \hat x_1, \ldots, \hat x_{n-1}\} từ việc mô phỏng F_{\underline{\hat \lambda}} rồi mỗi lần đi tính ước lượng h^*=h(\hat x_0, \hat x_1, \ldots, \hat x_{n-1}). Điều này, cũng như với trường hợp bootstrap thực nghiệm trước đây, cho kết quả là một hàm phân bố mẫu FH *  mà ta sẽ tiếp tục phân tích. Phương pháp này, trong đó F_{\underline{\lambda}} được dùng thay cho F_{\hat X}, được gọi là bootstrap tham số.

Lưu ý rằng phương pháp bootstrap không yêu cầu các điểm mẫu phải độc lập thống kê với nhau. Chẳng hạn, mẫu có thể được phát sinh bằng mô phỏng Monte Carlo có dùng chuỗi Markov, trong đó từng điểm số liệu xi + 1 được tính toán bằng cách dùng một quá trình ngẫu nhiên nào đó, nhưng cũng phụ thuộc vào điểm số liệu xi trước đó. Chi tiết thêm về cách định lượng mối tương quan được trình bày ở Mục 5. Dù sao, nếu mẫu đã tuân theo phân bố FX, thì mọi thứ đều ổn khi ta dùng cách bootstrap và chẳng hạn một khoảng tin cậy sẽ không phụ thuộc vào tỉ lệ các điểm số liệu “độc lập”. Ta có thể dễ thấy điều này bàng cách giả sử rằng bạn thay thế mỗi điểm số liệu {xi} trong mẫu ban đầu bằng 10 bản sao, qua đó làm cho mẫu lớn hơn gấp 1 lần mà không thêm thông tin gì. Điều này không ảnh hưởng gì đến phép tính bootstrap tiếp theo, vì kích thước của mẫu không tham gia rõ ràng vào phép tính. Việc mà bootstrap không bị ảnh hưởng bởi tương quan giữa các điểm số liệu là đặc điểm tương phản với cách truyền thống để tính khoảng tin cậy đã trình bày ở Mục 3.2, trong đó có giả sử tính độc lập của số liệu và số các điểm số liệu độc lập nhau được nhập vào những công thức như PT (58). Vì vậy, khi tính thang sai số theo PT (58) bằng mẫu sao chép 10 lần, nó sẽ bị sai, cụ thể là nhỏ đi \sqrt{10} lần, vì không có thêm thông tin nào so với mẫu ban đầu.

Cần nói thêm rằng bootstrap chỉ là một trong những phương pháp lấy mẫu lại. Một cách tiếp cận phổ biến khác là phương pháp dao nhíp, trong đó ta không lấy mẫu ngẫu nhiên bằng cách dùng F_{\hat X} hoặc khớp F_{\underline{\lambda}}. Thay vào đó, mẫu {xi} được chia thành B khối rộng bằng nhau, nb = n / B (với giả sử rằng n là bội số của B). Lưu ý rằng việc chọn B = n là có thể được và không hiếm gặp. Tiếp theo, một số B các mẫu dao nhíp b = 1, …, B được hình thành từ mẫu ban đầu {xi} bằng cách bỏ qua đúng các điểm mẫu của khối thứ b nhưng có chứa tất cả những điểm khác của mẫu ban đầu. Như vậy, từng mẫu dao nhíp này có chứa n − nb các điểm mẫu. Đối với từng mẫu dao nhíp, một lần nữa ước lượng được tính ra, hình thành nên một mẫu {hk(j)} có kích thước B. Lưu ý rằng hàm phân bố mẫu F(j) của mẫu này không phải là một xấp xỉ của hàm phân bố ước lượng FH! Dù sao, nó vẫn rất có ích. Chẳng hạn, phương sai Var[H] có thể tính được từ (B − 1)Sh2, trong đó Sh2 là phương sai mẫu của {hk(j)}. Ở đây không trình bày chứng minh cho điều này. Chỉ lưu ý rằng khi tăng số các khối B, nghĩa là, làm cho các mẫu dao nhíp gần giống nhau hơn, vì có ít điểm bị loại trừ hơn, mẫu chứa các giá trị ước lượng {hk(j)} sẽ dao động ít hơn. Hệ quả là, sự phụ thuộc vào số lượng các khối này được bù trừ một cách chính xác qua hệ số (B − 1). Lưu ý rằng đối với phương pháp dao nhíp, trái ngược với phương pháp boostrap, phải cần đến tính độc lập thống kê của mẫu ban đầu. Nếu không có tương quan giữa các điểm số liệu, thì phương pháp dao nhíp có thể được kết hợp với phương pháp chia khối [Flyvbjerg (1998)]. Thông tin chi tiết về phương pháp dao nhíp có thể xem ở [Efron và Tibshirani (1994)].

Sau cùng, bạn cần biết được rằng có những trường hợp mà các phương pháp lấy mẫu lại sẽ thất bại rõ ràng. Ví dụ hiển nhiên nhất là việc tính khoảng tin cậy của các histogram, xem Mục 3.3. Một ngăn không chứa điểm mẫu nào, chẳng hạn, ở đó xác suất là rất nhỏ, sẽ chẳng bao giờ có được một điểm mẫu ngay cả khi lấy mẫu lại. Do đó, thang sai số sẽ có bề rộng bằng 0. Điều này trái ngược với khoảng tin cậy chỉ ra ở PT (62), trong đó cũng với ngăn không chứa số liệu nào cũng có khoảng tin cậy với bề rộng hữu hạn. Vì vậy, bạn cần nghĩ kĩ trước khi quyết định dùng phương pháp nào để xác định độ tin cậy của kết quả tìm được.

Bài tập

(4) Bootstrap

Hãy thiết kế, lập trình và kiểm tra một hàm trong đó dùng phương pháp bootstrap để tính khoảng tin cậy tại mức ý nghĩa α cho bởi PT (66).

Mẫu của hàm này như sau:

/***************** bootstrap_ci() *********************/
/** Calculates a confidence interval by 'n_resample' **/
/** times resampling the given sample points         **/
/** and each time evaluation the estimator 'f'       **/
/** PARAMETERS: (*)= return-paramter                 **/
/**           n: number of data points               **/
/**           x: array with data                     **/
/**  n_resample: number of bootstrap iterations      **/
/**       alpha: confidence level                    **/
/**           f: function (pointer) = estimator      **/
/**     (*) low: (p. to) lower boundary of conf. int.**/
/**    (*) high: (p. to) upper boundary of conf. int.**/
/** RETURNS:                                         **/
/**     (nothing)                                    **/
/******************************************************/
void bootstrap_ci(int n, double *x, int n_resample,
                  double alpha, double (*f)(int, double *),
                  double *low, double *high)

Gợi ý: Hãy lấy hàm bootstrap_variance() làm ví dụ. Để nhận được các phần tử ở những điểm định nghĩa bởi PT (66), trước hết bạn có thể sắp xếp mẫu bootstrap bằng qsort().

Bạn có thể kiểm tra hàm viết được bằng cách dùng file chính bootstrap_test.c đã cho, các file phụ trợ mean.cphương sai.c rồi bằng cách biên dịch theo lệnh cc -o bt bootstrap_test.c bootstrap_ci.c mean.c -lm -DSOLUTION. Lưu ý rằng macro định nghĩa -DSOLUTION làm cho hàm main() gọi bootstrap_ci() thay vì bootstrap_variance().

Tài liệu được trích dẫn

Binder, K. (1981). Finite size scaling analysis of ising model block distribution functions, Z. Phys. B 43, pp. 119-140.

Cormen, T. H., Clifford, S., Leiserson, C. E., and Rivest, R. L. (2001). Introduction to Algorithms, (MIT Press).

Dekking, F. M., Kraaikamp, C., Lopuhaa, H. P., and Meester, L. E. (2005). A Modern Introduction to Probability and Statistics, (Springer, London).

Efron, B. (1979). Bootstrap methods: another look at the jacknife, Ann. Statist. 7, pp. 1-26.

Efron, B. and Tibshirani, R. J. (1994). An Introduction to the Bootstrap, (Chapman & Hall/CRC, Boca Raton).

Flyvbjerg, H. (1998). Error Estimates on Averages of Correlated Data, in: Kertesz, J. and Kondor, I. (Eds.), Advances in Computer Simulation, (Springer, Heidelberg), pp. 88-103.

Landau, D.P. and Binder, K. (2000). A Guide to Monte Carlo Simulations in Statistical Physics, (Cambridge University Press, Cambridge (UK)).

Lefebvre L. (2006). Applied Probability and Statistics, (Springer, New York).

Liu, J. S. (2008). Monte Carlo Strategies in Scientic Computing, (Springer, Heidelberg).

Newman, M. E. J. and Barkema, G. T. (1999). Monte Carlo Methods in Statistical Physics, (Clarendon Press, Oxford).

Press, W. H., Teukolsky, S. A., Vetterling, W. T., and Flannery, B. P. (1995). Numerical Recipes in C, (Cambridge University Press, Cambridge).

Robert, C. P. and Casella, G. (2004). Monte Carlo Statistical Methods, (Springer, Berlin)

Scott, D. W. (1979). On optimal and data-based histograms, Biometrica 66, pp. 605-610.


  1. Đôi khi phương sai mẫu còn được định nghĩa là S^\star=  \frac{1}{n-1}\sum_{i=0}^{n-1} (x_i-\overline{x})^2 để nó là ước lượng không chệch đối với phương sai.
  2. Nếu n chẵn, ta có thể lấ giá trị trung bình giữa các điểm mẫu thứ n / 2 và thứ (n + 1) / 2 trong các điểm sắp xếp tăng dần.
  3. Điều này khác với thực nghiệm thực nghiệm, chẳng hạn thử nghiệm phương pháp chữa trị mới về y học, trong đó thường chỉ có một số lượng rất hạn chế các phép thử được tiến hành. Trong trường hợp này, ta phải xét đến những phép phân bố đặc biệt, như phân bố Student.
  4. Có việc làm này ở một số kĩ thuật mô phỏng cao cấp.
  5. Với các biến ngẫu nhiên rời rạc, những giá trị qk đã được chuẩn hóa thích hợp
  6. Bản truyện của Châu Âu thì kể rằng ông tự tay kéo tóc mình.
  7. Xác suất để một điểm mẫu không được chọn là (1 − 1 / n)n = exp(nlog(1 − 1 / n)) → exp(n( − 1 / n)) = exp( − 1) ≈ 0. 367 với n → ∞.

1 Phản hồi

Filed under Ngẫu nhiên và mô phỏng

One response to “3. Kiến thức cơ bản về phân tích số liệu

  1. Pingback: Ngẫu nhiên và xác suất trong mô phỏng máy tính | Blog của Chiến

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s