随时间变化的二元相关图

时间:2014-05-09 14:42:46

标签: r time-series correlation

我想绘制时间步长的二元相关性,以便x轴是时间,y轴是二元相关系数。 airquality数据可以作为一个很好的例子。在这种情况下,我想绘制Ozone&TempOzone&Wind之间Day之间的相关性。谢谢!

data(airquality)

相关矩阵如下所示:

            Ozone Solar.R  Wind  Temp Month   Day
Ozone    1.00    0.35 -0.60  0.70  0.16 -0.01
Solar.R  0.35    1.00 -0.06  0.28 -0.08 -0.15
Wind    -0.60   -0.06  1.00 -0.46 -0.18  0.03
Temp     0.70    0.28 -0.46  1.00  0.42 -0.13
Month    0.16   -0.08 -0.18  0.42  1.00 -0.01
Day     -0.01   -0.15  0.03 -0.13 -0.01  1.00

1 个答案:

答案 0 :(得分:5)

每天只进行一次观察,无法计算相关性。 但您可以计算移动窗口的相关性,例如rollapply

# Convert the data to time series
library(zoo)
d <- zoo( 
  airquality, 
  sprintf( "%02i-%02i", airquality$Month, airquality$Day ) 
)

# Compute the correlations
r <- rollapply( 
  d, 
  width = 7, 
  FUN = function(u) c( 
    cor(u[,"Ozone"], u[,"Temp"], use="pairwise"), 
    cor(u[,"Ozone"], u[,"Wind"], use="pairwise") 
  ), 
  by.column = FALSE,
  align = "right"
)

# Plot
matplot( 1:nrow(r), r, type="l", lwd=3, lty=1, axes=FALSE )
axis(2, las=1)
axis(1, at=1:nrow(r), labels=index(r), las=2)
box()