balanceMittnik {dse1} | R Documentation

## Balance a state space model

### Description

Balance a state space model a la Mittnik.

### Usage

        balanceMittnik(model, n=NULL)
        SVDbalanceMittnik(M, m, n=NULL)

### Arguments

`model` | An TSmodel object.
`M` | a matrix. See details in `MittnikReduction`.
`m` | an integer indicating the number of input series in the model.
`n` | see details

### Details

`balanceMittnik` calculate a state space model balance a la Mittnik. n is intended primarily for producing a state space model from the markov parameters of an ARMA model, but if it is supplied with an SS model the result will be a model with state dimension n based on the n largest singular values of the svd of a Hankel matrix of markov parameters generated by the original model. If n is not supplied then the singular values are printed and the program prompts for n. `balanceMittnik` calls `SVDbalanceMittnik`

`SVDbalanceMittnik` calculates a nested-balanced state space model by svd a la Mittnik. If state dim n is supplied then svd criteria are not calculated and the given n is used. Otherwise, the singular values are printed and the program prompts for n. M is a matrix with p x (m+p) blocks giving the markov parameters, that is, the first row of the Hankel matrix. It can be generated from the model as in the function markovParms, or from the data, as in the function estSSMittnik. m is the dimension of input series, which is needed to decompose M. The output dimension p is taken from nrow(M).

See also `MittnikReduction` and references.

### Value

A state space model in a TSestModel object.

### References

See references for `MittnikReduction`.

### See Also

`estVARXls`, `estVARXar` `MittnikReduction`

### Examples

        if(is.R()) data("eg1.DSE.data.diff", package="dse1")
        model <- toSS(TSmodel(estVARXls(eg1.DSE.data.diff)))
        ## Not run: newmodel <-balanceMittnik(model)
        # this prints information about singular values and prompts with
        #Enter the number of singular values to use for balanced model:
        # 18 might be a good choice in this example.
        newmodel <-balanceMittnik(model, n=18)

[Package Contents]