阿白数模笔记之灰色-马尔科夫模型(Grey Markov model)

这篇具有很好参考价值的文章主要介绍了阿白数模笔记之灰色-马尔科夫模型(Grey Markov model)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言(preface)

GM(1,1)

简介(brief introdution)

 ①级比检验(Grade ratio test)

②建立GM(1,1)模型

Ⅰ、邻值生成序列(Adjacent value generating sequence )

Ⅱ、回归分析(regression analysis)

Ⅲ、残差检验(Residual test)

Markov chain

① 转移概率矩阵(Transition probability matrix)

②状态分布向量(state vector)

③平稳分布向量(steady-state vector)

灰色马尔可夫模型(Grey Markov model)

①对y0建立GM(1,1)得到e1

Ⅰ、Grade ratio test

Ⅱ、Accumulative generation sequence

Ⅱ、Regression analysis&Residual test

②对abs(e1)建立GM(1,1)

Ⅰ、Grade ratio test

Ⅱ、Accumulative generation sequence

 Ⅱ、Regression analysis&Residual test

③修正(revise)

Ⅰ、转移概率矩阵

Ⅱ、初始分布与预测

Ⅲ、修正效果

 ④总结(summary)

参考文章(Reference articles)


前言(preface)

        在学习模拟退火算法时(Simulated Annealing,SA)发现了一个新名词——马尔科夫链(Markov chain),所以就先学习了Markov chain的相关知识,本文主要介绍GM(1,1),Markov chain,并将Grey Markov model应用到实例。

GM(1,1)

简介(brief introdution)

        黑色未知,白色已知,而灰色是介于黑白之间的,意味着部分数据已知,而数据间有内在联系,但内在函数关系未知。GM(1,1)适用的情况大致满足以下条件:一、数据量少,二、短期预测,三、指数增长。下面是原数据和经过生成后的数据折线图,发现处理后的数据具有更明显的规律。

灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法

 ①级比检验(Grade ratio test)

灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法

%Grade ratio test
y0=[71.1,72.4,72.4,72.1,71.4,72.0,71.6];
[m,n]=size(y0);
k=0;
for i=2:n;
    a=y0(i-1)/y0(i);
    if exp(-2/(n+1))<a<exp(2/(n+1));
        k=k+1;
    end
end
if k==n-1
    disp('grey modle is vailable')
else
    disp('grey modle is invailable')
end

output:
grey modle is vailable

②建立GM(1,1)模型

Ⅰ、邻值生成序列(Adjacent value generating sequence )

%GM(1,1)
x=1986:1992;
y0=[71.1,72.4,72.4,72.1,71.4,72.0,71.6];

plot(x,y0,'-ok','markerfacecolor','r','linewidth',2);
axis([1985,1993,60,80]);
title('某城市1986-1992交通噪声平均声级');grid on

%累加生成数列
y1=zeros(size(y0));
for i=1:size(y0,2);
    y1(i)=sum(y0(1:i));
end
figure,plot(x,y1,'-ok','markerfacecolor','r','linewidth',2);
axis([1985,1993,60,600]);

%均值生成数列
z1=zeros(size(y0));
for i=1:size(y0,2);
    if i==1;
        z1(i)=y1(i);
    else
        z1(i)=(y1(i)+y1(i-1))*0.5;
    end
end
hold on
plot(x,z1,'-ok','markerfacecolor','r','linewidth',2);
axis([1985,1993,60,600]);
title('生成序列');
legend('累加生成序列','均值生成序列');grid on

Ⅱ、回归分析(regression analysis)

灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法

fit1=polyfit(y1,y0,1);%拟合的一次函数
a1=fit1(1);u1=fit1(2);
%prediction
y11=zeros([1,1+n]);%n=size(y(0),2)
%y11是拟合后的累加生成序列
%y01用来储存时间步的预测值,y01(k+1)=y11(k+1)-y11(k)
y01=[y0(1),zeros([1,n])];
for k=0:n
    y11(k+1)=(y0(1)+u1/a1)*exp(a1*k)-u1/a1; %求解微分方程后的函数
    if k~=0
        y01(k+1)=y11(k+1)-y11(k);
    end
end

figure,plot(x,y0,'b*-');hold on
plot([x,1993],y01,'ro--');axis([1985,1993,60,80]);grid on
legend('actual','pred');title('Accumulative generation sequence')

Ⅲ、残差检验(Residual test)

%Residual test
e1=abs((y0-y01(1,1:7)))./y0;
r11=length(e1(find(e1<0.1)));
r12=length(e1(find(e1<0.2)));
if r1==n
    disp('The fitting effect of the model is very good')
elseif r2==n
    disp('The fitting effect of the model is not bad' )
else
    disp('GM(1,1) is not suitable to solve this problem')
end

output:
The fitting effect of the model is very good

Markov chain

灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法

灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法

