Cách mô phỏng độ lệch chuẩn
Tôi muốn mô phỏng dữ liệu dựa trên dữ liệu thực được thu thập. Dữ liệu thực thu được là 15 lần quan sát. Mô phỏng dựa trên dữ liệu hiện có là 100 quan sát. Tôi có trung bình và độ lệch chuẩn cho 15 quan sát, tuy nhiên làm cách nào để mô phỏng độ lệch chuẩn cho một mẫu lớn hơn (100 quan sát) dựa trên dữ liệu thực nhỏ hơn? Độ lệch chuẩn nói chung sẽ giảm khi kích thước mẫu tăng lên, nhưng với tốc độ nào?
Trả lời
Sai số tiêu chuẩn giảm khi kích thước mẫu tăng lên. Độ lệch chuẩn là một khái niệm liên quan nhưng có lẽ không đủ liên quan để đảm bảo rằng thuật ngữ tương tự như vậy gây nhầm lẫn cho tất cả những người bắt đầu học thống kê.
Phân phối lấy mẫu là phân phối các giá trị bạn sẽ nhận được nếu bạn lấy mẫu liên tục từ một tập hợp và tính toán một số thống kê, chẳng hạn như trung bình, mỗi lần. Độ lệch chuẩn của phân phối lấy mẫu đó là sai số chuẩn. Đối với sai số chuẩn của giá trị trung bình, nó giảm đi$\sqrt{n}$, vì thế $s/\sqrt{n}$ như một ước tính của sai số tiêu chuẩn (trong đó $s$ là độ lệch chuẩn của mẫu).
Độ lệch chuẩn của phân phối là bất kể nó là gì, và nó không quan tâm đến việc bạn vẽ mẫu lớn như thế nào hay thậm chí bạn có lấy mẫu gì không.
Có vẻ như bạn muốn mô phỏng dữ liệu từ một phân phối với giá trị trung bình và độ lệch chuẩn mà bạn đã tính toán từ mẫu $15$, do đó, làm điều đó. Nếu bạn sẵn sàng giả định một phân phối chuẩn, lệnh R là rnorm và lệnh Python là numpy.random.normal.
Độ lệch chuẩn không giảm theo cỡ mẫu. Mẫu của bạn càng lớn thì độ lệch chuẩn càng gần với độ lệch chuẩn của tổng thể. Điều gì xảy ra sau đó, với kích thước mẫu lớn hơn, độ lệch chuẩn được ước tính trên các mẫu lớn hơn và nhỏ hơn sẽ giảm xuống, bởi vì dựa trên các mẫu lớn hơn, chúng tôi sẽ nhận được chính xác hơn.
Dưới đây, bạn có thể thấy một ví dụ số trong R cho điều này, trong đó chúng tôi mô phỏng các lần rút ra từ phân phối chuẩn chuẩn (với sd = 1) cho 15 và 100 mẫu, sau đó ước tính độ lệch chuẩn cho chúng.
> summary(replicate(100000, sd(rnorm(15))))
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.3039 0.8515 0.9762 0.9824 1.1061 1.8886
> summary(replicate(100000, sd(rnorm(100))))
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.6916 0.9498 0.9971 0.9980 1.0451 1.3089
Bạn hỏi cụ thể về mô phỏng. Sau Câu trả lời của @ Dave (+1), đây là một số mô phỏng trong R.
Giả sử tôi lấy một triệu mẫu có kích thước $n = 16$ từ một quần thể được phân phối như $\mathsf{Gamma}(\mathrm{shape} = 4,\, \mathrm{rate}=.1),$ để trung bình dân số là $\mu = 40$ phương sai dân số là $\sigma^2 = 400,$ và $\sigma = 20.$
Sau đó, mẫu có nghĩa là (trung bình) $A =\bar X_{15}$ có $E(A) = 40$ và lỗi tiêu chuẩn $SD(A)= \sigma/\sqrt{n} = 5.$ Với một triệu mẫu, kết quả mô phỏng phải chính xác đến khoảng ba chữ số có nghĩa.
set.seed(904)
a = replicate(10^6, mean(rgamma(16, 4, .1)))
mean(a); sd(a)
[1] 40.00176 # aprx 40
[1] 4.996061 # aprx 5
Ngược lại, hãy thực hiện một mô phỏng tương tự với một triệu mẫu có kích thước $n = 100$từ cùng một quần thể. Hiện nay$E(\bar X_{100}) = 40$ và $SD(\bar X_{100}) = \sigma/\sqrt{n} = 20/\sqrt{100} = 2.$
set.seed(2020)
a = replicate(10^6, mean(rgamma(100, 4, .1)))
mean(a); sd(a)
[1] 40.0014 # aprx 40
[1] 2.001084 # aprx 20/10 = 2