| Library: | times |
| See also: | kfilter ksmoother |
| Macro: | kem | |
| Description: |
Calculates estimates of mu, F, Q and R in a
state-space model using EM-algorithm.
The state-space model is assumed to be in the
following form: y_t = H x_t + v_t x_t = F x_t-1 + w_t x_0 ~ (mu,Sig), v_t ~ (0,Q), w_t ~ (0,R) Parameters Sig and H are assumed known.
|
| Usage: | {Estmu, EstF, EstQ, EstR} = kem(y,mu,Sig,H,F,Q,R,LoopLimit) | |
| Input: | ||
| y | T x m matrix of observed time series, T is the number of observations, m is the dimension of time series | |
| mu | n x 1 vector, an initial value for iterations | |
| Sig | n x n covariance matrix of the initial state | |
| H | m x n matrix | |
| F | n x n matrix, an initial value for iterations | |
| Q | m x m variance-covariance matrix, an initial value for iterations | |
| R | n x n variance-covariance matrix, an initial value for iterations | |
| Output: | ||
| Estmu | n x 1 vector, the estimate of the mean of the initial state | |
| EstF | n x n matrix, the estimate of the state transition matrix | |
| EstQ | m x m matrix, the estimate of the covariance matrix | |
| EstR | n x n matrix, the estimate of the covariance matrix | |
library("xplore")
library("times")
library("plot")
serie = read("kalman2.dat")
y = serie[,2]
mu = #(0,0)
T = 100
Sig = #(0,0)~#(0,0)
H = #(1,0)'
F = #(5,1)~#(1,5)
R = #(1,0)~#(0,1)
Q = 10
{Estmu, EstF, EstQ, EstR} = kem(y,mu,Sig,H,F,Q,R,10)
Estmu
EstF
EstQ
EstR
smoothed = ksmoother(y,Estmu,Sig,H,EstF,EstQ,EstR)
orig = vec(1:T)~y
smoot = vec(1:T)~smoothed
orig = setmask(orig, "line", "red", "thin")
smoot = setmask(smoot, "line", "blue", "medium")
disp = createdisplay(1,1)
show(disp,1,1, orig, smoot)
setgopt(disp,1,1, "title", "AR(2) with noise - EM estimated")
Original series is displayed with red colour, filtered series is displayed with blue colour. (y is an AR(2) process with errors.) Contents of Estmu [1,] -0.049524 [2,] 0.011351 Contents of EstF [1,] 0.70331 0.11066 [2,] 0.80357 4.0443 Contents of EstQ [1,] 3.6792 Contents of EstR [1,] 0.19393 -0.018777 [2,] -0.018777 0.81767
| Library: | times |
| See also: | kfilter ksmoother |