Matlab:PDF来自马尔可夫链
我已经用Matlab生成了马尔可夫链。根据生成的马尔可夫链,我需要计算概率密度函数(PDF)Matlab:PDF来自马尔可夫链,matlab,markov-chains,Matlab,Markov Chains,我已经用Matlab生成了马尔可夫链。根据生成的马尔可夫链,我需要计算概率密度函数(PDF) 我该怎么做? 我应该在任何PDF函数中直接使用生成的马尔可夫链吗? 或 我应该在找到PDF之前对数据进行任何预处理吗 使用以下代码生成马尔可夫链: % x = the quantity corresponding to each state, typical element x(i) % P = Markov transition matrix, typical element
- 我该怎么做?
我应该在任何PDF函数中直接使用生成的马尔可夫链吗?
或
我应该在找到PDF之前对数据进行任何预处理吗
% x = the quantity corresponding to each state, typical element x(i)
% P = Markov transition matrix, typical element p(i,j) i,j=1,...n
% pi0 = probability distribution over initial state
% T = number of periods to simulate
% chain = sequence of realizations from the simulation
n = length(x); % what is the size of the state vector?
E = rand(1,T); % T-vector of draws from independent uniform [0,1]
cumsumP = P*triu(ones(size(P)));
E0 = rand(1,1);
ppi0 = [0,cumsum(pi0)];
s0 = ((E0<=ppi0(2:n+1)).*(E0>ppi0(1:n)))';
s = s0;
for t=1:T,
state(:,t) = s;
ppi = [0,s'*cumsumP];
s = ((E(t)<=ppi(2:n+1)).*(E(t)>ppi(1:n)))';
end
chain = x'*state;
%x=每个状态对应的数量,典型元素x(i)
%P=马尔可夫转移矩阵,典型元素P(i,j)i,j=1,…n
%pi0=初始状态的概率分布
%T=要模拟的周期数
%链=模拟实现的顺序
n=长度(x);%状态向量的大小是多少?
E=兰特(1,T);%独立均匀分布的T向量[0,1]
cumsuld=P*triu(一个(尺寸(P));
E0=兰特(1,1);
ppi0=[0,累计(pi0)];
s0=((E0ppi0(1:n)));
s=s0;
对于t=1:t,
状态(:,t)=s;
ppi=[0,s'*c];
s=((E(t)ppi(1:n)));
结束
链=x'*状态;
生成马尔可夫链之后,我需要计算概率密度
- 如何使用Matlab计算概率密度
链中将状态作为单个值,只需制作一个直方图并将其规格化即可
chainPdf = hist(chain) / length(chain);
调用时,您可能需要指定存储箱或存储箱中心的数量。您看过Matlab的-函数吗?这是其中的一部分。@Schorsch ya,我使用了pdf函数“ksdensity”,如下所示,[f,xi]=ksdensity(chain,bin,'function','pdf');它是否正确?如果没有更具体地说明您遇到了什么,很难说您使用的kdensity
是否正确。它看起来确实像是一辆汽车。