plotregimeid: Clustering and plotting function for msbvar permuted sample...

Description Usage Arguments Details Value Note Author(s) References See Also Examples

View source: R/plotregimeid.R

Description

Identifies and plots regime-specific coefficients from the random permutation sampler for regime identification

Usage

1
2
3
plotregimeid(x,
             type = c("all", "intercepts", "AR1", "Sigma", "Q"),
             ask = TRUE, ...)

Arguments

x

Gibbs sampler output of class MSBVAR from the posterior of an MSBVAR model, a call to the gibbs.msbvar function.

type

Items to be clustered and plots to be produced to identify the posterior regimes / modes of the Gibbs sampler based on the randomly permuted draws. The type can be "intercepts" where the clustering of the posterior draws and the plots are based on the intercepts in each equation (so a change in equilibrium model), "AR1" where the clustering of the posterior draws are based on the coefficients in the VAR(1) matrices across the regimes, "Sigma" or the variances of the equations across the regimes, or "Q" based on the elements of the transition matrix, Q. The option "all" generates the plots and clustering for all of the above options and is the default.

ask

logical, default=TRUE. Ask about which plots to show, ala the syntax in coda. If TRUE then all relevant responses are displayed on the current graphical device with user input. Otherwise, all plots run by in the current device as generated.

...

Optional graphical and lattice parameters to be fed to the plots. There is no assurance that these will work. E-mail if you have inputs on this that do not work, but that you think should.

Details

The posterior of a Markov-switching (MS) model estimated by an unrestricted Gibbs sampler has h! identical posterior modes. The modes are identical in the sense that they are merely relabelings of the regime labels. Since the analyst may not apriori know what defines or separates the regimes in the parameter space, this function allows one to explore the randomly permuted labelings that are generated by the gibbs.msbvar function.

This function takes the permuted output of gibbs.msbvar and shows colored pairs, scatter, densityplots, and traceplots for the posterior parameters. The coloring follow standard R color pallates. The determination of how the regimes are identified is based on a kmeans clustering of either the the parameters "intercepts", "AR1", "Sigma" (variances), or "Q" transition probabilities. This is the method suggested by Fruhwirth-Schanatter (2001, 2006). The utility here is that this function handles subsetting the data, setting up the clustering and plotting and labeling the results for the user.

Regime identification and labeling is necessary so that one can sample from a single mode of the posterior to get sensible regime classification plots from say plot.SS or regime probabilities from say mean.SS.

Value

None. A series of plots are produced in the current graphics device.

Note

This is the first version of this function. Future versions may use a slightly different syntax and only use one input argument.

Author(s)

Patrick T. Brandt

References

Fruhwirth-Schnatter, Sylvia. 2001. "Markov Chain Monte Carlo Estimation of Classical and Dynamic Switching and Mixture Models". Journal of the American Statistical Association. 96(153):194–209.

Fruhwirth-Schnatter, Sylvia. 2006. Finite Mixture and Markov Switching Models. Springer Series in Statistics New York: Springer.

See Also

msbvar, plot.SS, mean.SS, gibbs.msbvar

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
## Not run: 
# This example can be pasted into a script or copied into R to run.  It
# takes a few minutes, but illustrates how the code can be used

data(IsraelPalestineConflict)  

# Find the mode of an msbvar model
# Initial guess is based on random draw, so set seed.
set.seed(123)

xm <- msbvar(IsraelPalestineConflict, p=1, h=2,
             lambda0=0.8, lambda1=0.15,
             lambda3=2, lambda4=1, lambda5=0, mu5=0,
             mu6=0, qm=12,
             alpha.prior=matrix(c(100,40,30,50), 2, 2))

# Plot out the initial mode
plot(ts(xm$fp))
print(xm$Q)

# Now sample the posterior
N1 <- 100
N2 <- 500

# First, so this with random permutation sampling
x1 <- gibbs.msbvar(xm, N1=N1, N2=N2, permute=TRUE)

# Identify the regimes using clustering in plotregimeid()
plotregimeid(x1, type="all")

# Now re-estimate based on desired regime identification seen in the
# plots.  Here we are using the variance of the first equation, so
# Sigma.idx=1.

x2 <- gibbs.msbvar(xm, N1=N1, N2=N2, permute=FALSE, Sigma.idx=1)

# Plot the variances.  Note the strict hyperplane between the variances
# for the first equation versus the others.
plotregimeid(xm, x2, type="Sigma")

## End(Not run)

MSBVAR documentation built on May 30, 2017, 1:23 a.m.

Related to plotregimeid in MSBVAR...