Matlab 之数据分布拟合

文章目录

  • Part.I Introduction
  • Part.II Distribution Fitter APP 的使用
    • Chap.I APP 简介
    • Chap.II 简单使用
  • Part.III 通过代码实现分布拟合
    • Chap.I 基于 fitdist 函数
    • Chap.II 获取数据的频率分布后进行曲线拟合
  • Reference

Part.I Introduction

本文主要介绍了如何使用 Matlab 对数据的分布进行拟合。也就是 笔者对实现『用 Matlab 拟合出数据的概率分布密度函数』这个目标所进行的一些探索。

在这里插入图片描述

Part.II Distribution Fitter APP 的使用

Chap.I APP 简介

此 APP 界面如下所示:
在这里插入图片描述
其中Display type 有如下几种:

  • Density (PDF):概率密度
  • Cumulative probability CDF:累积概率分布
  • Quantile (inverser CDF):分位数 (逆 CDF)
  • Probability plot:概率图
  • Survivor funciton:剩余函数
  • Cumulative hazard:累积危险函数

分布类型如下表所示

在这里插入图片描述
每种分布得到的拟合参数的个数和名字或将不同,这些可以参看 Matlab 的帮助文档。


Chap.II 简单使用

下面的一个图就是利用此 APP 生成的,上手很简单。

在这里插入图片描述

Part.III 通过代码实现分布拟合

Chap.I 基于 fitdist 函数

fitdist 函数或许就是 Distribution Fitter APP 底层实现的一个最为重要的核心函数。

首先介绍一下 fitdist 函数,它可以对数据进行概率分布对象拟合,常用的调用方法为:

pd = fitdist(x,distname)		// 一般用这个足矣
pd = fitdist(x,distname,Name,Value)
[pdca,gn,gl] = fitdist(x,distname,'By',groupvar)
[pdca,gn,gl] = fitdist(x,distname,'By',groupvar,Name,Value)

首先是输入参数:

  • x:待进行分布拟合的数据
  • distname:分布名称,参看上面『分布类型表』
  • groupvar:分组变量,暂时用不到,之后可看说明文档

然后是输出参数:

  • pd:概率分布,可用a = pd.a 来获取参数估值 a,一般用这个就行。
  • pdca:概率分布对象
  • gn:组标签
  • gl:分组变量水平

下面是一个示例:

clc;clear
% 构造数据, 生成 10000 个服从 0~1 正态分布的数据
Data=randn(10000,1);
% 正态分布拟合
pd = fitdist(Data,'Normal');
a=pd.mu; b=pd.sigma;
% 绘图
pts=linspace(-5,5,1000);
[yy,xx]=ksdensity(Data,pts);
yy1=normpdf(xx,a,b);
% 绘制概率分布图
plot(xx,yy)
hold on
% 绘制拟合结果
plot(xx,yy1)
legend(['raw';'fit']);

绘图结果如下:
在这里插入图片描述

Chap.II 获取数据的频率分布后进行曲线拟合

首先获取数据的频率分布(这一步比较关键)

// 获得的 xx1 和 yy1 只有100个点
[yy1,xx1]=ksdensity(Data);
// 通过 pts 来控制点的个数
pts = linspace(-20,20,1000);
// 根据 pts 获取数据的频率分布
[yy,xx]=ksdensity(Data,pts);

得到数据的概率分布之后,接下来实际上就是曲线拟合了!


下面是一个示例

clc;clear
% 构造数据, 生成 10000 个服从 N(0,5) 正态分布的数据
Data=normrnd(0,5,10000,1);
% 通过 pts 来控制点的个数
pts = linspace(-20,20,1000);
% 根据 pts 获取数据的频率分布
[yy,xx]=ksdensity(Data,pts);
% 定义拟合的公式
%fitEquation = fittype('1/(2*a)*exp(-abs(x-b)/a)', 'coefficients', {'a', 'b'});  % Laplace 分布
fitEquation = fittype('1/sqrt(2*pi)/b*exp(-(x-a)*(x-a)/(2*b*b))', 'coefficients', {'a', 'b'});
% 确定初值
initialGuess = [1, 6];
% 进行曲线拟合
fittedModel = fit(xx', yy', fitEquation, 'StartPoint', initialGuess);
% 展示拟合结果
disp(fittedModel);
% 绘图
plot(xx,yy)
hold on
a=fittedModel.a; b=fittedModel.b;
% yy1=1/(2*a)*exp(-abs(xx-b)/a);  % Laplace 分布
yy1=1/sqrt(2*pi)/b*exp(-(xx-a).*(xx-a)/(2*b*b));
plot(xx,yy1)
legend(['raw';'fit']);

