Matlab:来自马尔可夫链的PDF

时间:2013-05-23 15:21:20

标签: matlab markov-chains

我使用Matlab生成了马尔可夫链。从生成的马尔可夫链,我需要计算概率密度函数(PDF)。

  • 我该怎么做? 我应该在任何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;    

在生成马尔可夫链之后,我需要计算概率密度。

  • 如何使用Matlab找到概率密度?

1 个答案:

答案 0 :(得分:0)

如果在向量chain中将状态作为单个值,则可以简单地制作直方图并对其进行标准化。

chainPdf = hist(chain) / length(chain);

调用hist时,您可能需要指定垃圾箱或垃圾箱中心的数量。