2014-05-09 36 views
0

我想繪製時間步長的雙變量相關圖,以便x軸是時間,y軸是雙變量相關係數。 airquality數據就是一個很好的例子。在這種情況下,我想通過Day來繪製Ozone&TempOzone&Wind之間的相關性。謝謝!隨時間變化的雙變量相關圖

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 

回答

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() 
+0

謝謝,對不起,我沒有提到移動窗口。這正是我想要的。 –