# Matlab uses bugs Markov regime to transform Markov switching random volatility model, sequential Monte Carlo and M-H sampling to analyze time series data

Time：2021-12-5

In this example, we consider Markov transformation stochastic volatility model.

## statistical model

Give Way    Are dependent variables and    Unobserved log volatility  The stochastic volatility model is defined as follows

Zone variable    Following a two-state Markov process with transition probability

Represents the normal distribution of the mean    And variance  .

## Bugs language statistical model

Contents of file “SSV. Bug”:

``````file  = ' ssv.bug';  %  Bugs model file name

model
{
x\[1\] ~ dnorm(mm\[1\], 1/sig^2)
y\[1\] ~ dnorm(0, exp(-x\[1\]))

for (t in 2:tmax)
{
c\[t\] ~ dcat(ifelse(c\[t-1\]==1, pi\[1,\], pi\[2,\]))
mm\[t\] <- alp\[1\] * (c\[t\]==1) + alp\[2\]*(c\[t\]==2) + ph*x\[t-1\]``````

## install

2. Unzip the archive into a folder
3. Add program folder to Matlab search path
``addpath(path)``

## General settings

``````lightblue
lightred

%   Seed the random number generator for repeatability
if eLan 'matlab', '7.2')
rnd('state', 0)
else
rng('default')
end``````

## model parameter

``````tmax = 100;
sig = .4;``````

Parse and compile bugs model and sample data

``````model(file, data, 'sample', true);
data = model;``````

Draw data

``````figure('nae', 'Lrtrs')
plot(1:tmax, dt.y)``````

## Biips sequence Monte Carlo SMC

Run SMC

``````n_ part  =  5000;  %  Particle number
{'x'};  %  Variables to monitor
smc =  samples（npart）；``````

Algorithm diagnosis.

``diag   (smc);``

Drawing smoothing ess

``````sem(ess)

plot(1:tmax, 30*(tmax,1), '--k')``````

Paint weighted particles

``````for ttt=1:tttmax
va = unique(outtt.x.s.vaues(ttt,:));

wegh = arrayfun(@(x) sum(outtt.x.s.weittt(ttt, outtt.x.s.vaues(ttt,:) == x)), va);

scatttttter(ttt\*ones(size(va)), va, min(50, .5\*n_parttt*wegh), 'r',...
'markerf', 'r')
end``````

Summary statistics

``summary(out, 'pro', \[.025, .975\]);``

Mapping filter estimation

``````mean = susmc.x.f.mean;
xfqu = susmc.x.f.quant;
h = fill(\[1:tmax, tmax:-1:1\], \[xfqu{1}; flipud(xfqu{2})\], 0);

plot(1:tmax, mean,)
plot(1:tmax, data.x_true)``````

Mapping smoothing estimation

``````mean = smcx.s.mean;
quant = smcx.s.quant;

plot(1:t_max, mean,  3)
plot(1:t\_max, data.x\_true, 'g')``````

Marginal filtering and smoothing density

``````kde = density(out);
for k=1:numel(time)
tk = time(k);
plot(kde.x.f(tk).x, kde.x.f(tk).f);
hold on
plot(kde.x.s(tk).x, kde.x.s(tk).f, 'r');
plot(data.xtrue(tk));
box off
end``````

## Biips particle independent metropolis Hastings

Pimh parameters

``````thi= 1;
nprt = 50;``````

Running pimh

``````init(moel, vaibls);
upda(obj,   urn,   npat);  %  Pre burn iteration
sample(obj,...
nier, npat, 'thin', thn);``````

Some summary statistics

``summary(out, 'prs');``

Post mean and quantile

``````mean = sumx.man;
quant = su.x.qunt;

hold on
plot(1:tax, man, 'r', 'liith', 3)
plot(1:tax, xrue, 'g')``````

Trace of MCMC samples

``````for k=1:nmel(timndx)
tk = tieinx(k);
sublt(2, 2, k)
plot(outm.x(tk, :), 'liedh', 1)
hold on
plot(0, d_retk), '*g');
box off
end``````

A posteriori histogram

``````for k=1:numel(tim_ix)
tk = tim_ix(k);
subplot(2, 2, k)
hist(o_hx(tk, :), 20);
h = fidobj(gca, 'ype, 'ptc');    hold on
plot(daau(k), 0, '*g');

box off
end``````

A posteriori kernel density estimation

``````pmh = desity(otmh);
for k=1:numel(tenx)
tk = tim_ix(k);
subplot(2, 2, k)
plot(x(t).x, dpi.x(tk).f, 'r');
hold on
plot(xtrue(tk), 0, '*g');
box off
end``````

## Biips sensitivity analysis

We want to study the sensitivity to parameter values

Algorithm parameters

``````n=   50;  %  Particle number
para  =  {'alpha};  %  We want to study the parameters of sensitivity
%   Value grid of two components
pvs = {A(:, B(:';``````

Run sensitivity analysis using SMC

``smcs(modl, par, parvlu, npt);``

Plot log marginal likelihood and penalty log marginal likelihood rate

``````surf(A, B, reshape(ouma_i, sizeA)
box off``````

Most popular insights

## The real problem of Alibaba IOS algorithm can’t hang up this time

More and more IOS developers continue to enter the peak of job hopping in 2020 Three main trends of interview in 2020: IOS bottom layer, algorithm, data structure and audio and video development Occupied the main battlefield. Data structure and algorithm interview, especially figure, has become the main reason for the failure of most first-line […]