得到的分布拟合结果为:

General model:
fittedModel(x) = 1/sqrt(2*pi)/b*exp(-(x-a)*(x-a)/(2*b*b))
Coefficients (with 95% confidence bounds):
    a =    0.008658  (-0.001162, 0.01848)
    b =       5.084  (5.076, 5.092)

绘图结果为:

在这里插入图片描述

Reference

  1. Matlab 之曲线拟合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/307923.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Verilog】期末复习——分别画出下面两个程序综合后的电路图/reg型数据和wire型数据的区别

系列文章 数值(整数,实数,字符串)与数据类型(wire、reg、mem、parameter) 运算符 数据流建模 行为级建模 结构化建模 组合电路的设计和时序电路的设计 有限状态机的定义和分类 期末复习——数字逻辑电路分…

设计模式-空对象模式

设计模式专栏 模式介绍模式特点应用场景空对象模式和单例模式的区别代码示例Java实现空对象模式Python实现空对象模式 空对象模式在spring中的应用 模式介绍 空对象模式是一种设计模式,用于处理对象不存在的情况。它通过返回一个空对象来代替 null 值,从…

视频号小店发展趋势如何?适合新手吗?

我是电商珠珠 视频号团队在22年7月发展了自己的电商平台-视频号小店。截止到目前为止,也发展了不过一年的时间,所以各项平台政策还不太严谨。 一个新兴平台所做的第一步就是招揽更多的商家来入驻,就会将红利全部倾向商家,而在今…

6.1.2捕捉图像(3)

6.文字捕捉 除了可以捕捉图像外,HyperSnap6还有一个非常神奇、非常实用的功能——文字捕捉。利用文字捕捉,可以把一段不可复制的文字捕捉下来,以便于重新编辑。 (1)右单击桌面上的“我的电脑”,在弹出的快捷菜单中选…

Kubernetes(K8S)云服务器实操TKE

一、 Kubernetes(K8S)简介 Kubernetes源于希腊语,意为舵手,因为首尾字母中间正好有8个字母,简称为K8S。Kubernetes是当今最流行的开源容器管理平台,是 Google 发起并维护的基于 Docker 的开源容器集群管理系统。它是大名鼎鼎的Google Borg的开源版本。 K8s构建在 Docker …

世微 AP6608 DC-DC转换器 1.2MHz 2-24V 2A升压转换IC

FEATURES? Integrated 80mΩ Power MOSFET ? 2V to 24V Input Voltage ? 1.2MHz Fixed Switching Frequency ? Internal 4A Switch Current Limit ? Adjustable Output Voltage ? Internal Compensation ? Up to 28V Output Voltage ? Automatic Pulse Frequency Modul…

聚道云软件连接器助力某电商企业实现电商业务与财务系统的数据互通

客户介绍: 某电商企业是一家集电商平台、仓储物流、售后服务等业务于一体的综合性电商企业。公司业务遍布全国多个城市,拥有庞大的客户群和销售额。 添加图片注释,不超过 140 字(可选) 客户痛点: 有赞商…

高通ais over hab高概率导致安卓系统起不来原因分析及解决方案

一)ais概述 高通8155的摄像头驱动在hostOS qnx上,guestOS 安卓要使用摄像头,就需要就需要通过hab机制与qnx通信。 Ais框架如下 二)ais的控制通道与数据通道 a)控制通道即,front end需要将start/stop摄像头的控制命令发…

arm64虚拟化技术与kvm实现原理分享

