python 如何判斷一組數據是否符合正態分布


正態分布

若隨機變量x服從有個數學期望為μ,方差為σ的正態分布,記為N(μ,σ)

其中期望值決定密度函數的位置,標准差決定分布的幅度,當υ=0,σ=1 時的正態分布是標准正態分布

判斷方法有畫圖/k-s檢驗

畫圖:

#導入模塊
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

#構造一組隨機數據
s = pd.DataFrame(np.random.randn(1000)+10,columns = ['value'])

#畫散點圖和直方圖
fig = plt.figure(figsize = (10,6))
ax1 = fig.add_subplot(2,1,1)  # 創建子圖1
ax1.scatter(s.index, s.values)
plt.grid()

ax2 = fig.add_subplot(2,1,2)  # 創建子圖2
s.hist(bins=30,alpha = 0.5,ax = ax2)
s.plot(kind = 'kde', secondary_y=True,ax = ax2)
plt.grid()

結果如下:

 

使用ks檢驗:

#導入scipy模塊
from scipy import stats

"""
kstest方法:KS檢驗,參數分別是:待檢驗的數據,檢驗方法(這里設置成norm正態分布),均值與標准差
結果返回兩個值:statistic → D值,pvalue → P值
p值大於0.05,為正態分布
H0:樣本符合  
H1:樣本不符合 
如何p>0.05接受H0 ,反之 
""" u = s['value'].mean() # 計算均值 std = s['value'].std() # 計算標准差 stats.kstest(s['value'], 'norm', (u, std))

結果是KstestResult(statistic=0.01441344628501079, pvalue=0.9855029319675546),p值大於0.05為正太分布

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM