Ngay cả khi bạn không làm trong lĩnh vực thống kê, bạn chắc hẳn đã bắt gặp thuật ngữ “Phân phối chuẩn”.

Bạn đang xem : phân phối chuẩn ngẫu nhiên của python

Ngay cả khi bạn không phải là người trong lĩnh vực thống kê, bạn chắc hẳn đã bắt gặp thuật ngữ “ Phân phối chuẩn ”.

phân phối xác suất là một hàm thống kê mô tả khả năng nhận được các giá trị khả dĩ mà một biến ngẫu nhiên có thể nhận. Bởi điều này, chúng tôi muốn nói đến phạm vi giá trị mà thông số có thể nhận khi chúng tôi chọn ngẫu nhiên các giá trị từ nó.

Phân phối xác suất có thể rời rạc hoặc liên tục.

Giả sử trong một thành phố, chúng ta có chiều cao của người lớn trong độ tuổi từ 20-30 tuổi nằm trong khoảng 4,5 ft . đến 7 ft.

Nếu chúng tôi được yêu cầu chọn ngẫu nhiên 1 người lớn và hỏi chiều cao của anh ấy / cô ấy (giả sử giới tính không ảnh hưởng đến chiều cao) sẽ như thế nào? Không có cách nào để biết chiều cao sẽ là bao nhiêu. Nhưng nếu chúng ta có phân bố chiều cao của người lớn trong thành phố, chúng ta có thể đặt cược vào kết quả có thể xảy ra nhất.

Phân phối chuẩn là gì?

Phân phối chuẩn còn được gọi là phân phối Gaussian hoặc nổi tiếng Đường cong hình chuông . Mọi người sử dụng cả hai từ thay thế cho nhau, nhưng nó có nghĩa giống nhau. Đây là phân phối xác suất liên tục.

Hàm mật độ xác suất (pdf) cho Phân phối chuẩn:

Hàm mật độ xác suất của phân phối chuẩn

trong đó, μ = Mean , σ = Độ lệch chuẩn, x = giá trị đầu vào.

Thuật ngữ:

  • Trung bình trung bình là mức trung bình thông thường. Tổng của tổng điểm chia cho tổng số điểm.
  • Độ lệch Chuẩn Độ lệch chuẩn cho chúng tôi biết mức độ” trải rộng “của dữ liệu. Nó là thước đo cho biết mỗi giá trị quan sát được bao xa so với giá trị trung bình.

Có vẻ khó khăn phải không? Nhưng nó rất đơn giản.

1. Ví dụ về Triển khai Phân phối Thông thường

Hãy xem đoạn mã dưới đây. Chúng tôi sẽ sử dụng numpy matplotlib cho phần trình diễn này:

 # Nhập thư viện bắt buộc

nhập numpy dưới dạng np
nhập matplotlib.pyplot dưới dạng plt

# Tạo một chuỗi dữ liệu có phạm vi từ 1-50.
x = np.linspace (1,50,200)

# Tạo một Hàm.
def normal_dist (x, mean, sd):
    prob_density = (np.pi * sd) * np.exp (-0,5 * ((x-mean) / sd) ** 2)
    trả về mật độ prob_density

# Tính toán trung bình và Độ lệch chuẩn.
có nghĩa là = np.mean (x)
sd = np.std (x)

# Áp dụng chức năng cho dữ liệu.
pdf = normal_dist (x, trung bình, sd)

# Vẽ kết quả
plt.plot (x, pdf, color = 'red')
plt.xlabel ('Điểm dữ liệu')
plt.ylabel ('Mật độ xác suất')

Đường cong bình thường

2. Các thuộc tính của phân phối chuẩn

Hàm mật độ phân phối chuẩn chỉ chấp nhận một điểm dữ liệu cùng với giá trị trung bình và độ lệch chuẩn và ném một giá trị mà chúng tôi gọi là mật độ xác suất .

Chúng tôi có thể thay đổi hình dạng của đường cong hình chuông bằng cách thay đổi giá trị trung bình và độ lệch chuẩn.

Việc thay đổi giá trị trung bình sẽ chuyển đường cong về phía giá trị trung bình đó, điều này có nghĩa là chúng tôi có thể thay đổi vị trí của đường cong bằng cách thay đổi giá trị trung bình trong khi hình dạng của đường cong vẫn nguyên vẹn.

