My imported data contains 7 variables: Y
and X1
, X2
, X3
, X4
, X5
, X6
. I tried applying the rollapply
function in zoo
in order to run a rolling regression within an in-sample with a window of 262 obs. (work days in a year).
date Y X1 X2
1 10/1/07 -0.0080321720 4.690734e-03 3.333770e-03
2 10/2/07 0.0000000000 -2.818413e-03 5.418223e-03
3 10/3/07 0.0023158650 -4.178744e-03 -3.821100e-04
4 10/4/07 -0.0057491710 -5.071030e-03 -8.321550e-04
5 10/5/07 0.0073570500 3.065045e-03 5.179574e-03
6 10/8/07 0.0127708010 -7.278513e-03 1.145395e-03
7 10/9/07 0.0032661980 9.692267e-03 6.514035e-03
8 10/10/07 0.0013824430 1.161780e-04 2.676416e-03
9 10/11/07 0.0026607550 1.113179e-02 8.825719e-03
10 10/12/07 -0.0046362600 -2.453561e-03 -6.584070e-03
11 10/15/07 -0.0023757680 -7.829081e-03 -3.070540e-03
12 10/16/07 -0.0128673660 -4.619378e-03 -8.972126e-03
13 10/17/07 0.0016049760 1.276695e-03 5.349316e-03
14 10/18/07 -0.0044198970 -9.018499e-03 -1.215895e-02
15 10/19/07 -0.0011080330 -5.328661e-03 -7.131916e-03
16 10/22/07 -0.0024217970 -2.019539e-02 -2.021072e-02
17 10/23/07 0.0031270520 1.668604e-02 2.236130e-02
18 10/24/07 -0.0040367400 -1.061433e-02 -5.735703e-03
19 10/25/07 0.0001011170 1.346312e-02 1.036109e-02
20 10/26/07 0.0003032910 3.766526e-03 2.903628e-03
21 10/29/07 0.0004042450 1.416406e-02 2.527754e-03
22 10/30/07 -0.0012132240 -1.387166e-03 -8.202236e-03
23 10/31/07 0.0057497510 9.593904e-03 1.433401e-02
24 11/1/07 -0.0032238590 -1.648975e-02 -1.029199e-02
25 11/2/07 -0.0031330560 -7.737784e-03 -7.559498e-03
26 11/5/07 -0.0001012300 -7.877763e-03 -8.500554e-03
27 11/6/07 -0.0004050220 7.407770e-03 2.536320e-03
28 11/7/07 -0.0031444970 -5.904219e-03 -8.026064e-03
29 11/8/07 -0.0045822590 -3.712574e-03 -6.395584e-03
30 11/9/07 0.0016316540 -1.432552e-02 -1.741458e-02
31 11/12/07 -0.0019378860 -3.926583e-03 -4.543370e-03
32 11/13/07 0.0011223920 -1.952799e-03 -2.622112e-03
33 11/14/07 0.0008154940 8.687550e-06 1.085682e-03
34 11/15/07 0.0015272620 -1.549745e-02 -1.556172e-02
35 11/16/07 -0.0001017450 -5.578556e-03 -1.432244e-02
36 11/19/07 0.0014234880 -2.206707e-02 -3.537936e-02
37 11/20/07 -0.0010165700 1.643937e-02 5.140822e-03
38 11/21/07 -0.0008140010 -1.715961e-02 -2.756704e-02
39 11/22/07 -0.0008146640 -2.108098e-03 7.455698e-03
40 11/23/07 0.0008146640 1.266776e-02 1.615338e-02
41 11/26/07 0.0008140010 5.539814e-03 2.854080e-03
42 11/27/07 0.0006100660 -8.561106e-03 -9.720505e-03
43 11/28/07 -0.0015258640 3.392103e-02 2.132374e-02
44 11/29/07 -0.0006109980 6.109848e-03 1.045556e-02
45 11/30/07 0.0004073730 9.214342e-03 1.133690e-02
46 12/3/07 -0.0002036660 -7.006415e-03 -6.079820e-04
47 12/4/07 0.0002036660 -1.187605e-02 -2.554853e-02
48 12/5/07 0.0007125040 1.362121e-02 9.525618e-03
49 12/6/07 -0.0034655010 7.917348e-03 5.252105e-03
50 12/7/07 0.0018361730 -1.026832e-02 1.216898e-02
51 12/10/07 0.0013240310 3.347302e-03 1.143687e-02
52 12/11/07 0.0005087760 -3.433720e-03 2.373558e-03
53 12/12/07 0.0024385300 5.507930e-04 3.191504e-03
54 12/13/07 -0.0115336820 -1.793698e-02 -2.149447e-02
55 12/14/07 -0.0010271160 -2.307745e-03 -1.038483e-03
56 12/17/07 -0.0033969870 -1.822079e-02 -2.920662e-02
57 12/18/07 0.0000000000 -1.873297e-03 -7.061215e-03
58 12/19/07 -0.0004125410 -3.372400e-06 -7.879850e-03
59 12/20/07 0.0008249120 -6.227957e-03 -1.752460e-04
60 12/21/07 -0.0020635580 1.734991e-02 1.348190e-02
61 12/24/07 0.0003098050 0.000000e+00 0.000000e+00
62 12/25/07 0.0000000000 0.000000e+00 0.000000e+00
63 12/26/07 0.0001032470 0.000000e+00 0.000000e+00
64 12/27/07 0.0006192590 5.006783e-03 5.274480e-03
65 12/28/07 -0.0005160230 6.428153e-03 8.557260e-03
66 12/31/07 0.0000000000 0.000000e+00 0.000000e+00
67 1/1/08 0.0002064410 0.000000e+00 0.000000e+00
68 1/2/08 -0.0009293200 -6.023384e-03 -3.104400e-03
69 1/3/08 0.0027853730 -2.302511e-03 -2.759650e-03
70 1/4/08 0.0018526150 -2.149450e-02 -2.645257e-02
71 1/7/08 -0.0005142710 -4.445206e-03 -2.117698e-
1596 <NA> <NA> <NA>
the last line for some reason doesn't show the values,even though there are in the original excel file(X3,X4,X5,X6 are missing,since the columns are stacked on top of each other,I copied the batch from the top for the example.
My code is:
rollapply(ts, 262, lm(
Y~X1+X2+X3+X4+X5+X6+0, subset=1:floor(length(x)/2)),
align="right")
The error message I get is:
Error in eval(expr, envir, enclos) : object 'Y' not found
I really wonder why it can not find the Y
variable, since it is displayed in the time series dataset with the appropriate heading.
It is not really clear what your data actually is (use dput(example_data)
to give reproducible examples).
But the lm
call in your example is simply doing the same regression over and over again (your x is not changing) and as josilber points out, it is supposed to be a function. Here is an example where all the data is in the data.frame allRegData
and it has at least two columns, one named y
and another named x
:
require(zoo)
rollapply(zoo(allRegData),
width=262,
FUN = function(Z)
{
t = lm(formula=y~x, data = as.data.frame(Z), na.rm=T);
return(t$coef)
},
by.column=FALSE, align="right")