- Autocorrelation is one of the key features of a time series, lets
start by looking at the lag plots.
library(fpp3)
── Attaching packages ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── fpp3 0.5 ──
✔ tibble 3.2.1 ✔ tsibble 1.1.3
✔ dplyr 1.1.3 ✔ tsibbledata 0.4.1
✔ tidyr 1.3.0 ✔ feasts 0.3.1
✔ lubridate 1.9.2 ✔ fable 0.3.3
✔ ggplot2 3.4.3 ✔ fabletools 0.3.3
── Conflicts ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── fpp3_conflicts ──
✖ lubridate::date() masks base::date()
✖ dplyr::filter() masks stats::filter()
✖ tsibble::intersect() masks base::intersect()
✖ tsibble::interval() masks lubridate::interval()
✖ dplyr::lag() masks stats::lag()
✖ tsibble::setdiff() masks base::setdiff()
✖ tsibble::union() masks base::union()
library(GGally)
Registered S3 method overwritten by 'GGally':
method from
+.gg ggplot2
Lag plots
aus_production |>
filter(year(Quarter) >= 1992) -> new_production
new_production |> gg_lag(Beer, geom = "point")

- Each graph shows yt plotted aginst y(t-k) for different values of
k
The autocorrelations are the correlations associated with these scatterplots
* r1 = Correlation(yt,y(t-1)) * r2 = Corr(yt, y(t-2)) * r3 = Corr(yt,
y(t-3)) * AND SO ON
Doing it in R
new_production |>
ACF(Beer, lag_max = 9)
- Plotting it
Correlogram : plot of the correlation of
different lags
new_production |>
ACF(Beer) |>
autoplot()

When data has a trend autocorrelation for SMALL LAGS tend to be LARGE AND POSITIVE
When data is SEASONAL, autocorrelations will be LARGER at SEASONAL LAGS (multiples of seasonal freq)
- IF BOTH, you see a combination of the effects
Example 2: US employment (BOTH)
retail <- us_employment |>
filter(Title == "Retail Trade", year(Month) >= 1980)
retail |> autoplot(Employed)

Look at autocorrelation
retail |> ACF(Employed, lag_max = 48) |> autoplot()

- The effect of seasonality can be seen in lags 12, 24, 36 because
sesonality is year
- The effect looks like WAVES
- All autocorrelation lags are quite positive because of the
TREND
No seasonality no trend
gafa_stock |>
filter(Symbol == "GOOG", year(Date) == 2015) |>
select(Date, Close) -> google_2015
google_2015
The ! sing indicates that the frequency is irregular
IRREGULARLY SPACED Timestamps show that weekends, holidays
and other dates are missing
google_2015 |> autoplot()
Plot variable not specified, automatically selected `.vars = Close`

google_2015 |> ACF(Close, lag_max = 100) |> autoplot()
Warning: Provided data has an irregular interval, results should be treated with caution. Computing ACF by observation.