Xem Thêm  Truy vấn SQL để thay đổi kiểu cột - cập nhật loại cột sql

Hình dạng của đường cong có thể được kiểm soát bởi giá trị của Độ lệch chuẩn. Độ lệch chuẩn nhỏ hơn sẽ dẫn đến đường cong bị giới hạn chặt chẽ trong khi giá trị cao sẽ dẫn đến đường cong trải rộng hơn.

Một số đặc tính tuyệt vời của phân phối chuẩn:

  • Giá trị trung bình, chế độ và giá trị trung bình đều bằng nhau.
  • Tổng diện tích dưới đường cong bằng 1.
  • Đường cong đối xứng xung quanh giá trị trung bình.

Tỷ lệ phân phối dữ liệu xung quanh trung bình

Quy tắc thực nghiệm cho chúng ta biết rằng:

  • 68% dữ liệu nằm trong một độ lệch chuẩn trung bình.
  • 95% dữ liệu nằm trong hai độ lệch chuẩn của giá trị trung bình.
  • 99,7% dữ liệu nằm trong ba độ lệch chuẩn của giá trị trung bình.

Cho đến nay, đây là một trong những phân phối quan trọng nhất trong tất cả các Thống kê. Phân phối chuẩn là kỳ diệu vì hầu hết các hiện tượng xảy ra tự nhiên đều tuân theo phân phối chuẩn. Ví dụ: huyết áp, điểm IQ, chiều cao tuân theo phân phối chuẩn.

Tính xác suất với phân phối chuẩn

Để tìm xác suất của một giá trị xảy ra trong một phạm vi trong phân phối chuẩn, chúng ta chỉ cần tìm diện tích dưới đường cong trong khoảng đó. tức là chúng ta cần tích hợp hàm mật độ.

Vì phân phối chuẩn là phân phối liên tục, diện tích dưới đường cong biểu thị xác suất.

Trước khi đi vào chi tiết, trước tiên chúng ta hãy biết Phân phối chuẩn chuẩn là gì.

Phân phối chuẩn chuẩn là giống như phân phối chuẩn với giá trị trung bình = 0 và độ lệch chuẩn = 1.

Z = (x-μ) / σ

Giá trị z ở trên còn được gọi là z-score . Điểm z cung cấp cho bạn ý tưởng về khoảng cách từ điểm dữ liệu trung bình.

Nếu chúng tôi định tính toán xác suất theo cách thủ công, chúng tôi sẽ cần phải tra cứu giá trị z của mình trong z-table để xem giá trị phần trăm tích lũy. Python cung cấp cho chúng tôi các mô-đun để thực hiện công việc này cho chúng tôi. Hãy bắt đầu.

1. Tạo Đường cong Chuẩn

Chúng ta sẽ sử dụng hàm lớp scipy.norm để tính toán xác suất từ ​​phân phối chuẩn.

Giả sử chúng ta có dữ liệu về chiều cao của người lớn trong một thị trấn và dữ liệu tuân theo phân phối chuẩn, chúng tôi có kích thước mẫu đủ với giá trị trung bình bằng 5,3 và độ lệch chuẩn là 1.

Thông tin này là đủ để cung cấp một đường cong bình thường.

 # nhập thư viện bắt buộc
từ định mức nhập scipy.stats
nhập numpy dưới dạng np
nhập matplotlib.pyplot dưới dạng plt
nhập seaborn as sb

# Tạo bản phân phối
data = np.arange (1,10,0,01)
pdf = norm.pdf (dữ liệu, loc = 5,3, thang điểm = 1)

#Hisualizing phân phối

sb.set_style ('whitegrid')
sb.lineplot (data, pdf, color = 'black')
plt.xlabel ('Chiều cao')
plt.ylabel ('Mật độ xác suất')

Heights Distribution

Phương thức lớp norm.pdf () yêu cầu loc scale cùng với dữ liệu làm đối số đầu vào và đưa ra giá trị mật độ xác suất. loc không là gì ngoài giá trị trung bình và scale là độ lệch chuẩn của dữ liệu. mã tương tự như những gì chúng tôi đã tạo trong phần trước nhưng ngắn hơn nhiều.

