Hướng dẫn python fit normal distribution - python phù hợp với phân phối bình thường

Ngay cả khi bạn không ở trong lĩnh vực thống kê, bạn cũng phải bắt gặp thuật ngữ phân phối bình thường.Normal Distribution”.Normal Distribution”.

Nội dung chính ShowShow

  • Phân phối bình thường là gì?
  • 1. Ví dụ thực hiện phân phối bình thường
  • 2. Thuộc tính phân phối bình thường
  • Tính toán xác suất với phân phối bình thường
  • 1. Tạo đường cong bình thường
  • 2. Tính xác suất của dữ liệu cụ thể xảy ra
  • Sự kết luận

Nội phân chính

  • Phân phối bình thường là gì?
  • 1. Ví dụ thực hiện phân phối bình thường
  • 2. Thuộc tính phân phối bình thường
  • Tính toán xác suất với phân phối bình thường
  • 1. Tạo đường cong bình thường
  • 2. Tính xác suất của dữ liệu cụ thể xảy ra

Sự kết luận

Nội phân chính

Phân phối xác suất là một hàm thống kê mô tả khả năng thu được các giá trị có thể mà một biến ngẫu nhiên có thể thực hiện. Bằng cách này, chúng tôi có nghĩa là phạm vi của các giá trị mà một tham số có thể thực hiện khi chúng tôi chọn ngẫu nhiên các giá trị từ nó.

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

Phân phối bình thường là gì?

1. Ví dụ thực hiện phân phối bình thườngNormal Distribution is also known as a Gaussian distribution or famously Bell Curve. People use both words interchangeably, but it means the same thing. It is a continuous probability distribution.

2. Thuộc tính phân phối bình thường

Tính toán xác suất với phân phối bình thường

1. Tạo đường cong bình thường

Terminology:

  • 2. Tính xác suất của dữ liệu cụ thể xảy ra – The mean is the usual average. The sum of total points divided by the total number of points.
  • Sự kết luận – Standard deviation tells us how “spread out” the data is. It is a measure of how far each observed value is from the mean.

Nội phân chính

1. Ví dụ thực hiện phân phối bình thường

2. Thuộc tính phân phối bình thường

Tính toán xác suất với phân phối bình thường

2. Thuộc tính phân phối bình thường

Tính toán xác suất với phân phối bình thườngprobability density.

1. Tạo đường cong bình thường

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

Sự kết luận

Nội phân chính

  • Phân phối xác suất là một hàm thống kê mô tả khả năng thu được các giá trị có thể mà một biến ngẫu nhiên có thể thực hiện. Bằng cách này, chúng tôi có nghĩa là phạm vi của các giá trị mà một tham số có thể thực hiện khi chúng tôi chọn ngẫu nhiên các giá trị từ nó.
  • Một phân phối xác suất có thể rời rạc hoặc liên tục.
  • Giả sử ở 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, từ 4,5 ft đến 7 ft.
Nếu chúng tôi được yêu cầu nhận 1 người lớn ngẫu nhiên và hỏi những gì anh ấy/cô ấy (giả sử giới tính không ảnh hưởng đến chiều cao) sẽ là gì? Không có cách nào để biết chiều cao sẽ là gì. Nhưng nếu chúng ta có sự phân phối 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.

1. Ví dụ thực hiện phân phối bình thườngNormal Distribution is also known as a Gaussian distribution or famously Bell Curve. People use both words interchangeably, but it means the same thing. It is a continuous probability distribution.

  • 2. Tính xác suất của dữ liệu cụ thể xảy ra – The mean is the usual average. The sum of total points divided by the total number of points.
  • Phân phối xác suất là một hàm thống kê mô tả khả năng thu được các giá trị có thể mà một biến ngẫu nhiên có thể thực hiện. Bằng cách này, chúng tôi có nghĩa là phạm vi của các giá trị mà một tham số có thể thực hiện khi chúng tôi chọn ngẫu nhiên các giá trị từ nó. – Standard deviation tells us how “spread out” the data is. It is a measure of how far each observed value is from the mean.
  • # Importing required libraries
    
    import numpy as np
    import matplotlib.pyplot as plt
    
    # Creating a series of data of in range of 1-50.
    x = np.linspace(1,50,200)
    
    #Creating a Function.
    def normal_dist(x , mean , sd):
        prob_density = (np.pi*sd) * np.exp(-0.5*((x-mean)/sd)**2)
        return prob_density
    
    #Calculate mean and Standard deviation.
    mean = np.mean(x)
    sd = np.std(x)
    
    #Apply function to the data.
    pdf = normal_dist(x,mean,sd)
    
    #Plotting the Results
    plt.plot(x,pdf , color = 'red')
    plt.xlabel('Data points')
    plt.ylabel('Probability Density')
    
    Tính toán xác suất với phân phối bình thường

