以两种不同的方式绘制相同的数据,获得不同的结果(点阵xyplot)

of

我正在尝试生成一些数据的散点图。我用两种不同的方式进行操作,如下面的代码所示(大多数代码只是在排列数据,唯一的图形部分在底部)。一个使用对工作空间中变量的直接引用,另一个使用数据首先排列到xts对象中,然后使用列索引来引用它们。

即使我检查了两种方法的源数据是否相同,最终的散点图也有所不同。

我想知道为什么这些情节有所不同,在此先感谢。

# Get data
# =============
library('quantmod')

# Set monthly time interval
StartPeriod = paste0("1980-01")
EndPeriod = paste0("2014-07")
DateString = paste0(StartPeriod,"/", EndPeriod)

# CPI (monthly)
getSymbols("CPIAUCSL", src="FRED")

 # QoQ growth, Annualized
 CPIAUCSL = ((CPIAUCSL/lag(CPIAUCSL))^4-1)*100
 CPIAUCSL = CPIAUCSL[DateString]

# Oil prices (monthly)
getSymbols(c("MCOILWTICO"), src="FRED")

 # QoQ growth, annualized
 MCOILWTICO = ((MCOILWTICO/lag(MCOILWTICO))^4-1)*100
 MCOILWTICO = MCOILWTICO[DateString]


# Produce plots
# ===============
library('lattice')
# Method 1, direct reference
xyplot(CPIAUCSL~lag(MCOILWTICO,1), ylim=c(-5,6), 
   ylab="CPI", 
   xlab="Oil Price, 1 month lag",
   main="Method 1: Inflation vs. Lagged Oil Price",
   grid=TRUE)


# Method 2, refer to column indices of xts object
basket = merge(CPIAUCSL, MCOILWTICO)
xyplot(basket[ ,1] ~ lag(basket[ ,2],1), ylim=c(-5, 6), 
   ylab="CPI", 
   xlab="Oil Price, 1 month lag",
   main="Method 2: Inflation vs. Lagged Oil Price",
   grid=TRUE)


# Double check data fed into plots is the same
View(merge(CPIAUCSL, lag(MCOILWTICO,1)))
View(merge(basket[ ,1], lag(basket[ ,2],1))) # yes, matches
塔玛斯·费伦奇(Tamas Ferenci)

方法1绝对是不正确的,因为它将相距6年!例如,CPIAUCSL[3]是1980-03-01的数据,而lag(MCOILWTICO,1)[3]对应于1986-03-01的数据-但是,在散点图上,它们将配对!相比之下,basket[ ,1][3]basket[ ,2][3]同属1980年3月1日。

(您的仔细检查并没有显示问题,因为您在那里使用了merge-而不是方法1!解决了问题。)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

两种方式-两种不同的结果

来自分类Dev

为什么通过以两种相似的方式向fmincon输入约束来获得不同的解决方案?

来自分类Dev

为什么通过以两种相似的方式向fmincon输入约束来获得不同的解决方案?

来自分类Dev

GRU 相同的配置但以两种不同的方式在 tensorflow 中产生两种不同的输出

来自分类Dev

Firebase 以两种不同的方式获取子数据

来自分类Dev

两种不同布局的相同 CSS

来自分类Dev

通过两种不同的方式用相同的参数调用fopen后,返回值不同

来自分类Dev

如何在iGraph中用两种不同的颜色绘制相同的图形两次

来自分类Dev

使用相同的参数初始化两个Python类,获得不同的结果

来自分类Dev

Zeppelin - 两次相同的 show(),两种不同的结果

来自分类Dev

使用相同的数字在R中获得两种不同的均值

来自分类Dev

为什么结果代码与声明通用类的两种方式不同

来自分类Dev

正则表达式,两种方式,不同的结果。

来自分类Dev

正则表达式,两种方式,不同的结果。

来自分类Dev

Flutter - 如何使用相同的未来获得不同的结果?

来自分类Dev

为什么从相同数学表达式的两种形式[javascript]中得到不同的结果?

来自分类Dev

无法通过两种方式获得相同的文件编号

来自分类Dev

Ruby on Rails - 针对相同数据的两种不同过滤器

来自分类Dev

以两种不同方式显示表单

来自分类Dev

类型类的实例有两种不同的方式

来自分类Dev

定义构造函数的两种不同方式

来自分类Dev

与堆的两种不同实现方式混淆

来自分类Dev

WPF以两种不同的方式显示内容

来自分类Dev

JavaScript中两种不同的函数调用方式

来自分类Dev

启动服务的两种不同方式。为什么?

来自分类Dev

以两种不同方式处理SIGALRM

来自分类Dev

为结构分配内存,有两种不同的方式?

来自分类Dev

以两种不同的方式创建简单的指令

来自分类Dev

SQL - 以两种不同方式关联的查询表

Related 相关文章

  1. 1

    两种方式-两种不同的结果

  2. 2

    为什么通过以两种相似的方式向fmincon输入约束来获得不同的解决方案?

  3. 3

    为什么通过以两种相似的方式向fmincon输入约束来获得不同的解决方案?

  4. 4

    GRU 相同的配置但以两种不同的方式在 tensorflow 中产生两种不同的输出

  5. 5

    Firebase 以两种不同的方式获取子数据

  6. 6

    两种不同布局的相同 CSS

  7. 7

    通过两种不同的方式用相同的参数调用fopen后,返回值不同

  8. 8

    如何在iGraph中用两种不同的颜色绘制相同的图形两次

  9. 9

    使用相同的参数初始化两个Python类,获得不同的结果

  10. 10

    Zeppelin - 两次相同的 show(),两种不同的结果

  11. 11

    使用相同的数字在R中获得两种不同的均值

  12. 12

    为什么结果代码与声明通用类的两种方式不同

  13. 13

    正则表达式,两种方式,不同的结果。

  14. 14

    正则表达式,两种方式,不同的结果。

  15. 15

    Flutter - 如何使用相同的未来获得不同的结果?

  16. 16

    为什么从相同数学表达式的两种形式[javascript]中得到不同的结果?

  17. 17

    无法通过两种方式获得相同的文件编号

  18. 18

    Ruby on Rails - 针对相同数据的两种不同过滤器

  19. 19

    以两种不同方式显示表单

  20. 20

    类型类的实例有两种不同的方式

  21. 21

    定义构造函数的两种不同方式

  22. 22

    与堆的两种不同实现方式混淆

  23. 23

    WPF以两种不同的方式显示内容

  24. 24

    JavaScript中两种不同的函数调用方式

  25. 25

    启动服务的两种不同方式。为什么?

  26. 26

    以两种不同方式处理SIGALRM

  27. 27

    为结构分配内存,有两种不同的方式?

  28. 28

    以两种不同的方式创建简单的指令

  29. 29

    SQL - 以两种不同方式关联的查询表

热门标签

归档