1. 程式人生 > >python畫高斯分佈圖形

python畫高斯分佈圖形

高斯分佈,也叫正態分佈,是一個在數學、物理及工程等領域都非常重要的概率分佈,在統計學的許多方面有著重大的影響力。

若隨機變數X服從一個數學期望為μ、方差為σ^2的正態分佈,記為N(μ,σ^2)。其概率密度函式為正態分佈的期望值μ決定了其位置,其標準差σ決定了分佈的寬度。當μ = 0,σ = 1時的正態分佈是標準正態分佈。

 

定義 

一維正態分佈

若隨機變數 服從一個位置引數為 、尺度引數為 的概率分佈,且其概率密度函式為 

則這個隨機變數就稱為正態隨機變數,正態隨機變數服從的分佈就稱為正態分佈,記作
   ,讀作  服從    ,或    服從正態分佈。

 

μ維隨機向量具有類似的概率規律時,稱此隨機向量遵從多維正態分佈。多元正態分佈有很好的性質,例如,多元正態分佈的邊緣分佈仍為正態分佈,它經任何線性變換得到的隨機向量仍為多維正態分佈,特別它的線性組合為一元正態分佈。

 

標準正態分佈

當  時,正態分佈就成為標準正態分佈:

 

---------以上摘自

百度百科

 

import numpy as np
import matplotlib.pyplot as plt
import math


def normal_distribution(x, mean, sigma):
    return np.exp(-1*((x-mean)**2)/(2*(sigma**2)))/(math.sqrt(2*np.pi) * sigma)


mean1, sigma1 = 0, 1
x1 = np.linspace(mean1 - 6*sigma1, mean1 + 6*sigma1, 100)

mean2, sigma2 = 0, 2
x2 = np.linspace(mean2 - 6*sigma2, mean2 + 6*sigma2, 100)

mean3, sigma3 = 5, 1
x3 = np.linspace(mean3 - 6*sigma3, mean3 + 6*sigma3, 100)

y1 = normal_distribution(x1, mean1, sigma1)
y2 = normal_distribution(x2, mean2, sigma2)
y3 = normal_distribution(x3, mean3, sigma3)

plt.plot(x1, y1, 'r', label='m=0,sig=1')
plt.plot(x2, y2, 'g', label='m=0,sig=2')
plt.plot(x3, y3, 'b', label='m=1,sig=1')
plt.legend()
plt.grid()
plt.show()