Long Memory Time Series A time series has short memory if | ( h ) - - PowerPoint PPT Presentation

long memory time series a time series has short memory if
SMART_READER_LITE
LIVE PREVIEW

Long Memory Time Series A time series has short memory if | ( h ) - - PowerPoint PPT Presentation

Long Memory Time Series A time series has short memory if | ( h ) | < . So a time series for which | ( h ) | = is said to have long memory . 1 Why do we care? Write the mean of x 1 , x 2 , . . . , x n as x n


slide-1
SLIDE 1

Long Memory Time Series

  • A time series has short memory if
  • |γ(h)| < ∞.
  • So a time series for which
  • |γ(h)| = ∞

is said to have long memory.

1

slide-2
SLIDE 2

Why do we care?

  • Write the mean of x1, x2, . . . , xn as

¯ xn = x1 + x2 + · · · + xn n .

  • Then

var(¯ xn) = 1 n

n−1

  • h=−(n−1)
  • 1 − |h|

n

  • γ(h)

= 1 n

  • h=−∞
  • 1 − |h|

n

  • +

γ(h) where (a)+ = max(a, 0) is a if a ≥ 0 and 0 if a < 0.

2

slide-3
SLIDE 3
  • If |γ(h)| < ∞, then

  • h=−∞
  • 1 − |h|

n

  • +

γ(h) →

  • h=−∞

γ(h) as n → ∞.

  • So

nvar(¯ xn) →

  • h=−∞

γ(h),

  • r

var(¯ xn) = 1 n

 

  • h=−∞

γ(h)

  + o 1

n

  • .

3

slide-4
SLIDE 4
  • That is, for a short memory time series, var(¯

xn) goes to zero as the sample size increases at the usual rate, σ2/n, but with a different multiplier.

  • Note that

  • h=−∞

γ(h) = f(0), the spectral density f(ω) evaluated at ω = 0.

  • So we can also write

var(¯ xn) = f(0) n + o

1

n

  • :

σ2 is replaced by f(0).

4

slide-5
SLIDE 5
  • But if |γ(h)| = ∞, this doesn’t work.
  • In practice, many series show var(¯

xn) decaying more slowly. Plot log[var(¯ xn)] against log(n), and look for a slope of −1.

vartime = function(x, nmax = round(length(x) / 10)) { v = rep(NA, nmax); for (n in 1:nmax) { y = filter(x, rep(1/n, n), sides = 1); v[n] = var(y, na.rm = TRUE); } plot(log(1:nmax), log(v)); lmv = lm(log(v) ~ log(1:nmax)); abline(lmv); title(paste(deparse(substitute(x)), "; nmax = ", nmax)); print(summary(lmv)); } vartime(log(varve)) vartime(globtemp) vartime(residuals(lm(globtemp ~ time(globtemp))))

5

slide-6
SLIDE 6

Fractional Integration

  • How can we model such series?
  • Fractionally integrated white noise:

(1 − B)dxt = wt, 0 < d < 0.5.

  • ACF is

ρ(h) = Γ(h + d)Γ(1 − d) Γ(h − d + 1)Γ(d) ∼ h2d−1

  • So for 0 < d < 0.5,

  • h=−∞

|ρ(h)| = ∞.

6

slide-7
SLIDE 7

Notes:

  • var(¯

xn) decays like n(2d−1), so d = 1 + slope of variance-time graph 2 gives a rough empirical estimate of d.

  • The spectral density is

f(ω) = σ2

w

  • 4 sin(πω)2

d,

so for d > 0, f(ω) → ∞ as ω → 0.

7

slide-8
SLIDE 8
  • Also f(ω) ∼ |ω|−2d as ω → 0, so a graph of log[f(ω)] against

log(|ω|) gives another estimate of d.

  • If d ≥ 0.5, f(ω) is not integrable, so the series is not station-

ary.

8

slide-9
SLIDE 9

ARFIMA Model

  • In some long-memory series, autocorrelations at small lags

do not match those of fractionally integrated noise.

  • We can add ARMA components to allow for such differences;

the ARIMA(p, d, q) model with fractional d, or ARFIMA.

  • Use the R function fracdiff():

library(fracdiff) summary(fracdiff(log(varve))) summary(fracdiff(log(varve), nar = 1, nma = 1)) summary(fracdiff(residuals(lm(globtemp ~ time(globtemp)))))

9

slide-10
SLIDE 10

Trend Estimation with ARFIMA errors

  • The R function fracdiff() does not allow explanatory vari-

ables, but we can use it to calculate a profile likelihood func- tion.

  • E.g. global temperature versus cumulative CO2 emissions:

source("http://www.stat.ncsu.edu/people/bloomfield/courses/st730/co2w.R"); plot(cbind(globtemp, co2w)); slopes = seq(from = 0, to = 1.5, length = 151); ll2 = rep(NA, length(slopes)); for (i in 1:length(slopes)) ll2[i] = -2 * fracdiff(globtemp - slopes[i] * co2w)$log.likelihood; plot(slopes, ll2, type = "l"); abline(h = min(ll2) + qchisq(.95, 1));

10

slide-11
SLIDE 11
  • The point estimate is

slopeEst = slopes[which.min(ll2)]; abline(v = slopeEst, col = "red"); # [1] 0.68

and the 95% confidence interval is roughly:

slopeCI = range(slopes[ll2 <= min(ll2) + qchisq(.95, 1)]); abline(v = slopeCI, col = "red", lty = 2); # [1] 0.41 1.03

  • The CO2 series was scaled by its change from 1900 to 2000,

so we estimate the 20th century warming as 0.68◦C, with a confidence interval of (0.41◦C, 1.03◦C) (note the asymmetry: 0.68(−0.27, +0.35)◦C).

  • Compare with IPCC: 1906–2005 warming is 0.74◦C±0.18◦C.

11