我想使用R计算以下两个回归:
library("dynlm")
zooX = zoo(test[, -1])
lmx <- dynlm(d(Euribor3)~d(Ois3)+d(CDS)+d(Vstoxx)+d(log(omo))+d(L(Euribor3, 1)), data=zooX[1:16])
summary(lmx)
zooX = zoo(test[, -1])
lmx <- dynlm(d(Euribor3)~d(Ois3)+d(CDS)+d(Vstoxx)+d(log(omo))+d(L(Euribor3, 1)), data=zooX[17:31])
summary(lmx)这两个模型之间唯一的区别是子集(第一个1:16和第二个17:31)。现在,这两个模型给出了以下输出:
Time series regression with "zoo" data:
Start = 3, End = 16
Call:
dynlm(formula = d(Euribor3) ~ d(Ois3) + d(CDS) + d(Vstoxx) +
d(log(omo)) + d(L(Euribor3, 1)), data = zooX[1:16])和
Time series regression with "zoo" data:
Start = 19, End = 31
Call:
dynlm(formula = d(Euribor3) ~ d(Ois3) + d(CDS) + d(Vstoxx) +
d(log(omo)) + d(L(Euribor3, 1)), data = zooX[17:31])从输出(系数、t值等未报告)可以看出,第一个模型使用了观察3:16。第二个模型使用观察19:31。由于变量的转换,两个子集之间出现了一个缺口,即第一个模型有End=16,第二个模型是Start=19,这意味着在回归过程中,观测值17和18不包括在内。现在我的问题是什么更有意义?要么让模型中的子集保持原样,要么通过两次观测(即15:31)将第二模型的子集移回,以缩小差距?然后,产出将变成:
Time series regression with "zoo" data:
Start = 17, End = 31
Call:
dynlm(formula = d(Euribor3) ~ d(Ois3) + d(CDS) + d(Vstoxx) +
d(log(omo)) + d(L(Euribor3, 1)), data = zooX[15:31])正如你所看到的,第一个模型仍然有End=16,第二个模型现在有Start=17。非常感谢!
这是我的数据集:
Date Euribor3 Ois3 Vstoxx CDS omo
03.01.2005 2.154 2.089 14.47 17.938 344999
04.01.2005 2.151 2.084 14.51 17.886 344999
05.01.2005 2.151 2.087 14.42 17.95 333998
06.01.2005 2.15 2.085 13.8 17.95 333998
07.01.2005 2.146 2.086 13.57 17.913 333998
10.01.2005 2.146 2.087 12.92 17.958 333998
11.01.2005 2.146 2.089 13.68 17.962 333998
12.01.2005 2.145 2.085 14.05 17.886 339999
13.01.2005 2.144 2.084 13.64 17.568 339999
14.01.2005 2.144 2.085 13.57 17.471 339999
17.01.2005 2.143 2.085 13.2 17.365 339999
18.01.2005 2.144 2.085 13.17 17.214 347999
19.01.2005 2.143 2.086 13.63 17.143 354499
20.01.2005 2.144 2.087 14.17 17.125 354499
21.01.2005 2.143 2.087 13.96 17.193 354499
24.01.2005 2.143 2.086 14.11 17.283 354499
25.01.2005 2.144 2.086 13.63 17.083 354499
26.01.2005 2.143 2.086 13.32 17.348 347999
27.01.2005 2.144 2.085 12.46 17.295 352998
28.01.2005 2.144 2.084 12.81 17.219 352998
31.01.2005 2.142 2.084 12.72 17.143 352998
01.02.2005 2.142 2.083 12.36 17.125 352998
02.02.2005 2.141 2.083 12.25 17 357499
03.02.2005 2.144 2.088 12.38 16.808 357499
04.02.2005 2.142 2.084 11.6 16.817 357499
07.02.2005 2.142 2.084 11.99 16.798 359999
08.02.2005 2.141 2.083 11.92 16.804 355500
09.02.2005 2.142 2.08 12.19 16.589 355500
10.02.2005 2.14 2.08 12.04 16.5 355500
11.02.2005 2.14 2.078 11.99 16.429 355500
14.02.2005 2.139 2.078 12.52 16.042 355500发布于 2015-05-02 08:06:26
如果您通过data = zooX[...,]对自己进行细分,那么dynlm()没有看到完整的示例,因此必须丢失两个观察结果。如果您提供完整的data = zooX,然后分别设置end = 14和start = 15,那么dynlm()首先可以将所有滞后/差异等全部模型框架组合在一起,然后选择所需的子集。在下面的示例中,我这样做,但是使用数据中可用的适当日期索引。
首先,我们将数据读入具有适当Date索引的Date系列:
library("dynlm")
zooX <- read.zoo(textConnection("Date Euribor3 Ois3 Vstoxx CDS omo
03.01.2005 2.154 2.089 14.47 17.938 344999
04.01.2005 2.151 2.084 14.51 17.886 344999
05.01.2005 2.151 2.087 14.42 17.95 333998
06.01.2005 2.15 2.085 13.8 17.95 333998
07.01.2005 2.146 2.086 13.57 17.913 333998
10.01.2005 2.146 2.087 12.92 17.958 333998
11.01.2005 2.146 2.089 13.68 17.962 333998
12.01.2005 2.145 2.085 14.05 17.886 339999
13.01.2005 2.144 2.084 13.64 17.568 339999
14.01.2005 2.144 2.085 13.57 17.471 339999
17.01.2005 2.143 2.085 13.2 17.365 339999
18.01.2005 2.144 2.085 13.17 17.214 347999
19.01.2005 2.143 2.086 13.63 17.143 354499
20.01.2005 2.144 2.087 14.17 17.125 354499
21.01.2005 2.143 2.087 13.96 17.193 354499
24.01.2005 2.143 2.086 14.11 17.283 354499
25.01.2005 2.144 2.086 13.63 17.083 354499
26.01.2005 2.143 2.086 13.32 17.348 347999
27.01.2005 2.144 2.085 12.46 17.295 352998
28.01.2005 2.144 2.084 12.81 17.219 352998
31.01.2005 2.142 2.084 12.72 17.143 352998
01.02.2005 2.142 2.083 12.36 17.125 352998
02.02.2005 2.141 2.083 12.25 17 357499
03.02.2005 2.144 2.088 12.38 16.808 357499
04.02.2005 2.142 2.084 11.6 16.817 357499
07.02.2005 2.142 2.084 11.99 16.798 359999
08.02.2005 2.141 2.083 11.92 16.804 355500
09.02.2005 2.142 2.08 12.19 16.589 355500
10.02.2005 2.14 2.08 12.04 16.5 355500
11.02.2005 2.14 2.078 11.99 16.429 355500
14.02.2005 2.139 2.078 12.52 16.042 355500
"), header = TRUE, format = "%d.%m.%Y")然后,在中间选取观测的时间指标。您可以手动完成此操作,也可以基于zooX系列:
mid <- as.Date("2005-01-24")
mid <- time(zooX)[ceiling(nrow(zooX)/2)]无论在哪种情况下,mid现在都表示2005-01-24的中间时间索引。然后我们可以建立我们的模型
f <- d(Euribor3) ~ d(Ois3) + d(CDS) + d(Vstoxx) + d(log(omo)) + d(L(Euribor3))
m1 <- dynlm(f, data = zooX, end = mid)
m2 <- dynlm(f, data = zooX, start = mid + 1)第一项现在一直持续到2005-01-24:
Time series regression with "zoo" data:
Start = 2005-01-05, End = 2005-01-24
Call:
dynlm(formula = f, data = zooX, end = mid)
Coefficients:
(Intercept) d(Ois3) d(CDS) d(Vstoxx) d(log(omo))
-0.0008859 -0.0125676 0.0001073 0.0012116 0.0124502
d(L(Euribor3))
-0.4217354 第二次从2005-01-25开始:
Time series regression with "zoo" data:
Start = 2005-01-25, End = 2005-02-14
Call:
dynlm(formula = f, data = zooX, start = mid + 1)
Coefficients:
(Intercept) d(Ois3) d(CDS) d(Vstoxx) d(log(omo))
-0.0005556 0.2565964 -0.0027670 -0.0009140 -0.0152427
d(L(Euribor3))
-0.5143080 然而,我不确定我是否会建议一个6回归系数的模型只适合14或15个观测.
https://stackoverflow.com/questions/29997978
复制相似问题