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

vector に単一の値として状態がある場合は、chain単純にヒストグラムを作成して正規化できます。

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

を呼び出すときに、ビンまたはビンの中心の数を指定する必要がある場合がありますhist

于 2013-05-23T16:05:59.547 に答える