Description Usage Arguments Details Value Author(s) References See Also Examples
View source: R/init.theta.MSAR.R
Initialization before fitting (non) homogeneous Markov switching autoregressive models by EM algorithm. Non homogeneity may be introduce at the intercept level or in the probability transitions. The link functions are defined here.
1 2 |
data |
array of univariate or multivariate series with dimension T*N.samples*d with T: number of time steps of each sample, N.samples: number of realisations of the same stationary process, d: dimension |
M |
number of regimes |
order |
order of AR processes |
label |
"HH" (default) for homogeneous MS AR model \ "HN" for non homogeneous emissions \ "NH" for non homogeneous transitions \ "NN" for non homogeneous emissions and non homogeneous transitions |
regime_names |
(optional) regime's names may be chosen |
nh.emissions |
link function for non homogeneous emissions. If nh.emissions="linear" (default) linear link is used. If you define an other function it should follow the sample nh.emissions <- function(covar,par.emis) with par.emis of dimension M by ncov.emis+1. |
nh.transitions |
link function for non homogeneous transitions. If nh.transitions="gauss" (default) gaussian link is used. If M=2, "logistic" may be chosen. If you define an other function it should follow the sample nh.transitions <- function(covar,par.trans,transma) with par.emis of dimension M by ncov.trans+1. |
ncov.emis |
number of covariates in HN model |
ncov.trans |
number of covariates in NH model |
cl.init |
allows to choose the initialization method. |
... |
The default implemented link function for non homogneneous intercept is the linear function
A0_t^{(x)} = θ_{A0}^{(x)} Z(t)
θ_{A0}^{(x)} denotes a line vector here. Other link functions can be defined using nh.emissions (see above).
The default implemented link function for non homogneneous transitions is the Gauss function. Transition from i to j is defined as follows.
f(Z,θ_Q,Q;i,j) = Q_{ij} \exp≤ft(-\frac{1}{2}\frac{(Z-θ_Q^{(j)}(1))^2}{θ_Q^{(j)}(2)}\right)
then f is normalized in order to define a stochastic matrix.
When, only two regimes are considered, the logistic link can be used. Probability of staying in state i is defined as follows
f(Z,θ_Q,Q;i,i) = ε+(-2-ε)/(1+\exp(θ_Q^{(i)}(1)+θ_Q^{(i)}[2:(d_Z+1)] Z))
f(Z,θ_Q,Q;i,j) = 1-f(Z,θ_Q,Q;i,i)
with Z the covariate and eqnd_Z its dimension (number of covariates)
return a list of class MSAR including
theta |
parameter |
..$transmat |
transition matrix |
..$prior |
prior probabilities |
..$A |
list including the autoregressive coefficients (or matrices) |
..$A0 |
intercepts |
..$sigma |
variances of innovations |
..$par.emis |
parameters of non homogeneous emissions |
..$par.trans |
parameters of non homogeneous transitions |
label |
model's label |
Val\'erie Monbet, valerie.monbet at univ-rennes1.fr
Ailliot, Monbet
fit.MSAR
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 | data(meteo.data)
data = array(meteo.data$temperature,c(31,41,1))
k = 40
T = dim(data)[1]
N.samples = dim(data)[2]
d = dim(data)[3]
# Fit Homogeneous MS-AR models
M = 2
order = 2
theta.init = init.theta.MSAR(data,M=M,order=order,label="HH")
mod.hh = fit.MSAR(data,theta.init,verbose=TRUE,MaxIter=10)
regimes.plot.MSAR(mod.hh,data,ylab="temperatures")
## Not run
# Fit Non Homogeneous MS-AR models
#theta.init = init.theta.MSAR(data,M=M,order=order,label="NH",nh.transitions="gauss")
#attributes(theta.init)
#mod.nh = fit.MSAR(array(data[2:T,,],c(T-1,N.samples,1)),theta.init,verbose=TRUE,MaxIter=50,
#covar.trans=array(data[1:(T-1),,],c(T-1,N.samples,1)))
#regimes.plot.MSAR(mod.nh,data,ex=40,ylab="temperature (deg. C)")
## Not run
# Fit Non Homogeneous MS-AR models to lynx data
#data(lynx)
#data = array(lynx,c(length(lynx),1,1))
#theta.init = init.theta.MSAR(data,M=2,order=2,label="NH",nh.transitions="logistic")
#attributes(theta.init)
#mod.lynx = fit.MSAR(array(data[2:T,,],c(T-1,1,1)),theta.init,verbose=TRUE,MaxIter=200,
#covar.trans=array(data[1:(T-1),,],c(T-1,1,1)))
#regimes.plot.MSAR(mod.lynx,data,ylab="Captures number")
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.