R에서 이동 평균을 계산하는 방법(예 포함)
시계열 분석에서 이동 평균은 여러 이전 기간의 평균 값을 나타냅니다.
R에서 이동 평균을 계산하는 가장 쉬운 방법은 Zoo 패키지의 Rollmean() 함수를 사용하는 것입니다.
library (dplyr) library (zoo) #calculate 3-day rolling average df %>% mutate(rolling_avg = rollmean(values, k= 3 , fill=NA, align=' right '))
이 특정 예에서는 Values 열에 대한 3 일 이동 평균을 계산합니다.
다음 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.
예: R에서 이동 평균 계산
연속 10일 동안 제품 판매량을 보여주는 다음과 같은 데이터 프레임이 R에 있다고 가정해 보겠습니다.
#create data frame df <- data. frame (day=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), sales=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19)) #view data frame df day sales 1 1 25 2 2 20 3 3 14 4 4 16 5 5 27 6 6 20 7 7 12 8 8 15 9 9 14 10 10 19
다음 구문을 사용하여 데이터 프레임의 각 행에 이전 3일 동안의 이동 평균 매출 값을 표시하는 avg_sales3 이라는 새 열을 만들 수 있습니다.
library (dplyr)
library (zoo)
#calculate 3-day rolling average of sales
df %>%
mutate(avg_sales3 = rollmean(sales, k= 3 , fill=NA, align=' right '))
day sales avg_sales3
1 1 25 NA
2 2 20 NA
3 3 14 19.66667
4 4 16 16.66667
5 5 27 19.00000
6 6 20 21.00000
7 7 12 19.66667
8 8 15 15.66667
9 9 14 13.66667
10 10 19 16.00000
참고 : Rollmean() 함수의 k 값은 이동 평균을 계산하는 데 사용된 이전 기간 수를 제어합니다.
avg_sales3 열에는 이전 3개 기간의 이동 평균 매출 값이 표시됩니다.
예를 들어, 19.66667 의 첫 번째 값은 다음과 같이 계산됩니다.
3일 이동평균 = (25 + 20 + 14) / 3 = 19.66667
mutate() 함수 내에서 여러 개의 rollmean() 함수를 사용하여 여러 이동 평균을 한 번에 계산할 수도 있습니다.
예를 들어, 다음 코드는 3일 및 4일 매출 이동 평균을 계산하는 방법을 보여줍니다.
library (dplyr)
library (zoo)
#calculate 3-day and 4-day rolling average of sales
df %>%
mutate(avg_sales3 = rollmean(sales, k= 3 , fill=NA, align=' right '),
avg_sales4 = rollmean(sales, k= 4 , fill=NA, align=' right '))
day sales avg_sales3 avg_sales4
1 1 25 NA NA
2 2 20 NA NA
3 3 14 19.66667 NA
4 4 16 16.66667 18.75
5 5 27 19.00000 19.25
6 6 20 21.00000 19.25
7 7 12 19.66667 18.75
8 8 15 15.66667 18.50
9 9 14 13.66667 15.25
10 10 19 16.00000 15.00
avg_sales3 및 avg_sales4 열에는 각각 3일 및 4일 이동 평균 매출이 표시됩니다.
추가 리소스
다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.