Matlab中求数据概率分布的方法
一、問題描述
對已有的一些列數據進行分析,想得到該數據的分布和統計特性,如概率密度函數,概率分布,累計概率密度等等。
例如,已有一段時間的聲音測量數據,求該數據的分布特性,并給出噪聲的95%置信區間統計參數以表征該聲音監測數據的總體水平。
二、Matlab 統計分析工具箱
Matlab自帶了22個內置的概率分布例如概率密度類pdf,累積分布函數類cdf,概率圖等,當然前提是安裝Statistics and Machine Learning Toolbox?,matlab提供了應用程序可以直接調用,也可以用代碼自己寫。離散分布主要分為以下即大類,具體可以查看matlab官網資料
- 二項分布
對數據進行二項分布參數擬合,計算該分布或其逆分布,生成偽隨機樣本 - 幾何分布
計算幾何分布或其逆分布,生成偽隨機樣本 - 超幾何分布
計算超幾何分布或其逆分布,生成偽隨機樣本 - 多項分布
計算多項分布或其逆分布,生成偽隨機樣本 - 負二項分布
對數據進行負二項分布參數擬合,計算負二項分布或其逆分布,生成偽隨機樣本 - 泊松分布
對數據進行泊松分布參數擬合,計算泊松分布或其逆分布,生成偽隨機樣本 - 均勻分布(離散)
計算離散均勻分布或其逆分布,生成偽隨機樣本
三、具體方法
3.1 加載聲音原始數據
聲音數據是一維度列數據,直接用area繪制面積圖:
% 原始曲線 figure area(noiseday); axis([0 599 0 80]) xlabel('datapoint'); ylabel('noise dB') title('day noise');3.2?數據分布擬合
第一種方法,這里用ksdensity函數實現,ksdensity函數時核心平滑密度函數,可以直接返回各個點的概率。
[f,xi]=ksdensity(data); plot(xi,f);可以看到,該聲音的分布近似正態分布。
第二種方法,采用matlab的工具箱實現->APP->Distribution Fitter
導入數據:
數據顯示類別可以選擇當前數據的顯示類型:density(PDF),cumulative probability(CDF),Quantile probability, probability plot等。這里我們選擇density。
添加一個概率擬合 New? Fit,選擇正態分布擬合Normal.
顯示類別選擇概率圖,數據越靠近直線,說明越符合正態分布。以下結果表明總體上還是很符合正態分布(存在干擾數據)。
3.3 計算95%置信區間
通過擬合可以發現數據是符合正態分布,因此可以采用normfit函數求置信區間。具體用法:
[mu,sigma,muci,sigmaci]= normfit(noiseday,a);mu: 均值 sigma: 標準差 muci:1-a 區間內的均值 sigmaci:1-a 區間內的標準差因此,設置a=0.05可以求得95%置信區間內的數據分布
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表1-1? 95%置信區間的聲音數據分布
| 分布均值 | 46.5124 |
| 分布標準差 | 2.7061 |
| 分布均值的95%置信區間 | [46.2303,46.7944] |
| 分布標準差的95%置信區間 | [2.5218,2.9223] |
總結
以上是生活随笔為你收集整理的Matlab中求数据概率分布的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实时 摔倒识别 /运动分析/打架等异常行
- 下一篇: git推送指令配置_git 常用命令