여러 줄 시계열에 대해 두 시계열 간의 상관 관계를 플롯에 표시합니다.

mlachans

두 개의 시계열이 표시된 그래픽이 많이 있습니다.

즉, 공통 날짜 집합에 대해 y_1과 y_2의 플롯이 하나 있습니다.

각 플롯에 대해 각 시리즈 쌍 사이의 플롯에 대한 상관 관계를 제시하고 싶습니다. 즉, cor (y_1, y_2)를 계산하고 각 플롯에 결과 숫자를 포함하고 싶습니다.

이것은 ggplot2에서 원칙적으로 수행하기가 놀랍도록 어렵습니다. 지금까지 stat_cor를 사용하여 간단한 방법을 찾지 못했습니다.

이 작업에 권장되는 다른 함수를 이미 살펴 보았지만 모두 y_1과 y_2가 시간에 대해 플롯되는 것이 아니라 y_1이 y_2에 대해 플롯되는 상황에서 y_1과 y_2의 상관 관계를보고하도록 설계되었습니다.

이 작업을 수행하는 ggplot2 방식을 선호하지만 R 내에서 그래픽 소프트웨어를 사용할 수 있습니다. 여기에 최소한의 작업 예제와 제가 시도한 코드가 있습니다.

library(reprex); library(ggplot2); library(ggpubr)
n <- 6; 
Q=sample(18:30, n, replace=TRUE)

# make sample data
dat <- data.frame(id=1:n, 
                  date=seq.Date(as.Date("2020-12-26"), as.Date("2020-12-31"), "day"),
                  group=rep(LETTERS[1:2], n/2),
                  quantity= Q,
                  price= 100 - 2*Q + rnorm(n))
dat
#>   id       date group quantity    price
#> 1  1 2020-12-26     A       19 63.02628
#> 2  2 2020-12-27     B       26 49.66597
#> 3  3 2020-12-28     A       27 44.98031
#> 4  4 2020-12-29     B       24 51.11224
#> 5  5 2020-12-30     A       29 41.11129
#> 6  6 2020-12-31     B       28 43.04494

tseriesplot <- ggplot(dat, aes(x = date)) + ggtitle("Oil: Daily Quantity and Price") +
                  geom_line(aes(y = Q, color = "Quantity (thousands of barrels)")) +
                  geom_line(aes(y = price, color = "Price"))
  
tseriesplot


# naive attempt fails
tseriesplot + stat_cor(data = dat, aes(x=quantity, y=price),method="pearson")
#> Error: Invalid input: date_trans works with objects of class Date only

reprex 패키지 (v0.3.0)에 의해 2021-01-05에 생성됨

https://stat.ethz.ch/pipermail/r-help/2020-July/467805.html과 같이 다른 곳에서 더 복잡한 질문과 비슷 하지만 훨씬 더 기본적인 질문이므로 좋은 질문이라고 생각했습니다 .

G. Grothendieck

1) 주석txt 플롯하려는 텍스트 를 만든 다음 다음을 사용하십시오 annotate.

txt <- with(dat, sprintf("cor: %.2f", cor(quantity, price)))
tseriesplot + 
  annotate("text", label = txt, x = min(dat$date), y = max(dat$quantity, dat$price), 
    hjust = -0.1)

screenshot

2) grid.text Another approach is to use grid graphics which allows one to specify the location independently of the data. Using txt from above:

library(grid)

tseriesplot
grid.text(txt, 0.1, 0.9)

3a) zoo This would also work:

library(zoo)

z <- read.zoo(dat[c("date", "price", "quantity")])
txt <- sprintf("cor: %.2f", cor(z)[2])
autoplot(z, facet = NULL) +
  annotate("text", label = txt, x = start(z), y = max(z), hjust = -0.1)

3b) scale

or you could scale the variables as that does not affect the correlation:

z <- scale(z)
autoplot(z, facet = NULL) +
  annotate("text", label = txt, x = start(z), y = max(z), hjust = -0.1)

Discussion

Overall putting together parts of different solutions this seems the most compact

library(zoo)
library(grid)

z <- read.zoo(dat[c("date", "price", "quantity")])
autoplot(z, facet = NULL)
grid.text(sprintf("cor: %.2f", cor(z)[2]), 0.1, 0.9)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

pandas를 사용하여 두 시계열의 교차점 간의 상관 관계를 계산합니다.

분류에서Dev

R의 여러 열에 대해 반복되는 두 열의 관측 값 합계

분류에서Dev

시계열에 대한 롤링 상관 관계 계산

분류에서Dev

매우 높은 차원의 Python에서 일대 다 시계열 상관 관계

분류에서Dev

두 개의 열, 일종의 모니터 ID #를 상관시키고 R에서 상관 관계를 나열하는 벡터를 반환합니다.

분류에서Dev

여러 시계열의 각 시계열 서브 플롯에 수직선 추가