Tính toán xác suất với phân phối bình thườngprobability density.

Tính toán xác suất với phân phối bình thường

1. Tạo đường cong bình thường

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

Sự kết luận

Nội phân chính is just similar to a normal distribution with mean = 0 and standard deviation = 1.

# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
3

Giả sử ở 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, từ 4,5 ft đến 7 ft. z-score. A z-score gives you an idea of how far from the mean a data point is. z-score. A z-score gives you an idea of how far from the mean a data point is.

Nếu chúng tôi được yêu cầu nhận 1 người lớn ngẫu nhiên và hỏi những gì anh ấy/cô ấy (giả sử giới tính không ảnh hưởng đến chiều cao) sẽ là gì? Không có cách nào để biết chiều cao sẽ là gì. Nhưng nếu chúng ta có sự phân phối 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.

1. Tạo đường cong bình thường

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

Phân phối xác suất là một hàm thống kê mô tả khả năng thu được các giá trị có thể mà một biến ngẫu nhiên có thể thực hiện. Bằng cách này, chúng tôi có nghĩa là phạm vi của các giá trị mà một tham số có thể thực hiện khi chúng tôi chọn ngẫu nhiên các giá trị từ nó.

Thông tin này là đủ để tạo một đường cong bình thường.

# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
Phân phối chiều cao

Phương pháp lớp

# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
1 yêu cầu
# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
2 và
# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
3 cùng với dữ liệu như một đối số đầu vào và đưa ra giá trị mật độ xác suất.
# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
2 không là gì ngoài giá trị trung bình và
# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
3 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.

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

Phân phối xác suất là một hàm thống kê mô tả khả năng thu được các giá trị có thể mà một biến ngẫu nhiên có thể thực hiện. Bằng cách này, chúng tôi có nghĩa là phạm vi của các giá trị mà một tham số có thể thực hiện khi chúng tôi chọn ngẫu nhiên các giá trị từ nó.

Thông tin này là đủ để tạo một đường cong bình thường.

# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
Phân phối chiều cao

Phương pháp lớp

norm(loc = 5.3 , scale = 1).cdf(4.5)
0.211855 or 21.185 %

# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
1 yêu cầu
# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
2 và
# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
3 cùng với dữ liệu như một đối số đầu vào và đưa ra giá trị mật độ xác suất.
# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
2 không là gì ngoài giá trị trung bình và
# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
3 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.

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

Diện tích dưới đường cong là xác suất

Khu vực dưới đường cong như trong hình trên sẽ là xác suất chiều cao của người sẽ 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.

Vùng dưới đường cong không là gì ngoài việc tích hợp hàm mật độ với giới hạn bằng -∞ đến 4,5.

Dòng mã ở trên cho thấy xác suất có 21,18% cơ hội là nếu một người được chọn ngẫu nhiên từ phân phối bình thường 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

# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
6 với độ lệch trung bình và độ lệch chuẩn, sau đó sử dụng phương pháp
# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
7 chuyển một giá trị lê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 toán xác suất tích lũy cho 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 một người ngẫu nhiên từ phân phối này, thì xác suất chiều cao của người sẽ ở trong khoảng từ 6,5 đến 4,5 ft là bao nhiêu?

# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
1
# import required libraries
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb

# Creating the distribution
data = np.arange(1,10,0.01)
pdf = norm.pdf(data , loc = 5.3 , scale = 1 )

#Visualizing the distribution

sb.set_style('whitegrid')
sb.lineplot(data, pdf , color = 'black')
plt.xlabel('Heights')
plt.ylabel('Probability Density')
2

Diện tích dưới đường cong giữa 4,5 đến 6,5 ft____44

Mã trên đầu tiên tính toán 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 trừ CDF là 4,5 từ CDF là 6.5, kết quả chúng ta nhận được là diện tích dưới đường cong giữa 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 rằng chiều cao của một người được chọn ngẫu nhiên sẽ trên 6,5ft?

Diện tích dưới đường cong giữa 6,5ft và vô cực

Thật đơn giản, như 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 toán giá trị xác suất tích lũy từ -∞ đến 6,5 và trừ nó từ 1, kết quả sẽ là xác suất mà chiều cao của một người được chọn ngẫu nhiên sẽ là Trên 6,5ft.

Đó là rất nhiều thứ để chìm vào, nhưng tôi khuyến khích tất cả tiếp tục thực hành khái niệm thiết yếu này cùng với việc thực hiện bằng cách sử dụng Python.