Learn R Programming

timsac (version 1.2.7)

tvvar: Time Varying Variance

Description

Estimate time-varying variance.

Usage

tvvar(y, trend.order, tau20=NULL, delta=NULL, plot=TRUE)

Arguments

y
univariate time series.
trend.order
trend order.
tau20
initial estimate of tau2.
delta
search width.
plot
logical. If TRUE (default) normdat, ts, trend and noise are plotted.

Value

  • tvvartime varying variance.
  • normdatnormalized data.
  • tstransformed time series $s_m$.
  • trendtrend.
  • noiseresiduals.
  • tau2variance of the system noise tau2.
  • sigma2variance of the observational noise.
  • lkhoodlog-likelihood of the mode.
  • aicAIC.

Details

Assuming that $\sigma_{2m-1}^2 = \sigma_{2m}^2$, we define a transformed time series $s_1,...,s_{N/2}$ by $$s_m = y_{2m-1}^2 + y_{2m}^2,$$ where $y_n$ is a Gaussian white noise with mean $0$ and variance $\sigma_n^2$. $s_m$ is distributed as a $\chi^2$ distribution with $2$ degrees of freedom, so the probability density function of $s_m$ is given by $$f(s) = \frac{1}{2\sigma^2} e^{-s/2\sigma^2}.$$ By further transformation $$z_m = log(\frac{s_m}{2}),$$ the probability density function of $z_m$ is given by $$g(z) = \frac{1}{\sigma^2} exp{{z-\frac{e^z}{\sigma^2}}} = exp{{(z-log\sigma^2)} - e^{(z-log\sigma^2)}}.$$ Therefore the transformed time series is given by $$z_m = log \sigma^2 + w_m,$$ where $w_m$ is a double exponential distribution with probability density function $$h(w) = exp{{w-e^w}}.$$ In the space state model $$z_m = t_m + w_m$$ by identifying trend components of $z_m$, the log variance of original time series $y_n$ is obtained.

References

Kitagawa, G. (1993) Time series analysis programing (in Japanese). The Iwanami Computer Science Series. Kitagawa, G. and Gersch, W. (1996) Smoothness Priors Analysis of Time Series. Lecture Notes in Statistics, No.116, Springer-Verlag. Kitagawa, G. and Gersch, W. (1985) A smoothness priors time varying AR coefficient modeling of nonstationary time series. IEEE trans. on Automatic Control, AC-30, 48-56.

Examples

Run this code
data(MYE1F) # an earthquake wave data
  z <- tvvar(MYE1F, 2, 6.6e-06, 1.0e-06)
  z$lkhood
  z$aic

Run the code above in your browser using DataLab