0

我使用 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 找到概率密度?
4

1 回答 1

0

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

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

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

于 2013-05-23T16:05:59.547 回答