1. 程式人生 > 程式設計 >Python求解正態分佈置信區間教程

Python求解正態分佈置信區間教程

正態分佈和置信區間

正態分佈(Normal Distribution)又叫高斯分佈,是一種非常重要的概率分佈。其概率密度函式的數學表達如下:

置信區間是對該區間能包含未知引數的可置信的程度的描述。

使用SciPy求解置信區間

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

N = 10000
x = np.random.normal(0,1,N)
# ddof取值為1是因為在統計學中樣本的標準偏差除的是(N-1)而不是N,統計學中的標準偏差除的是N
# SciPy中的std計算預設是採用統計學中標準差的計算方式
mean,std = x.mean(),x.std(ddof=1)
print(mean,std)
# 計算置信區間
# 這裡的0.9是置信水平
conf_intveral = stats.norm.interval(0.9,loc=mean,scale=std)
print(conf_intveral)

輸出如下:

0.0033541207210673997 0.9986647964318905
(-1.639303291798682,1.6460115332408163)

這裡的-1.639303291798682是置信上界,1.6460115332408163是置信下界,兩個數值構成的區間就是置信區間

使用Matplotlib繪製正態分佈密度曲線

# 繪製概率密度分佈圖
x = np.arange(-5,5,0.001)
# PDF是概率密度函式
y = stats.norm.pdf(x,scale=std)
plt.plot(x,y)
plt.show()

這裡的pdf()函式是Probability density function,就是本文最開始的那個公式

最後的輸出影象如下,可以看到結果跟理論上的正太分佈還是比較像的:

正態分佈置信區間規律

函式曲線下68.268949%的面積在平均數左右的一個標準差範圍內

函式曲線下95.449974%的面積在平均數左右兩個標準差的範圍內

函式曲線下99.730020%的面積在平均數左右三個標準差的範圍內

函式曲線下99.993666%的面積在平均數左右四個標準差的範圍內

以上這篇Python求解正態分佈置信區間教程就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。