Linear filtering to a univariate 'timeSeries' plot
> x
GMT
Open High Low Close Volume
2000-09-27 63.4375 63.5625 59.8125 60.6250 53077800
2000-09-28 60.8125 61.8750 60.6250 61.3125 26180200
2000-09-29 61.0000 61.3125 58.6250 60.3125 37026800
2000-10-02 60.5000 60.8125 58.2500 59.1250 29281200
2000-10-03 59.5625 59.8125 56.5000 56.5625 42687000
2000-10-04 56.3750 56.5625 54.5000 55.4375 68226700
2000-10-05 55.5000 57.2500 55.2500 55.3750 40549700
2000-10-06 55.8125 56.7500 54.7500 55.5625 30897000
2000-10-09 55.6250 55.7500 53.0000 54.1875 29161800
2000-10-10 53.9375 55.5625 53.8125 54.5625 31033100
2000-10-11 54.0000 56.9375 54.0000 55.7500 50602900
2000-10-12 56.3125 56.8750 53.8125 54.3750 45109800
> X <- cbind(x[, "Open"], returns(x[, "Open"]))
> colnames(X) <- c("Open", "Return")
> x
GMT
Open High Low Close Volume
2000-09-27 63.4375 63.5625 59.8125 60.6250 53077800
2000-09-28 60.8125 61.8750 60.6250 61.3125 26180200
2000-09-29 61.0000 61.3125 58.6250 60.3125 37026800
2000-10-02 60.5000 60.8125 58.2500 59.1250 29281200
2000-10-03 59.5625 59.8125 56.5000 56.5625 42687000
2000-10-04 56.3750 56.5625 54.5000 55.4375 68226700
2000-10-05 55.5000 57.2500 55.2500 55.3750 40549700
2000-10-06 55.8125 56.7500 54.7500 55.5625 30897000
2000-10-09 55.6250 55.7500 53.0000 54.1875 29161800
2000-10-10 53.9375 55.5625 53.8125 54.5625 31033100
2000-10-11 54.0000 56.9375 54.0000 55.7500 50602900
2000-10-12 56.3125 56.8750 53.8125 54.3750 45109800
> Y <- rbind(x[1:3, "Open"], x[10:12, "Open"])
> Y
GMT
Open_Open
2000-09-27 63.4375
2000-09-28 60.8125
2000-09-29 61.0000
2000-10-10 53.9375
2000-10-11 54.0000
2000-10-12 56.3125
> range <- High - Low
Error: object 'High' not found
> X = MSFT[, 1:4]
> X = 100 * returns(X)
> cov(X[, "Open"], X[, "Close"])
Close
Open 5.370449
> cov(X)
Open High Low Close
Open 12.024989 7.717341 9.072359 5.370449
High 7.717341 8.566159 8.007279 7.931451
Low 9.072359 8.007279 10.543072 8.505720
Close 5.370449 7.931451 8.505720 11.676740
> x = MSFT[1:20, "Open"]
> lag(x, k = -1:1)
GMT
Open[-1] Open[0] Open[1]
2000-09-27 60.8125 63.4375 NA
2000-09-28 61.0000 60.8125 63.4375
2000-09-29 60.5000 61.0000 60.8125
2000-10-02 59.5625 60.5000 61.0000
2000-10-03 56.3750 59.5625 60.5000
2000-10-04 55.5000 56.3750 59.5625
2000-10-05 55.8125 55.5000 56.3750
2000-10-06 55.6250 55.8125 55.5000
2000-10-09 53.9375 55.6250 55.8125
2000-10-10 54.0000 53.9375 55.6250
2000-10-11 56.3125 54.0000 53.9375
2000-10-12 53.8750 56.3125 54.0000
2000-10-13 53.5000 53.8750 56.3125
2000-10-16 51.8750 53.5000 53.8750
2000-10-17 49.6250 51.8750 53.5000
2000-10-18 58.4375 49.6250 51.8750
2000-10-19 61.3125 58.4375 49.6250
2000-10-20 64.6250 61.3125 58.4375
2000-10-23 62.6250 64.6250 61.3125
2000-10-24 NA 62.6250 64.6250
> data <- matrix(rnorm(100), ncol = 2)
> s <- timeSeries(data, units=c("A", "B"))
> head(s)
A B
[1,] 1.34501889 -0.01515725
[2,] -0.83806595 -0.50574314
[3,] 0.11467005 -0.83601647
[4,] -1.92993351 0.73093456
[5,] 0.88410486 -0.36609669
[6,] 0.09300388 -0.04980351
> f <- filter(s, rep(1, 3))
> head(f)
A B
[1,] NA NA
[2,] 0.6216230 -1.3569169
[3,] -2.6533294 -0.6108251
[4,] -0.9311586 -0.4711786
[5,] -0.9528248 0.3150344
[6,] 1.4894797 -0.9541888
> plot(cbind(s[, 1], f[, 1]), plot.type="s")
0 Comments