① 转移概率矩阵(Transition probability matrix)

        动态规划算法中有个概念叫状态转移方程,就是说从前面 t-1 时刻的状态到 t时刻的状态的实现方式。Markov chain中的转移概率矩阵定义类似:(t-1)时刻处于状态 i,转移到状态 j 的概率为,则,即每一行的和为1,称为转移概率矩阵

②状态分布向量(state vector)

        ,称为t时刻的状态分布向量,,一般取为给定的初始分布,,其中P是转移概率矩阵

③平稳分布向量(steady-state vector)

        对于一般的Markov chain ,当 t 足够大时,状态分布向量会收敛于某一特殊向量,即平稳分布向量,满足灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法,即是P特征值为 1 时对应的特征向量

灰色马尔可夫模型(Grey Markov model)

        y0 是原始序列,y1是累加生成序列,y11是拟合后的累加生成序列,y01是对原时间步的预测

e1是一阶残差序列e1=(y0-y1)

①对y0建立GM(1,1)得到e1

Ⅰ、Grade ratio test

%级比检验 Grade ratio test
y0=d;
[m,n]=size(y0);
k=0;
for i=2:n;
    a=y0(i-1)/y0(i);
    if exp(-2/(n+1))<a<exp(2/(n+1));
        k=k+1;
    end
end
if k==n-1
    disp('grey modle is vailable')
else
    disp('grey modle is invailable')
end
output:
grey modle is vailable

Ⅱ、Accumulative generation sequence

%GM(1,1)
x=1:20;
plot(x,y0,'-ok','markerfacecolor','r','linewidth',2);
axis([1,22,20,40]);
title('20旬某超市的的营业额');grid on;legend('data');
xlabel('时间/旬(10天)');ylabel('营业额/万元')

%累加生成数列
y1=zeros(size(y0));
for i=1:size(y0,2);
    y1(i)=sum(y0(1:i));
end

figure,plot(x,y1,'-ok','markerfacecolor','r','linewidth',2);
axis([1,22,0,600]);
grid on;legend('Accumulative generation sequence','location','northwest');
xlabel('时间/旬(10天)');ylabel('营业额/万元')

灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法

Ⅱ、Regression analysis&Residual test

fit1=polyfit(y1,y0,1);
a1=fit1(1);u1=fit1(2);
%prediction
y11=zeros([1,1+n]);%n=size(y(0),2)
%y11是拟合后的累加生成序列
%y01用来储存时间步的预测值,y01(k+1)=y11(k+1)-y11(k)
y01=[y0(1),zeros([1,n])];
for k=0:n
    y11(k+1)=(y0(1)+u1/a1)*exp(a1*k)-u1/a1;
    if k~=0
        y01(k+1)=y11(k+1)-y11(k);
    end
end

figure,plot(x,y0,'b*-');hold on
plot([x,21],y01,'ro--');axis([1,22,20,40]);grid on
legend('actual','Uncorrected GM(1,1)');title('Accumulative generation sequence')

%Residual test
e1=y0-y01(1,1:n)
e2=abs(e1)./y0;
r1=length(e2(find(e2<0.1)));
r2=length(e2(find(e2<0.2)));
if r1==n
    disp('The fitting effect of the model is very good')
elseif r2==n
    disp('The fitting effect of the model is not bad' )
else
    disp('GM(1,1) is not suitable to solve this problem')
end

灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法运行后的结果显示:The fitting effect of the model is not bad,但从预测图来看效果是非常差的,因此需要某种方法对GM(1,1)模型做出修正

②对abs(e1)建立GM(1,1)

        代码与上面是基本一致的,只给出各步骤对应结果

Ⅰ、Grade ratio test

        grey modle is vailable

Ⅱ、Accumulative generation sequence

灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法

 Ⅱ、Regression analysis&Residual test

灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法

 pred即为残差修正值,用e01储存GM(1,1)对e0的预测结果;y00为修正(corrected)的结果;灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法,其中,

③修正(revise)

Ⅰ、转移概率矩阵

      状态划分为正,负,计算后知

即为概率转移矩阵

Ⅱ、初始分布与预测

        以最后一个残差为初始分布,若大于0,则,否则,预测之后 t 个时间步,则对应的状态分布为,若,则取,否则。

Ⅲ、修正效果

灰色马尔可夫预测模型,阿白数模笔记,自然语言处理,matlab,算法

 ④总结(summary)

        通过引入残差的GM(1,1)来修正误差,并采用Markov chain 预测残差和原data下一个时间步的值,通过状态分布向量预估正负号,再对数据进行修正。Grey Markov model 弥补了传统GM(1,1)对波动性和趋势性数据预测精度低的不足

参考文章(Reference articles)

灰色预测模型GM(1,1) 与例题分析

灰色-马尔可夫模型

简述马尔可夫链【通俗易懂】

马尔可夫链 (Markov Chains)文章来源地址https://www.toymoban.com/news/detail-707605.html

