[R] Puzzled at lm() and time-series

Ajay Shah ajayshah at mayin.org
Sat Aug 21 17:47:29 CEST 2004

```I tried toy problems and there doesn't seem to be a basic problem
between lm() and ts objects:

X = data.frame(x=c(1,2,7,9), y=c(7,2,3,1))
lm(y ~ x, X)
X <- lapply(X, function(x) ts(x, frequency=12, start=c(1994,7)))
lm(y ~ x, X)

and this works fine - whether you do an lm() before or after making ts
objects, it's okay.

But I have a situation where things aren't okay. I have two happy
time-series objects in a data frame:

> M\$g.cpi.iw
Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov   Dec
1994                                     11.07 10.94 11.20 10.31  9.81  9.47
1995  9.89  9.81  9.74  9.67 10.29 10.47 11.39 10.92 10.07 10.38 10.31  9.69
... (deleted)
2004  4.35  4.13  3.49  2.23  2.83  3.02    NA

> M\$g.wpi
Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov   Dec
1994                                     11.14 11.83 11.88 12.66 13.20 14.54
1995 16.18 16.88 16.88 11.02 10.94  9.70  9.61  8.94  8.92  8.47  8.24  6.62
... (deleted)
2004  6.45  6.14  4.79  4.52  4.99  6.14  6.86

But I can't get an OLS going:

> lm(g.cpi.iw ~ g.wpi, M)
Error in "storage.mode<-"(`*tmp*`, value = "double") :
invalid time series parameters specified

Any idea why? I think both objects are quite conformable (except for
an NA, but that should get dropped by lm() by default).

Here's a block of R code which creates M, in case you'd like to toy
with this:

M = structure(list(g.wpi = structure(c(11.14, 11.83, 11.88, 12.66,
13.2, 14.54, 16.18, 16.88, 16.88, 11.02, 10.94, 9.7, 9.61, 8.94, 8.92,
8.47, 8.24, 6.62, 5.04, 4.51, 4.53, 3.67, 3.58, 3.61, 4.28, 4.9, 5.08,
4.54, 4.48, 5.25, 5.12, 5.47, 5.43, 5.86, 5.09, 5.07, 3.6, 3.26, 3.83,
4.38, 3.94, 4.01, 5.11, 4.17, 4.32, 4.57, 5.64, 6.43, 7.1, 6.56, 5.89,
6.5, 7.15, 6.32, 4.48, 5.4, 5.41, 3.98, 3.31, 2.49, 1.97, 2.79, 3.23,
3.41, 3.1, 2.79, 3.58, 3.5, 5.54, 6.56, 6.35, 6.5, 6.51, 6.12, 6.47,
7.54, 7.61, 8.31, 8.69, 8.35, 6.45, 5.42, 5.6, 5.35, 5.27, 5.38, 4.48,
2.89, 2.59, 2.26, 1.53, 1.35, 1.72, 1.5, 1.5, 2.4, 2.79, 3.35, 3.55,
3.08, 3.39, 3.31, 4.21, 5.38, 6, 6.62, 6.57, 5.39, 4.68, 3.96, 4.9,
5.15, 5.42, 5.79, 6.45, 6.14, 4.79, 4.52, 4.99, 6.14, 6.86), .Tsp =
c(1994.5, 2004.5, 12), class = "ts"), g.cpi.iw = structure(c(11.07,
10.94, 11.2, 10.31, 9.81, 9.47, 9.89, 9.81, 9.74, 9.67, 10.29, 10.47,
11.39, 10.92, 10.07, 10.38, 10.31, 9.69, 9, 8.59, 8.87, 9.83, 9.33,
8.82, 8.31, 8.89, 8.52, 8.46, 8.72, 10.41, 11.11, 10.76, 10.03, 9.26,
7.32, 6.61, 5.6, 4.66, 4.94, 5.49, 4.87, 6.29, 9.71, 9.14, 8.26, 8.19,
10.51, 12.39, 14.8, 15.04, 16.34, 18.63, 19.67, 15.32, 9.38, 8.64,
8.95, 8.36, 7.71, 5.26, 3.16, 3.15, 2.14, 0.92, 0, 0.47, 2.62, 3.61,
4.83, 5.54, 5.01, 5.24, 4.95, 3.99, 3.5, 2.75, 2.74, 3.48, 3.25, 3.02,
2.53, 2.28, 2.5, 3.39, 4.04, 5.19, 4.73, 4.23, 4.89, 5.16, 4.94, 5.19,
5.17, 4.69, 4.66, 4.16, 3.89, 3.86, 4.3, 4.06, 3.6, 3.2, 3.43, 3.86,
4.06, 5.12, 4.66, 4.41, 4.16, 3.1, 2.89, 3.29, 3.07, 3.72, 4.35, 4.13,
3.49, 2.23, 2.83, 3.02, NA), .Tsp = c(1994.5, 2004.5, 12), class =
"ts")), .Names = c("g.wpi", "g.cpi.iw"), row.names = c("1", "2", "3",
"4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15",
"16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26",
"27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37",
"38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48",
"49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59",
"60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70",
"71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81",
"82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92",
"93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103",
"104", "105", "106", "107", "108", "109", "110", "111", "112", "113",
"114", "115", "116", "117", "118", "119", "120", "121"), class =
"data.frame")

--
Ajay Shah                                                   Consultant
ajayshah at mayin.org                      Department of Economic Affairs
http://www.mayin.org/ajayshah           Ministry of Finance, New Delhi

```