분류에서Dev

해상도가 다른 두 시계열 간의 최대 차이

분류에서Dev

Matplotlib : 여러 시계열에 대한 서브 플롯 생성

분류에서Dev

열에 대한 postgresql 표시 상관 관계

분류에서Dev

일대 다 관계에서 일치하는 행의 총 수를 표시하는 계산 된 열을 추가하려면 어떻게해야합니까?

분류에서Dev

두 점 상관 관계를 위해 이미지를 Python에서 좌표의 2D 배열로 변환

분류에서Dev

두 점 상관 관계를 위해 이미지를 Python에서 좌표의 2D 배열로 변환

분류에서Dev

R에서 시계열의 자기 상관 계산

분류에서Dev

기호 나 문자열, 레일에 관계없이 두 해시를 비교합니다.

분류에서Dev

를 사용하여 두 개의 열을 통해 하위 쿼리 상관 관계

분류에서Dev

Pandas에서 두 문자열 간의 상관 관계를 찾는 방법

분류에서Dev

대화에서 서로 다른 두 스키마 간의 관계를 표시하는 방법

분류에서Dev

R의 시계열 플롯 : 플롯에서 간격 제거 [zoo]

분류에서Dev

df의 시간 간격에 대한 관측 값 합계 계산

분류에서Dev

R에서 하나의 그래프에 시계열의 여러 플롯

분류에서Dev

r의 두 열에 따라 매 시간의 순 가치를 계산합니다.

분류에서Dev

R에서 상대 시계열 계산

분류에서Dev

Rebus의 여러 속성에 대한 상관 관계가 가능합니까?

분류에서Dev

시계열-상관 관계 및 지연 시간

분류에서Dev

시계열-상관 관계 및 지연 시간

분류에서Dev

상관 관계의 잘못된 시각적 플롯 표현

분류에서Dev

시차가있는 두 변수 간의 상관 관계를 얻는 방법

분류에서Dev

Entity Framework Code First를 사용하여 두 엔터티간에 여러 일대 다 관계를 갖는 방법

분류에서Dev

여러 열에 대한 시계열 데이터 집계

Related 관련 기사

  1. 1

    pandas를 사용하여 두 시계열의 교차점 간의 상관 관계를 계산합니다.

  2. 2

    R의 여러 열에 대해 반복되는 두 열의 관측 값 합계

  3. 3

    시계열에 대한 롤링 상관 관계 계산

  4. 4

    매우 높은 차원의 Python에서 일대 다 시계열 상관 관계

  5. 5

    두 개의 열, 일종의 모니터 ID #를 상관시키고 R에서 상관 관계를 나열하는 벡터를 반환합니다.

  6. 6

    여러 시계열의 각 시계열 서브 플롯에 수직선 추가

  7. 7

    해상도가 다른 두 시계열 간의 최대 차이

  8. 8

    Matplotlib : 여러 시계열에 대한 서브 플롯 생성

  9. 9

    열에 대한 postgresql 표시 상관 관계

  10. 10

    일대 다 관계에서 일치하는 행의 총 수를 표시하는 계산 된 열을 추가하려면 어떻게해야합니까?

  11. 11

    두 점 상관 관계를 위해 이미지를 Python에서 좌표의 2D 배열로 변환

  12. 12

    두 점 상관 관계를 위해 이미지를 Python에서 좌표의 2D 배열로 변환

  13. 13

    R에서 시계열의 자기 상관 계산

  14. 14

    기호 나 문자열, 레일에 관계없이 두 해시를 비교합니다.

  15. 15

    를 사용하여 두 개의 열을 통해 하위 쿼리 상관 관계

  16. 16

    Pandas에서 두 문자열 간의 상관 관계를 찾는 방법

  17. 17

    대화에서 서로 다른 두 스키마 간의 관계를 표시하는 방법

  18. 18

    R의 시계열 플롯 : 플롯에서 간격 제거 [zoo]

  19. 19

    df의 시간 간격에 대한 관측 값 합계 계산

  20. 20

    R에서 하나의 그래프에 시계열의 여러 플롯

  21. 21

    r의 두 열에 따라 매 시간의 순 가치를 계산합니다.

  22. 22

    R에서 상대 시계열 계산

  23. 23

    Rebus의 여러 속성에 대한 상관 관계가 가능합니까?

  24. 24

    시계열-상관 관계 및 지연 시간

  25. 25

    시계열-상관 관계 및 지연 시간

  26. 26

    상관 관계의 잘못된 시각적 플롯 표현

  27. 27

    시차가있는 두 변수 간의 상관 관계를 얻는 방법

  28. 28

    Entity Framework Code First를 사용하여 두 엔터티간에 여러 일대 다 관계를 갖는 방법

  29. 29

    여러 열에 대한 시계열 데이터 집계

뜨겁다태그

보관