- This is typicall of STOCK Data and TREND DATA
THE END
LS0tCnRpdGxlOiAiQXV0b2NvcnJlbGF0aW9uIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgoqIEF1dG9jb3JyZWxhdGlvbiBpcyBvbmUgb2YgdGhlIGtleSBmZWF0dXJlcyBvZiBhIHRpbWUgc2VyaWVzLCBsZXRzIHN0YXJ0IGJ5IGxvb2tpbmcgYXQgdGhlIGxhZyBwbG90cy4KCmBgYHtyfQpsaWJyYXJ5KGZwcDMpCmBgYApgYGB7cn0KbGlicmFyeShHR2FsbHkpCmBgYAoKIyMjIExhZyBwbG90cwoKYGBge3J9CmF1c19wcm9kdWN0aW9uIHw+CiAgZmlsdGVyKHllYXIoUXVhcnRlcikgPj0gMTk5MikgLT4gbmV3X3Byb2R1Y3Rpb24KCm5ld19wcm9kdWN0aW9uIHw+IGdnX2xhZyhCZWVyLCBnZW9tID0gInBvaW50IikKYGBgCgoqIEVhY2ggZ3JhcGggc2hvd3MgeXQgcGxvdHRlZCBhZ2luc3QgeSh0LWspIGZvciBkaWZmZXJlbnQgdmFsdWVzIG9mIGsKCmBUaGUgYXV0b2NvcnJlbGF0aW9ucyBhcmUgdGhlIGNvcnJlbGF0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhlc2Ugc2NhdHRlcnBsb3RzYAoqIHIxID0gQ29ycmVsYXRpb24oeXQseSh0LTEpKQoqIHIyID0gQ29ycih5dCwgeSh0LTIpKQoqIHIzID0gQ29ycih5dCwgeSh0LTMpKQoqIEFORCBTTyBPTgoKIyMjIERvaW5nIGl0IGluIFIKCmBgYHtyfQpuZXdfcHJvZHVjdGlvbiB8PiAKICBBQ0YoQmVlciwgbGFnX21heCA9IDkpIApgYGAKCiogUGxvdHRpbmcgaXQgYENvcnJlbG9ncmFtYCA6IHBsb3Qgb2YgdGhlIGNvcnJlbGF0aW9uIG9mIGRpZmZlcmVudCBsYWdzCgpgYGB7cn0KbmV3X3Byb2R1Y3Rpb24gfD4gCiAgQUNGKEJlZXIpIHw+CiAgYXV0b3Bsb3QoKQpgYGAKCiogYFdoZW4gZGF0YSBoYXMgYSB0cmVuZCBhdXRvY29ycmVsYXRpb24gZm9yIFNNQUxMIExBR1MgdGVuZCB0byBiZSBMQVJHRSBBTkQgUE9TSVRJVkVgCiogYFdoZW4gZGF0YSBpcyBTRUFTT05BTCwgYXV0b2NvcnJlbGF0aW9ucyB3aWxsIGJlIExBUkdFUiBhdCBTRUFTT05BTCBMQUdTIChtdWx0aXBsZXMgb2Ygc2Vhc29uYWwgZnJlcSlgCiogSUYgQk9USCwgeW91IHNlZSBhIGNvbWJpbmF0aW9uIG9mIHRoZSBlZmZlY3RzCgoKIyMjIEV4YW1wbGUgMjogVVMgZW1wbG95bWVudCAoQk9USCkKCgpgYGB7cn0KcmV0YWlsIDwtIHVzX2VtcGxveW1lbnQgfD4KICBmaWx0ZXIoVGl0bGUgPT0gIlJldGFpbCBUcmFkZSIsIHllYXIoTW9udGgpID49IDE5ODApCgpyZXRhaWwgfD4gYXV0b3Bsb3QoRW1wbG95ZWQpCmBgYAoKTG9vayBhdCBhdXRvY29ycmVsYXRpb24KCmBgYHtyfQpyZXRhaWwgfD4gQUNGKEVtcGxveWVkLCBsYWdfbWF4ID0gNDgpIHw+IGF1dG9wbG90KCkKYGBgCgoqIFRoZSBlZmZlY3Qgb2Ygc2Vhc29uYWxpdHkgY2FuIGJlIHNlZW4gaW4gbGFncyAxMiwgMjQsIDM2IGJlY2F1c2Ugc2Vzb25hbGl0eSBpcyB5ZWFyCiogVGhlIGVmZmVjdCBsb29rcyBsaWtlIFdBVkVTCiogQWxsIGF1dG9jb3JyZWxhdGlvbiBsYWdzIGFyZSBxdWl0ZSBwb3NpdGl2ZSBiZWNhdXNlIG9mIHRoZSBUUkVORAoKIyMjIE5vIHNlYXNvbmFsaXR5IG5vIHRyZW5kCgpgYGB7cn0KZ2FmYV9zdG9jayB8PgogIGZpbHRlcihTeW1ib2wgPT0gIkdPT0ciLCB5ZWFyKERhdGUpID09IDIwMTUpIHw+CiAgc2VsZWN0KERhdGUsIENsb3NlKSAtPiBnb29nbGVfMjAxNQoKZ29vZ2xlXzIwMTUKYGBgCgpUaGUgYCFgIHNpbmcgaW5kaWNhdGVzIHRoYXQgdGhlIGZyZXF1ZW5jeSBpcyBpcnJlZ3VsYXIKYElSUkVHVUxBUkxZIFNQQUNFRGAKVGltZXN0YW1wcyBzaG93IHRoYXQgd2Vla2VuZHMsIGhvbGlkYXlzIGFuZCBvdGhlciBkYXRlcyBhcmUgbWlzc2luZwoKYGBge3J9Cmdvb2dsZV8yMDE1IHw+IGF1dG9wbG90KCkKYGBgCgoKKiBMb29raW5nIGF0IHRoZSBBQ0YKCmBgYHtyfQpnb29nbGVfMjAxNSB8PiBBQ0YoQ2xvc2UsIGxhZ19tYXggPSAxMDApIHw+IGF1dG9wbG90KCkKYGBgCgoqIFRoaXMgaXMgdHlwaWNhbGwgb2YgU1RPQ0sgRGF0YSBhbmQgVFJFTkQgREFUQQoKIyMjIFRIRSBFTkQKCg==