使用dynlm和lm的不同回归输出

迈克尔·B

我首先使用lm,然后使用dynlm(来自包dynlm进行了回归这是我所做的lm

Euribor3t <- ts(diff(Euribor3))
OIS3t <- ts(diff(Ois3))
x <- ts(diff(Eurepo3-Ois3))
Vstoxxt <- ts(diff(Vstoxx))
CDSt <- ts(diff(CDS))
omo2 <- ts(diff(log(Open.Market.Operations)))
l1 <- (lag(Euribor3t, k=-1))
axx <- ts.intersect(Euribor3t, OIS3t, x, Vstoxxt, CDSt, omo2, l1)
reg1 <- lm(Euribor3t~OIS3t+CDSt+x+Vstoxxt+omo2+l1, data=axx)
summary(reg1)

和为dynlm

zooX = zoo(test[, -1])
lmx <- dynlm(d(Euribor3)~d(Ois3)+d(CDS)+d(Eurepo3-Ois3)+d(Vstoxx)+d(log(Open.Market.Operations))+d(L(Euribor3, 1)), data=zooX)
summary(lmx)

这两种方法给我完全相同的输出。但是,如果我在从1到24的两个回归中都添加了一个子集(所有其他条件都相等):

Euribor3t <- ts(diff(Euribor3))
OIS3t <- ts(diff(Ois3))
x <- ts(diff(Eurepo3-Ois3))
Vstoxxt <- ts(diff(Vstoxx))
CDSt <- ts(diff(CDS))
omo2 <- ts(diff(log(Open.Market.Operations)))
l1 <- (lag(Euribor3t, k=-1))
axx <- ts.intersect(Euribor3t, OIS3t, x, Vstoxxt, CDSt, omo2, l1)
reg1 <- lm(Euribor3t~OIS3t+CDSt+x+Vstoxxt+omo2+l1, data=axx, subset=1:24)
summary(reg1)

zooX = zoo(test[, -1])
lmx <- dynlm(d(Euribor3)~d(Ois3)+d(CDS)+d(Eurepo3-Ois3)+d(Vstoxx)+d(log(Open.Market.Operations))+d(L(Euribor3, 1)), data=zooX[1:24])
summary(lmx)

两个输出互不相同。导致我的回归输出出现偏差的问题可能是什么?

这是我尝试过的数据样本:

    Date    Euribor3    Ois3    Eurepo3 Vstoxx  CDS Open.Market.Operations
1   03.01.2005  2.154   2.089   2.09    14.47   17.938  344999
2   04.01.2005  2.151   2.084   2.09    14.51   17.886  344999
3   05.01.2005  2.151   2.087   2.08    14.42   17.950  333998
4   06.01.2005  2.150   2.085   2.08    13.80   17.950  333998
5   07.01.2005  2.146   2.086   2.08    13.57   17.913  333998
6   10.01.2005  2.146   2.087   2.08    12.92   17.958  333998
7   11.01.2005  2.146   2.089   2.08    13.68   17.962  333998
8   12.01.2005  2.145   2.085   2.08    14.05   17.886  339999
9   13.01.2005  2.144   2.084   2.08    13.64   17.568  339999
10  14.01.2005  2.144   2.085   2.08    13.57   17.471  339999
11  17.01.2005  2.143   2.085   2.08    13.20   17.365  339999
12  18.01.2005  2.144   2.085   2.08    13.17   17.214  347999
13  19.01.2005  2.143   2.086   2.08    13.63   17.143  354499
14  20.01.2005  2.144   2.087   2.08    14.17   17.125  354499
15  21.01.2005  2.143   2.087   2.08    13.96   17.193  354499
16  24.01.2005  2.143   2.086   2.08    14.11   17.283  354499
17  25.01.2005  2.144   2.086   2.08    13.63   17.083  354499
18  26.01.2005  2.143   2.086   2.08    13.32   17.348  347999
19  27.01.2005  2.144   2.085   2.08    12.46   17.295  352998
20  28.01.2005  2.144   2.084   2.08    12.81   17.219  352998
21  31.01.2005  2.142   2.084   2.08    12.72   17.143  352998
22  01.02.2005  2.142   2.083   2.08    12.36   17.125  352998
23  02.02.2005  2.141   2.083   2.08    12.25   17.000  357499
24  03.02.2005  2.144   2.088   2.08    12.38   16.808  357499
25  04.02.2005  2.142   2.084   2.08    11.60   16.817  357499
26  07.02.2005  2.142   2.084   2.08    11.99   16.798  359999
27  08.02.2005  2.141   2.083   2.08    11.92   16.804  355500
28  09.02.2005  2.142   2.080   2.08    12.19   16.589  355500
29  10.02.2005  2.140   2.080   2.08    12.04   16.500  355500
30  11.02.2005  2.140   2.078   2.08    11.99   16.429  355500
31  14.02.2005  2.139   2.078   2.08    12.52   16.042  355500
Javlacalle

您不允许dynlm使用与中相同数量的数据lm后一个模型包含较少的两个观测值。

dim(model.frame(reg1))
# [1] 24  7
dim(model.frame(lmx))
# [1] 22  7

原因是lm您要使用整个数据集(31个观测值)来转换变量(差分),而dynlm您只传递24个观测值,因此dynlm将对24个观测值进行差分。由于差异之后丢失了观测值,因此两种情况下所得的行数都不相同。

dylm你应该使用data=zooX[1:26]这样,使用相同的子集并获得相同的结果:

reg1 <- lm(Euribor3t~OIS3t+CDSt+x+Vstoxxt+omo2+l1, data=axx, subset=1:24)
lmx <- dynlm(d(Euribor3)~d(Ois3)+d(CDS)+d(Eurepo3-Ois3)+d(Vstoxx)+
  d(log(Open.Market.Operations))+d(L(Euribor3, 1)), data=zooX[1:26])
all.equal(as.vector(fitted(reg1)), as.vector(fitted(lmx)))
# [1] TRUE
all.equal(coef(reg1), coef(lmx), check.attributes=FALSE)
# [1] TRUE

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用lm的R中的线性回归:函数中的不同汇总输出

使用lm()和scale()的标准化回归系数与使用lm.beta()或cor()的标准化回归系数不同

使用lm()和predict()进行滚动回归和预测

使用带有分类变量的r输出中的lm()进行多元线性回归是不完整的?

使用ImageDataGenerator与回归输出

幂回归中stat_smooth和lm(使用对数)之间的R差异?

使用broom和tidyverse对不同的因变量进行回归

lm()的输出与R中的回归平面方程之间的联系

使用 dplyr 存储回归的输出

在不同的输出上使用nohup和时间

R线性回归中roll_lm和lm之间的差异

使用lm函数回归时遇到麻烦

使用lm()进行长格式与宽格式的线性回归

使用 skorch 和 sklearn 管道的多输出回归由于 dtype 导致运行时错误

使用Nest和Tidy在RMarkdown中创建格式化的html回归输出

了解optim()和lm()的不同结果

在c + +中使用和不使用'break'时的不同输出

使用scipy.stats和statsmodels计算线性回归时的结果不同

使用张量流的线性回归每次给出不同的权重和成本

即使使用相同的数据,Keras训练和验证指标的值也不同(逻辑回归)

使用R和Python的不同多项式回归系数

r遍历data.frame以使用不同的DV和权重运行相同的回归

如何使用RoBERTa执行多输出回归?

在R中绘制回归输出时,指定不同组的终点

使用readline()时,“运行”和“调试”的输出不同

使用NodaTime解析输入和输出不同的dateTime格式

使用点积的脚本和控制台中的输出不同

在PHP中使用PorterStemmer后的输入数组和不同的输出

AWK-了解使用FILENAME和OFS获得的不同输出