文章目录 1 简介2 arm64 虚拟化相关硬件支持2.1 arm64 cpu 虚拟化基本原理及硬件支持2.2 系统寄存器捕获和虚拟寄存器支持2.3 VHE 特性支持2.4 内存虚拟化支持2.5 IO 虚拟化支持2.6 DMA 虚拟化支持2.7 中断虚拟化支持2.8 定时器虚拟化支持 3 arm64 kvm 初始化流程3.1 初始化总体…

烟火检测/区域人流统计/AI智能分析网关V4如何配置通道?

TSINGSEE青犀智能分析网关(V4版)是一款高性能、低功耗的软硬一体AI边缘计算硬件设备,硬件内部署了近40种AI算法模型,支持对接入的视频图像进行人、车、物、行为等实时检测分析,并上报识别结果,并能进行语音…

vue cli脚手架

1. vue cli 脚手架安装 参考官网:https://cli.vuejs.org/zh/guide/installation.html 步骤如下: 全局安装 npm install -g vue/cli # OR yarn global add vue/cli查看版本 vue --version # OR vue -V升级Vue cli (需要升级的时候&#x…

nginx(1.13.7)首次安装出现:【make: *** 没有规则可以创建“default”需要的目标“build” 问题】解决措施

目录 前言: 一.龙蜥(Anolis)操作系统上安装GCC 1.安装gcc 2.检验安装 二.安装出现 make: *** 没有规则可以创建“default”需要的目标“build” 问题 1.解压安装nginx 2.安装出现问题展示 3.解决措施 4.重新编译进行安装 5…

2024年能报考的人工智能行业有哪些证书呢?

近期工信部颁发的两个证书现在正在报考中,大家可以参考下: 《计算机视觉处理设计开发工程师》中级 2024年1月24日至28日-北京 《自然语言与语音处理设计开发工程师》中级 2024年2月29日-3月4日-上海 证书益处: 1.含金量高:…

JPEG格式详解Baseline、Progressive的区别

文章目录 JPEG的简介压缩质量/压缩比率色彩空间基线和渐进子采样存储选项 基线和渐进基线格式渐进格式: 子采样4:4:4(无损)4:2:24:2:0 JPEG的简介 JPEG(Joint Photographic Experts Group)是一种常见的图像压缩格式&a…

逐步分解,一文教会你如何用 jenkins+docker 实现主从模式

jenkins 主从模式想必大家都不陌生,大家在学习过程中为了学习方便都在自己本地搭建了 jenkins 环境,然后通过 javaweb 方式实现,对于 docker 下实现主从模式大家好像兴趣挺大。 今天就通过这篇文章给大家讲讲怎么玩,希望对大家有帮…

共享wifi项目如何加盟?

共享wifi贴项目如何加盟呢?具体的途径在哪里,费用是多少呢?今天小编就来一次性同你讲清楚。 我们先来讲一下共享wifi贴的加盟方法。 首先,找到共享wifi的官方渠道在点击右上角,根据页面上的信息填写资料。 然后&…

Python学习之路-Hello Python

Python学习之路-Hello Python Python解释器 简介 前面说到Python是解释型语言,Python解释器的作用就是用于"翻译"Python程序。Python规定了一个Python语法规则,根据该规则可编写Python解释器。 常见的Python解释器 CPython:官方…

如何在linux下制作静态库和动态库

目录 静态库(.a)制作静态库如何使用静态库 动态库(.so)制作动态库如何使用动态库(.so) 静态库(.a) 静态库顾名思义是静态的,即程序编译链接时,会把静态库的代码链接到可执行文件中。运行时不需要静态库(将静态库删了也能运行)。相…

日志级别(因设置错误级别日志导致宕机)

日志等级 All:最低等级的,用于打开所有日志记录. Trace:是追踪,就是程序推进一下. Debug:用于调试或者开发阶段 Info:消息在粗粒度级别上突出强调应用程序的运行过程. Warn:输出警告及warn以下级别的日志. Error:输出错误信息日志. Fatal:输出每个…

【EI会议征稿通知】第五届计算机信息和大数据应用国际学术会议(CIBDA 2024)

第五届计算机信息和大数据应用国际学术会议(CIBDA 2024) 2024 5th International Conference on Computer Information and Big Data Applications 第五届计算机信息和大数据应用国际学术会议(CIBDA 2024)将于2024年4月26-28日在…
最新文章