Xem Thêm  Hàm TRUNCATE () trong MySQL - hàm trunc trong mysql

2. Tính xác suất xảy ra dữ liệu cụ thể

Bây giờ, nếu chúng tôi được yêu cầu chọn ngẫu nhiên một người từ phân phối này, thì xác suất để chiều cao của người đó nhỏ hơn 4,5 ft là bao nhiêu? Diện tích dưới đường cong như xác suất

Diện tích dưới đường cong như thể hiện trong hình trên sẽ là xác suất để chiều cao của một người nhỏ hơn 4,5 ft nếu được chọn ngẫu nhiên từ phân phối. Hãy xem cách chúng ta có thể tính toán điều này trong python.

Diện tích bên dưới đường cong không là gì mà chỉ là Tích hợp của hàm mật độ với giới hạn từ -∞ đến 4,5.

 quy chuẩn (loc = 5.3, scale = 1) .cdf (4.5)
  0,211855 hoặc 21,185%  

Một dòng mã ở trên cho thấy xác suất có 21,18% cơ hội rằng nếu một người được chọn ngẫu nhiên từ phân phối chuẩn với giá trị trung bình là 5,3 và độ lệch chuẩn là 1, thì chiều cao của người đó sẽ dưới 4,5 ft .

Chúng tôi khởi tạo đối tượng của lớp Norm với giá trị trung bình và độ lệch chuẩn, sau đó sử dụng phương thức .cdf () để chuyển một giá trị lên đến mà chúng tôi cần để tìm giá trị xác suất tích lũy. Hàm phân phối tích lũy (CDF) tính xác suất tích lũy cho một giá trị x nhất định.

Giá trị xác suất tích lũy từ -∞ đến ∞ sẽ bằng 1.

Bây giờ, một lần nữa, chúng tôi được yêu cầu chọn ngẫu nhiên một người từ phân phối này, sau đó xác suất để chiều cao của người đó nằm trong khoảng 6,5 và 4,5 ft.?

Khu vực dưới đường cong Từ 4,5 đến 6,5 Ft

 cdf_upper_limit = norm (loc = 5,3, scale = 1) .cdf (6,5)
cdf_lower_limit = chuẩn (loc = 5,3, thang = 1) .cdf (4,5)

prob = cdf_upper_limit - cdf_lower_limit
in (prob)
  0,673074 hoặc 67,30%  

Đoạn mã trên trước tiên tính giá trị xác suất tích lũy từ -∞ đến 6,5 và sau đó là giá trị xác suất tích lũy từ -∞ đến 4,5. Nếu chúng ta lấy cdf 6,5 trừ cdf 4,5 thì kết quả chúng ta nhận được là diện tích dưới đường cong giữa các giới hạn 6,5 và 4,5.

Bây giờ, điều gì sẽ xảy ra nếu chúng ta được hỏi về xác suất chiều cao của một người được chọn ngẫu nhiên sẽ cao hơn 6,5ft?

Diện tích Dưới Đường cong Từ 6,5ft đến Vô cực

Thật đơn giản, vì chúng ta biết tổng diện tích dưới đường cong bằng 1 và nếu chúng ta tính giá trị xác suất tích lũy từ -∞ đến 6,5 và trừ đi 1, kết quả sẽ là xác suất chiều cao của một người được chọn ngẫu nhiên sẽ trên 6,5 ft.

 cdf_value = norm (loc = 5.3, scale = 1) .cdf (6.5)
prob = 1- cdf_value
in (prob)
  0,115069 hoặc 11,50%.  

Đó là rất nhiều điều để nghiên cứu, nhưng tôi khuyến khích tất cả tiếp tục thực hành điều này khái niệm cơ bản cùng với việc triển khai bằng python.

Đoạn mã hoàn chỉnh từ quá trình triển khai ở trên:

 # nhập thư viện bắt buộc
từ định mức nhập scipy.stats
nhập numpy dưới dạng np
nhập matplotlib.pyplot dưới dạng plt
nhập seaborn as sb

# Tạo bản phân phối
data = np.arange (1,10,0,01)
pdf = norm.pdf (dữ liệu, loc = 5,3, thang điểm = 1)

