| Nmdl {MSTest} | R Documentation |
Normal distribution model
Description
This function estimates a univariate or multivariate normally distributed model. This can be used for the null hypothesis of a linear model against an alternative hypothesis of a HMM with k regimes.
Usage
Nmdl(Y, control = list())
Arguments
Y |
a |
control |
List with model options including:
|
Value
List of class Nmdl (S3 object) with model attributes including:
y: a
(T x q)matrix of observations.fitted: a
(T x q)matrix of fitted values.resid: a
(T x q)matrix of residuals.mu: a
(1 x q)vector of estimated means of each process.stdev: a
(q x 1)vector of estimated standard deviation of each process.sigma: a
(q x q)estimated covariance matrix.theta: vector containing:
muandvech(sigma).theta_mu_ind: vector indicating location of mean with
1and0otherwise.theta_sig_ind: vector indicating location of variance and covariances with
1and0otherwise.theta_var_ind: vector indicating location of variances with
1and0otherwise.n: number of observations (same as
T).q: number of series.
k: number of regimes. This is always
1inNmdl.control: List with model options used.
logLike: log-likelihood.
AIC: Akaike information criterion.
BIC: Bayesian (Schwarz) information criterion.
Hess: Hessian matrix. Approximated using
hessianand only returned ifgetSE=TRUE.info_mat: Information matrix. Computed as the inverse of
-Hess. If matrix is not PD then nearest PD matrix is obtained usingnearest_spd. Only returned ifgetSE=TRUE.nearPD_used: Boolean determining whether
nearPDfunction was used oninfo_matifTRUEor not ifFALSE. Only returned ifgetSE=TRUE.theta_se: standard errors of parameters in
theta. Only returned ifgetSE=TRUE.
Examples
set.seed(1234)
# ----- Univariate ----- #
# Define DGP
mdl_norm <- list(n = 1000,
q = 1,
mu = as.matrix(5),
sigma = as.matrix(5.0))
# Simulate process using simuNorm() function
y_norm_simu <- simuNorm(mdl_norm)
# estimate parameters
y_norm_mdl <- Nmdl(y_norm_simu$y)
summary(y_norm_mdl)
# ----- Multivariate ----- #
# Define DGP
mdl_norm <- list(n = 1000,
q = 2,
mu = c(5, -2),
sigma = rbind(c(5.0, 1.5),
c(1.5, 1.0)))
# Simulate process using simuNorm() function
y_norm_simu <- simuNorm(mdl_norm)
# estimate parameters
y_norm_mdl <- Nmdl(y_norm_simu$y)
summary(y_norm_mdl)