到了这里,关于阿白数模笔记之灰色-马尔科夫模型(Grey Markov model)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • EM算法实现之隐马尔科夫模型HMM的python实现

    1 基本概念 1.1 马尔科夫链(维基百科) 马尔可夫链(英语:Markov chain),又称离散时间马尔可夫链(discrete-time Markov chain,缩写为DTMC),因俄国数学家安德烈·马尔可夫得名,为状态空间中经过从一个状态到另一个状态的转换的随机过程。该过程要求具备“无记忆”的性质:

    2024年02月09日
    浏览(45)
  • 【随机过程-学习笔记】(1)--马尔科夫链的定义与转移概率与绝对概率

    马尔科夫链的出现 具有马氏性,是指今天与昨天有关,但与前天无关(广义理解)。 p ( x t ∣ x t − 1 , x t − 2 , . . . x t − n ) = p ( x t ∣ x t − 1 ) p(x_t|x_{t-1},x_{t-2},...x_{t-n})=p(x_t|x_{t-1}) p ( x t ​ ∣ x t − 1 ​ , x t − 2 ​ , ... x t − n ​ ) = p ( x t ​ ∣ x t − 1 ​ ) , x t x_t x t ​

    2024年01月18日
    浏览(38)
  • 马尔科夫状态转移矩阵

    一、马尔科夫状态转移矩阵性质 1. 每个时间点处在某一个状态,时间是离散的。 2. 每次到下一个时间点时按照图进行随机状态转移。 3. 假如某时的状态是个统计分布(看做向量),那么用状态转移矩阵(权值)乘这个向量就得下一时刻的状态。马尔可夫链的状态数可以是有

    2024年02月13日
    浏览(45)
  • 马尔科夫链(Markov Chain)

    马尔可夫性(Markov Property)是指系统的下一个状态 仅与当前状态有关,而与以前的状态无关 (即无记忆性(memorylessness),系统不记得当前状态以前的状态,仅仅基于当前状态来决定下一个时刻转移到什么状态) 如果指标集(index set)是连续的,则称为连续时间马尔可夫链(Continuou

    2024年02月05日
    浏览(34)
  • python之马尔科夫链(Markov Chain)

    马尔可夫链(Markov Chain)是一种随机过程,具有“马尔可夫性质”,即在给定当前状态的条件下,未来状态的概率分布仅依赖于当前状态,而与过去状态无关。马尔可夫链在很多领域都有广泛的应用,包括蒙特卡洛方法、统计物理学、自然语言处理等。 马尔可夫链的一般定义

    2024年02月21日
    浏览(43)
  • 15、条件概率、全概率公式、贝叶斯公式、马尔科夫链

    定义:设A、B是两个事件,且,P(A) 0 则称 为事件A发生的条件下事件B的条件概率 对这个式子进行变形,即可得到概率的乘法公式: P(A) 0 时,则 P(B) 0 时,则 乍一看,这个式子不就是把除法形式写成了乘法形式嘛,不然不然,这个区别是本质的,分母不为0很关键,而且看法也

    2024年02月13日
    浏览(46)
  • 【RL】(task1)马尔科夫过程、动态规划、DQN

    递归结构形式的贝尔曼方程计算给定状态下的预期回报,这样的方式使得用逐步迭代的方法就能逼近真实的状态/行动值。 有了Bellman equation就可以计算价值函数了 马尔科夫过程描述了一个具有无记忆性质的随机过程,未来状态只依赖于当前状态,与过去状态无关,类似于一个

    2024年01月21日
    浏览(36)
  • 【线性代数07】马尔科夫矩阵和傅里叶矩阵

      本篇可以看作对行列式和特征值应用的举例。但我会谈些我感兴趣的部分,即离散信源信道模型和循环矩阵的对角化。 这个矩阵从概率论中概率的定义生发,因此 各元素实际上就是非负的概率值 。马尔科夫矩阵(Markov matrix)又称概率矩阵(probability matrix)、转移概率矩

    2024年02月04日
    浏览(39)
  • 马尔科夫决策过程-策略迭代与值迭代(基于动态规划)

    强化学习入门笔记,基于easy RL RL基础 强化学习(reinforcement learning,RL):智能体可以在与复杂且不确定的环境进行交互时,尝试使所获得的奖励最大化的算法。 动作(action): 环境接收到的智能体基于当前状态的输出。 状态(state):智能体从环境中获取的状态。 奖

    2024年02月04日
    浏览(46)
  • 【大道至简】机器学习算法之隐马尔科夫模型(Hidden Markov Model, HMM)详解(2)---计算问题:前向算法和后向算法原理详解公式推导及Python实现

    ☕️ 本文系列文章汇总: (1)HMM开篇:基本概念和几个要素 (2)HMM计算问题:前后向算法 (3)HMM学习问题:Baum-Welch算法 (4) HMM预测问题:维特比算法 ☕️ 本文来自专栏: 大道至简之机器学习系列专栏 ❤️各位小伙伴们关注我的大道至简之机器学习系列专栏,一起学

    2024年02月05日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包