我是靠谱客的博主 心灵美蚂蚁,最近开发中收集的这篇文章主要介绍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中求数据概率分布的方法的全部内容,希望文章能够帮你解决Matlab中求数据概率分布的方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部