• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

16강에서 expanding()은 어떤 경우에 주로 활용하나요?

21.05.12 08:42 작성 조회수 192

1

16강에서 expanding()은 어떤 경우에 주로 활용하나요?

답변 1

답변을 작성해보세요.

0

안녕하세요.

window 값을 누적해서 사용할 때 사용합니다.

rolling의 윈도우가 20개라면 20개씩 이동하며 계산하는데 expanding은 누적해서 계산합니다.

누적이동평균(Cumulative moving average)

  • expanding을 사용합니다. window 창이 시간의 흐름에 따라 증가합니다.
In [30]:
# expanding 을 사용하면 window가 시간의 흐름에 따라 증가합니다.
df["CMA"] = df["Close"].expanding(14).mean()
In [31]:
# 누적이동평균 시각화
df[["Close", "CMA"]].plot(figsize=(10,4), title="Cumulative moving average")
Out[31]:
<matplotlib.axes._subplots.AxesSubplot at 0x7fc0db083a90>

아래 내용은 제 다른강의(bit.ly/inflearn-finace-data)에서 가져온 내용인데 아래 링크에서 소스코드를 함께 보실 수 있습니다.

[finance-data-analysis/6.1 일별 수익률과 이동평균-output.ipynb at main · corazzon/finance-data-analysis](https://github.com/corazzon/finance-data-analysis/blob/main/6.1%20%EC%9D%BC%EB%B3%84%20%EC%88%98%EC%9D%B5%EB%A5%A0%EA%B3%BC%20%EC%9D%B4%EB%8F%99%ED%8F%89%EA%B7%A0-output.ipynb)

이동평균

통계학에서 이동평균(롤링평균 또는 이동평균)은 전체 데이터 집합의 여러 하위 집합에 대한 일련의 평균을 만들어 데이터 요소를 분석하는 계산이다. 이동산술평균 (Moving Mean) 또는 롤링산술평균(Rolling Mean)이라고도 한다.

일련의 연속된 숫자와 고정된 부분 집합 크기가 주어지면, 이동 평균의 첫 번째 요소는 연속된 숫자의 첫 고정 부분 집합의 평균을 취하여 구한다. 그런 다음 "앞으로 이동"하여 하위 집합을 변경한다. 즉, 부분 집합의 첫 번째 숫자를 제외하고 연속된 숫자의 다음 값을 포함시킨다.

rolling

  • window : 몇 개의 데이터를 가지고 연산을 할 것인지 결정
    • 의미 : window가 클수록 부드러운 선의 형태를 가지고 있음 window가 center에 있지 않으면 window는 클수록 위상 차가 큼
  • min_periods : 최소한 몇 개의 데이터가 있어야 연산을 할 것인지 결정
    • --> window 안의 데이터가 min_periods보다 적다면, 결과는 NaN
  • center : window의 위치를 window 끝으로 할 것인지 중간으로 할 것 인지 결정
    • 의미 : 시계열 데이터에서는 window를 중간으로 할 수 없다(미래의 데이터는 볼 수 없기 때문에)

expanding

  • window : expanding에서는 window를 결정하지 않음
    • 왜냐하면 window의 크기가 순차적으로 증가하기 때문
  • min_periods : 최소한 몇 개의 데이터가 있어야 연산을 할 것인지 결정
    • --> 이것은 rolling과 같음
  • expanding에서의 sum()은 cumsum() 연산과 동일하게 진행되나 NaN 이 있을 경우 expanding은 무난하게 처리할 수 있음
  • 연산을 sum()으로 했을 경우, cumsum()과 같은 의미가 있음