R에서 슬라이딩 상관관계를 계산하는 방법
롤링 상관관계는 슬라이딩 윈도우에 대한 두 시계열 간의 상관관계입니다. 이러한 유형의 상관 관계의 이점 중 하나는 시간 경과에 따른 두 시계열 간의 상관 관계를 시각화할 수 있다는 것입니다.
이 튜토리얼에서는 R에서 롤링 상관 관계를 계산하는 방법을 설명합니다.
R에서 롤링 상관 관계를 계산하는 방법
15개월 동안 두 가지 제품( x 및 y )에 대해 판매된 총 제품 수를 표시하는 다음 데이터 프레임이 있다고 가정합니다.
#create data data <- data.frame(month=1:15, x=c(13, 15, 16, 15, 17, 20, 22, 24, 25, 26, 23, 24, 23, 22, 20), y=c(22, 24, 23, 27, 26, 26, 27, 30, 33, 32, 27, 25, 28, 26, 28)) #view first six rows head(data) month xy 1 1 13 22 2 2 15 24 3 3 16 23 4 4 15 27 5 5 17 26 6 6 20 26
R에서 롤링 상관관계를 계산하려면 Zoo 패키지의 Rollapply() 함수를 사용할 수 있습니다.
이 함수는 다음 구문을 사용합니다.
Rollapply(데이터, 너비, FUN, by.column=TRUE)
금:
- data: 데이터 프레임의 이름
- width: 슬라이딩 상관 관계에 대한 창 너비를 지정하는 정수
- FUN : 적용할 기능입니다.
- by.column: 각 컬럼에 별도로 함수를 적용할지 여부를 지정합니다. 기본적으로 TRUE이지만 롤링 상관 관계를 계산하려면 FALSE로 지정해야 합니다.
다음은 이 함수를 사용하여 제품 x 와 제품 y 간 매출의 3개월 이동 상관 관계를 계산하는 방법입니다.
#calculate 3-month rolling correlation between sales for x and y rollapply(data, width=3, function (x) cor(x[,2],x[,3]), by.column= FALSE ) [1] 0.6546537 -0.6933752 -0.2401922 -0.8029551 0.8029551 0.9607689 [7] 0.9819805 0.6546537 0.8824975 0.8170572 -0.9449112 -0.3273268 [13] -0.1889822
이 함수는 지난 3개월 동안 두 제품의 판매량 간의 상관 관계를 반환합니다. 예를 들어:
- 1~3개월의 매출 상관관계는 0.6546537 이었습니다.
- 2~4개월의 매출 상관관계는 -0.6933752였습니다.
- 3~5개월의 매출 상관관계는 -0.2401922였습니다.
등등.
이 공식을 쉽게 조정하여 다른 기간에 대한 롤링 상관 관계를 계산할 수 있습니다. 예를 들어, 다음 코드는 두 제품 간 매출의 6개월 이동 상관 관계를 계산하는 방법을 보여줍니다.
#calculate 6-month rolling correlation between sales for x and y rollapply(data, width=6, function (x) cor(x[,2],x[,3]), by.column= FALSE ) [1] 0.5587415 0.4858553 0.6931033 0.7564756 0.8959291 0.9067715 0.7155418 [8] 0.7173740 0.7684468 0.4541476
이 함수는 지난 6개월 동안 두 제품 판매 간의 상관 관계를 반환합니다. 예를 들어:
- 1~6개월의 매출 상관관계는 0.5587415 였습니다.
- 2~7개월의 매출 상관관계는 0.4858553이었습니다.
- 3~8개월의 매출 상관관계는 0.6931033이었습니다.
등등.
코멘트
Rollapply() 함수를 사용할 때 다음 사항에 유의하세요.
- 상관관계를 계산하려면 너비 (예: 드롭다운 창)가 3보다 크거나 같아야 합니다.
- 위 수식에서는 상관 관계를 계산하려는 두 열이 위치 2 와 3 에 있었기 때문에 cor(x[,2],x[3]) 을 사용했습니다. 관심 있는 열이 다른 위치에 있는 경우 이 숫자를 조정하십시오.
관련 항목: Excel에서 롤링 상관관계를 계산하는 방법