Phân phối chuẩn: Hướng dẫn thân thiện cho người mới bắt đầu
Xin chào các pháp sư tương lai của R! ? Hôm nay, chúng ta sẽ cùng lặn sâu vào thế giới kỳ diệu của phân phối chuẩn trong R. Đừng lo lắng nếu bạn chưa bao giờ lập trình trước đây - tôi sẽ là hướng dẫn viên thân thiện của bạn trong hành trình này, và chúng ta sẽ cùng bước từng bước. Cuối cùng, bạn sẽ ngạc nhiên về những gì bạn có thể làm chỉ với một vài dòng mã!
Phân phối chuẩn là gì?
Trước khi chúng ta nhảy vào R, hãy nhanh chóng thảo luận về phân phối chuẩn là gì. Hãy tưởng tượng bạn đang đo chiều cao của tất cả học sinh trong trường của bạn. Bạn có thể sẽ thấy rằng hầu hết mọi người có chiều cao trung bình, với ít người rất cao hoặc rất thấp. Nếu bạn vẽ điều này trên biểu đồ, nó sẽ trông giống như một đường cong hình chuông. Đó chính là phân phối chuẩn!
Trong thống kê, chúng ta sử dụng phân phối chuẩn rất thường xuyên, và R có một số chức năng tuyệt vời để giúp chúng ta làm việc với chúng. Hãy cùng khám phá các chức năng này một lần một.
Các hàm phân phối chuẩn trong R
R cung cấp bốn hàm chính để làm việc với phân phối chuẩn. Dưới đây là một cái nhìn nhanh:
Hàm | Mục đích |
---|---|
dnorm() | Tính toán độ dày (cao độ) của phân phối chuẩn tại một điểm cho trước |
pnorm() | Tính toán xác suất tích lũy (diện tích dưới đường cong) đến một điểm cho trước |
qnorm() | Tìm giá trị (phân vị) tương ứng với một xác suất cho trước |
rnorm() | Sinh ra các số ngẫu nhiên từ phân phối chuẩn |
Bây giờ, hãy cùng khám phá từng hàm này và xem chúng hoạt động như thế nào!
dnorm(): Hàm Độ dày
Hàm dnorm()
giúp chúng ta tìm cao độ của đường cong phân phối chuẩn tại bất kỳ điểm nào. Nó giống như hỏi, "Xác suất của giá trị này là bao nhiêu?"
Hãy thử một ví dụ:
# Tính toán độ dày tại x = 0 cho phân phối chuẩn chuẩn
result <- dnorm(0)
print(result)
Khi bạn chạy đoạn mã này, bạn sẽ thấy:
[1] 0.3989423
Điều này có nghĩa là cao độ của đường cong phân phối chuẩn chuẩn tại x = 0 khoảng 0.3989.
Nhưng nếu chúng ta muốn thay đổi giá trị trung bình hoặc độ lệch chuẩn? Không có vấn đề! Hãy thử:
# Tính toán độ dày tại x = 1 cho phân phối chuẩn với mean = 2 và sd = 0.5
result <- dnorm(1, mean = 2, sd = 0.5)
print(result)
Kết quả:
[1] 0.1079819
Thấy rằng dễ dàng như thế nào chứ? Chúng ta chỉ cần nói với R rằng chúng ta muốn một phân phối chuẩn với giá trị trung bình là 2 và độ lệch chuẩn là 0.5, sau đó yêu cầu độ dày tại x = 1.
pnorm(): Hàm Xác suất Tích lũy
Bây giờ, hãy chuyển sang pnorm()
. Hàm này tính toán xác suất của giá trị nhỏ hơn hoặc bằng một điểm cho trước. Nó giống như hỏi, "Xác suất của giá trị này hoặc thấp hơn là bao nhiêu?"
Dưới đây là một ví dụ:
# Tính toán xác suất của giá trị nhỏ hơn hoặc bằng 1.96
# trong phân phối chuẩn chuẩn
result <- pnorm(1.96)
print(result)
Kết quả:
[1] 0.9750021
Điều này cho biết có khoảng 97.5% xác suất của giá trị nhỏ hơn hoặc bằng 1.96 trong phân phối chuẩn chuẩn.
Điều thú vị là: Đây là lý do tại sao 1.96 thường được sử dụng trong thống kê cho khoảng tin cậy 95%!
Hãy thử một ví dụ khác với giá trị trung bình và độ lệch chuẩn khác:
# Tính toán xác suất của giá trị nhỏ hơn hoặc bằng 70
# trong phân phối chuẩn với mean = 60 và sd = 10
result <- pnorm(70, mean = 60, sd = 10)
print(result)
Kết quả:
[1] 0.8413447
Điều này có nghĩa là có khoảng 84.1% xác suất của giá trị nhỏ hơn hoặc bằng 70 trong phân phối này.
qnorm(): Hàm Phân vị
qnorm()
giống như ngược lại của pnorm()
. Thay vì cho một giá trị và hỏi về xác suất, chúng ta cho một xác suất và hỏi về giá trị. Nó giống như nói, "Giá trị nào sẽ cho tôi xác suất này?"
Hãy thử nó ra:
# Tìm giá trị cho xác suất tích lũy là 0.95
# trong phân phối chuẩn chuẩn
result <- qnorm(0.95)
print(result)
Kết quả:
[1] 1.644854
Điều này cho biết rằng 95% các giá trị trong phân phối chuẩn chuẩn dưới 1.645.
Chúng ta cũng có thể sử dụng giá trị trung bình và độ lệch chuẩn khác:
# Tìm giá trị cho xác suất tích lũy là 0.99
# trong phân phối chuẩn với mean = 100 và sd = 15
result <- qnorm(0.99, mean = 100, sd = 15)
print(result)
Kết quả:
[1] 134.8745
Vậy, trong phân phối này, 99% các giá trị dưới 134.87.
rnorm(): Sinh ra các số ngẫu nhiên
Cuối cùng, chúng ta có rnorm()
. Hàm này giống như một máy tạo số ngẫu nhiên theo quy tắc của phân phối chuẩn. Nó rất hữu ích cho các bài toán mô phỏng và tạo dữ liệu thử nghiệm.
Dưới đây là cách sử dụng nó:
# Sinh ra 5 số ngẫu nhiên từ phân phối chuẩn chuẩn
random_numbers <- rnorm(5)
print(random_numbers)
Kết quả (số của bạn sẽ khác):
[1] -0.56047565 -0.23017749 1.55870831 0.07050839 0.12928774
Chúng ta cũng có thể xác định giá trị trung bình và độ lệch chuẩn khác:
# Sinh ra 5 số ngẫu nhiên từ phân phối chuẩn với mean = 50 và sd = 10
random_numbers <- rnorm(5, mean = 50, sd = 10)
print(random_numbers)
Kết quả (số của bạn sẽ khác):
[1] 52.39086 46.08371 47.92569 62.36229 45.45923
Thật tuyệt vời phải không? Chỉ với một dòng mã, chúng ta có thể sinh ra bất kỳ số ngẫu nhiên nào theo bất kỳ phân phối chuẩn nào chúng ta muốn!
Kết luận
Và thế là chúng ta đã cùng nhau hành trình qua thế giới của phân phối chuẩn trong R, khám phá bốn hàm mạnh mẽ. Nhớ rằng, thực hành là cách tốt nhất để hoàn thiện, vì vậy đừng ngần ngại thử nghiệm với các hàm này. Thử các giá trị khác nhau, vẽ kết quả, và xem会发生什么!
Dưới đây là một thử thách nhỏ cho bạn: Thử sử dụng rnorm()
để sinh ra 1000 số ngẫu nhiên, sau đó sử dụng hist()
để vẽ biểu đồ histogram của các số đó. Bạn sẽ thấy phân phối chuẩn hiện ra trước mắt bạn!
Chúc bạn lập trình vui vẻ, và may mắn với phân phối chuẩn! ???
Credits: Image by storyset