# Khả năng chiều cao dưới 4,5 ft.
prob_1 = tiêu chuẩn (loc = 5.3, scale = 1) .cdf (4.5)
in (prob_1)

#probability rằng chiều cao của một người sẽ từ 6,5 đến 4,5 ft.

cdf_upper_limit = chuẩn (loc = 5,3, thang điểm = 1) .cdf (6,5)
cdf_lower_limit = chuẩn (loc = 5,3, thang = 1) .cdf (4,5)

prob_2 = cdf_upper_limit - cdf_lower_limit
in (prob_2)

#probability rằng chiều cao của một người được chọn ngẫu nhiên sẽ trên 6,5 ft

cdf_value = chuẩn (loc = 5,3, thang = 1) .cdf (6,5)
prob_3 = 1- cdf_value
in (prob_3)

Kết luận

Trong bài viết này, chúng ta đã có một số ý tưởng về Phân phối chuẩn, một Đường cong bình thường trông như thế nào và quan trọng nhất là việc triển khai nó bằng Python.

Xem Thêm  Kiểu nội tuyến CSS - chiều rộng kiểu nội tuyến img

Chúc bạn vui vẻ Đang học!


Xem thêm những thông tin liên quan đến chủ đề phân phối chuẩn ngẫu nhiên python

How to Plot Normal Distribution in Python – Python Statistics Tutorial

  • Tác giả: Rylan Fowers
  • Ngày đăng: 2019-09-03
  • Đánh giá: 4 ⭐ ( 2413 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: This video explains how to plot the normal distribution in Python using the scipy stats package. The normal distribution appears naturally in many places and is one of the most useful distributions for beginners to study.

    This is a Python anaconda tutorial for help with coding, programming, or computer science. These are short python videos dedicated to troubleshooting python problems and learning Python syntax. For more videos see Python Marathon playlist by Rylan Fowers.

    ✅Subscribe: https://www.youtube.com/channel/UCub4…

    📺Channel: https://www.youtube.com/channel/UCub4…

    ▶️Watch Latest Python Content: https://www.youtube.com/watch?v=myCPg…

    ▶️Watch Latest Other Content: https://www.youtube.com/watch?v=2YfQs…

    🎵Theme Music: www.bensound.com

    🔊Sound Effects: www.zapsplat.com

    PythonMarathon LearnPython PythonTutorial

Bài 4: Phân phối chuẩn

  • Tác giả: hocz.net
  • Đánh giá: 5 ⭐ ( 1279 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Đại lượng ngẫu nhiên liên tục X nhận giá trị trong khoảng (( – infty ; + infty )) được gọi là có phân phối chuẩn nếu hàm mật độ xác suất của nó có dạng:

Phân phối chuẩn trong Numpy

  • Tác giả: laptrinhtudau.com
  • Đánh giá: 5 ⭐ ( 1026 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Phân phối chuẩn trong Numpy – Lập Trình Từ Đầu 2 NumPy Random

Phân phối xác suất trong Python

  • Tác giả: websitehcm.com
  • Đánh giá: 5 ⭐ ( 2205 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Phân phối xác suất trong Python w3seo cách tạo ngẫu nhiên theo phân bố xác suất chuẩn, bernoulli, Poisson, phân phối nhị thức

Chương 3, Phần 2: Phân phối chuẩn N

  • Tác giả: doc.edu.vn
  • Đánh giá: 5 ⭐ ( 8241 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Xác suất của bnn pp chuẩn Cho X là bnn về chỉ số IQ của người VN Giả sử X~N(100; 162). Tìm xác suất chọn nn một người VN thì người đó có IQ dưới 90. Tìm tỷ lệ người VN có IQ dưới 90 Ví dụ 1 Cho X là bnn có phân phối chuẩn với E(X)=10 và

Bài 4: Phân phối chuẩn

  • Tác giả: www.elib.vn
  • Đánh giá: 5 ⭐ ( 4067 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

phân phối chuẩn của âm mưu python

  • Tác giả: qastack.vn
  • Đánh giá: 5 ⭐ ( 6478 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] import matplotlib.pyplot as plt import numpy as np import scipy.stats as stats import math mu =…

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php