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
[EMAIL PROTECTED] Department of Economic Affairs
http://www.mayin.org/ajayshah Ministry of Finance, New Delhi
______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html