分布拟合第三期之gamma分布(已知区间频数)

gamma 分布是一种连续概率分布,适用于描述‌正数域‌且呈‌右偏形态‌的随机变量,常见于保险索赔、降水量分析、生存分析等领域。作者这里介绍已知区间频数的情况下,如何使用最小二乘法实现分布拟合。

写在前面:关于 MATLAB 内置函数的使用方法,感兴趣的同学可以通过选中函数,鼠标右击的方式打开关于函数的帮助,里面 MATLAB 官方已经详细给出使用这一函数的语法、说明及使用示例。详见下图。

一、gamma 分布的理论基础

概率密度函数(PDF):
f ( x ) = 1 b a Γ ( a ) x a − 1 e − x b f(x) = \frac{1}{b^{a} \Gamma(a)} x^{a-1} e^{-\frac{x}{b}} f(x)=baΓ(a)1xa1ebx
累积分布函数(CDF):
F ( x ) = 1 b a Γ ( a ) ∫ 0 x t a − 1 e − t b d t F(x) = \frac{1}{b^{a} \Gamma(a)} \int_{0}^{x} t^{a-1} e^{-\frac{t}{b}} dt F(x)=baΓ(a)10xta1ebtdt
其中, a > 0 a>0 a>0为形状参数,决定分布的形状; b > 0 b>0 b>0为尺度参数,决定分布的范围; Γ ( ⋅ ) \Gamma(·) Γ()gamma函数,定义为: Γ ( s ) = ∫ 0 + ∞ t s − 1 e − t d t , R e ( s ) > 0 \Gamma(s) = \int_{0}^{+\infty} t^{s-1} e^{-t} dt,Re(s)>0 Γ(s)=0+ts1etdtRe(s)>0

二、数据准备

此部分主要是读取原始数据

%% 1、mat文件
load data.mat    % 加载所有变量

%% 2、Excel文件
data = readmatrix('gamma分布.xlsx');

%% 3、csv文件
data = readmatrix('gamma分布.csv');

%% 4、txt文件
data = readmatrix('gamma分布.txt');

三、Gamma 分布拟合的实现

  • 优化算法‌:采用 fminconSQP 算法进行约束优化
  • 约束条件‌: a a a > 0, b b b > 0

拟合结果评估:
拟合完成后,计算平均绝对误差 (Mean Absolute Error, MAE) 、均方根误差(root mean square error, RMSE)和可决系数R2从定量的角度去衡量概率模型与实际分布曲线之间的不同。

为了更直观地展示拟合结果,可以使用 MATLAB 的绘图函数进行可视化,绘制数据的直方图和拟合的 gamma 分布曲线。这里以生成的随机数作为样本数据,并对数据插图进行美化处理。

效果展示:


关注公众号【科研小小怪】,后台回复关键词【分布拟合第三期】免费获取示例代码。因防止中文乱码,分享的是文本文件,如下图。

运行方法:

  1. 新建脚本

  1. 复制代码粘贴到新建脚本中,并保存

  2. 运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值