caffery的个人博客分享 http://blog.sciencenet.cn/u/caffery

博文

matlab实现:基于极大似然估计的混合分布参数估计(LM洪峰流量)

已有 10754 次阅读 2012-7-4 10:04 |系统分类:科研笔记|关键词:学者| MATLAB, 正态分布, 数据

这个是无错误版~
 
clear;
clc;
load('test.mat');
test = A_pastespecial;
c2 = test(1:32,:);%前半部分数据
c3 = test(33:49,:);%后半部分数据
%c6 = [c2;c3];
c3(5) = 50;%修改数据,不影响整体分布趋势
c3(13) = 185;%修改数据,不影响整体分布趋势
c3(14)=350;%修改数据,不影响整体分布趋势
%c4 = log(c2);
%c5 = log(c3);
%c5 = abs(c5);
c6 = [c2;c3];
%c7 = [c4;c5];
[p3,pa4]=mle(c2,'distribution','lognormal');%前32个数对数正态分布函数的极大似然估计值
[p5,pa6]=mle(c3,'distribution','lognormal');%剩下的数的对数正态分布函数的极大似然估计值
mixedpdf=@(x,mu1,mu2,s1,s2,rho)(rho*lognpdf(x,mu1,s1)+(1-rho)*lognpdf(x,mu2,s2));%极大似然估计的混合分布
phat1=mle(c6,'pdf',mixedpdf,'start',[p3(1),p5(1),p3(2),p5(2),0.5]);%对混合分布进行极大似然估计
phat1=mle(c6,'pdf',mixedpdf,'start',phat1);%没有收敛,继续估计
phat1=mle(c6,'pdf',mixedpdf,'start',phat1);%没有收敛,继续估计
mu1 = phat1(1);%前面对数正态分布的平均值估值
mu2 = phat1(2);%后面对数正态分布的平均值估值
s1 = phat1(3);%前面对数正态分布的标准值估值
s2 = phat1(4);%前面对数正态分布的标准值估值
rho = phat1(5);%权值估值
x = 1:exp(0.05):exp(10);
y1 = (rho*lognpdf(x,mu1,s1)+(1-rho)*lognpdf(x,mu2,s2));%混合分布的概率密度函数
subplot(1,2,1);
plot(x,y1,'r-');
a=1:0.05:10;
F=1-(rho*logncdf(a,mu1,s1)+(1-rho)*logncdf(a,mu2,s2));%对数正态分布概率密度函数的累积频率值
subplot(1,2,2);
plot(a,F,'r-');
c8=sort(c6,'descend');
P=1-(rho*logncdf(c8,mu1,s1)+(1-rho)*logncdf(c8,mu2,s2));%对原始数据进行排序后计算的累计频率值


https://m.sciencenet.cn/blog-733746-588771.html

上一篇:matlab实现:混合分布极大似然估计

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-18 22:40

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部