실제 데이터 세트에서 영감을 얻은 시계열 및 추세 분석 과제


작성자별 이미지 | 칸바
# 소개
시계열 데이터는 어디에나 있습니다. 주가는 매일 급등합니다. 온도가 변합니다. 웹사이트 트래픽이 급증하고 충돌합니다. 대부분의 사람들은 선을 그립니다. 그런 다음 그들은 멈춥니다.
그러나 단일 차트로는 알 수 없는 내용이 있습니다. 추세가 가속화되고 있습니까? 속도를 늦추고 있나요? 완전히 반전되려나요?
이 기사에서는 세 가지 보완적인 기술을 사용하여 실제 인플레이션 기대치를 분석합니다. 이동 평균, 전년 대비 변화그리고 볼린저밴드.


작성자별 이미지
각 방법은 동일한 데이터에 대한 서로 다른 질문에 답합니다. 이동 평균은 추세 방향을 밝혀내고, 전년 대비 변화는 모멘텀 변화를 강조하며, 볼린저 밴드는 극단적인 움직임의 기간을 드러냅니다.
이러한 기술을 사용하여 2020년 10월부터 2025년 10월까지 5년간 인플레이션 데이터 추세를 분석합니다.
# 데이터 세트 이해: 10년 손익 분기점 인플레이션율 디코딩
데이터세트를 이해하려면 먼저 데이터세트의 기반이 되는 측정항목인 10년 손익분기 인플레이션율(T10YIE)을 이해해야 합니다.
T10YIE는 향후 10년간 시장의 인플레이션 기대치를 나타냅니다. 간단한 계산: 일반 국채 수익률에서 인플레이션 보호 국채 수익률을 뺍니다.
// 그것은 무엇을 의미합니까?
T10YIE = 2.5%인 경우 시장에서는 10년 동안 연평균 2.5%의 인플레이션을 예상합니다. 값이 높을수록 인플레이션 기대가 더 강하다는 것을 의미합니다. 값이 낮을수록 인플레이션이나 디플레이션에 대한 우려가 약하다는 것을 의미합니다.
// 경제학자들과 연준이 매처럼 이 금리를 지켜보는 이유
연준은 이 지표를 면밀히 관찰하고 있습니다. 손익분기점 상승은 인플레이션 우려가 촉발될 수 있다는 신호입니다. 연준의 금리 인상. 급격한 하락은 경기 침체에 대한 두려움이나 디플레이션 압력을 나타낼 수 있습니다.
// 한 눈에 보는 데이터: 5년간의 인플레이션 예상(2020~2025)
이제 우리는 이것 데이터세트.


스크린샷 | 프레드
“다운로드”를 클릭하여 파일을 컴퓨터에 저장하세요.
유사한 실제 데이터세트를 탐색하고 데이터 분석 및 시각화를 실습하는 데 관심이 있다면 다음을 확인하세요. 스트라타스크래치. 금융, 기술 및 공공 데이터 소스 전반에 걸쳐 사용되는 실제 데이터 세트에 액세스하기 위한 플랫폼입니다.
// 데이터 익히기: 구조, 소스 및 요약 통계
다음은 데이터세트에 대한 몇 가지 정보입니다.
- 출처: 연방준비은행 경제 데이터(FRED).
- 기간: 2020년 10월 ~ 2025년 10월(5년).
- 빈도: 일일 관찰.
- 총 관찰: 1,305개 데이터 포인트.
- 범위: 1.64% ~ 3.02%.
- 평균: 2.33%.
이 데이터 세트를 읽고 처음 몇 행을 살펴보겠습니다. 코드는 다음과 같습니다.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df= pd.read_csv("T10YIE.csv")
df.head()
출력은 다음과 같습니다.

이는 두 개의 열로만 구성된 간단한 데이터세트입니다. observation_date 그리고 T10YIE.
# 추세 분석: 시계열 통찰력을 위한 세 가지 기술
이동 평균 기법부터 시작하겠습니다.
// 기법 1: 이동 평균
이동 평균은 단기 변동을 완화합니다. 이는 근본적인 추세를 드러냅니다. 30일 이동평균을 구해 보세요. 지난 30일의 평균을 계산합니다. 결과는? 일상의 소음을 필터링하는 더 부드러운 라인.
금융시장은 혼란스럽다. 뉴스 헤드라인의 일일 요금이 급등합니다. 그들은 수익 보고서에 떨어집니다. 지정학적 사건은 그들을 옆으로 보낸다. 이동 평균은 이 모든 것을 해결합니다. 그들은 혼돈 속에서 실제 추세 방향을 보여줍니다.
유형:
- 단기 MA(30일): 최근 교대조를 포착합니다.
- 장기 MA(90일): 더 넓은 추세 방향을 보여줍니다.
- 크로스오버: 매도 MA가 매수 MA 위로 교차하는 경우 = 상승 추세 신호.
코드는 다음과 같습니다.
df['T10YIE'] = df['T10YIE'].ffill()
df['MA_30'] = df['T10YIE'].rolling(window=30).mean()
df['MA_90'] = df['T10YIE'].rolling(window=90).mean()
plt.figure(figsize=(15, 7))
plt.plot(df.index, df['T10YIE'], label="Daily Rate", alpha=0.4, linewidth=0.8, color="gray")
plt.plot(df.index, df['MA_30'], label="30-Day MA", linewidth=2, color="blue")
plt.plot(df.index, df['MA_90'], label="90-Day MA", linewidth=2, color="red")
plt.axvspan(0, 200, color="palegreen", alpha=0.3, label="Phase 1: Recovery")
plt.axvspan(200, 500, color="lightcoral", alpha=0.3, label="Phase 2: Volatility")
plt.axvspan(500, 1000, color="lightblue", alpha=0.3, label="Phase 3: Decline")
plt.axvspan(1000, df.index[-1], color="plum", alpha=0.3, label="Phase 4: Stabilization")
plt.title('Breakeven Inflation Rate with Highlighted Phases', fontsize=14, fontweight="bold")
plt.ylabel('Inflation Rate (%)')
plt.xlabel('Date')
plt.grid(True, alpha=0.3)
plt.legend(loc="upper right")
plt.tight_layout()
plt.show()
출력은 다음과 같습니다.

// 결과 및 해석
이동 평균은 5년간의 인플레이션 기대에 걸쳐 뚜렷한 패턴을 나타냅니다.
1단계: 급격한 회복(0~200일)
두 평균 모두 1.7%에서 2.4%로 가파르게 상승합니다. 30일 MA는 더 빠르게 상승합니다. 이 기간은 코로나 이후 경제 재개. 엄청난 재정 부양책 인플레이션 기대치를 상향 조정했다.
2단계: 변동성이 높은 기간(200~500일)
일일 금리는 400일경에 3.0%로 급등합니다. 30일 MA는 2.9%에 도달합니다. 이는 다음과 일치합니다. 2022년 인플레이션 급등. 공급망 중단 때리다. 러시아가 우크라이나를 침공했다. 에너지 가격이 폭등했다.
3단계: 쇠퇴(500~1000일)
30일 MA는 급격하게 하향 추세를 보이며 1000일 부근에 2.2%로 떨어졌습니다. 연준은 2022년과 2023년에 걸쳐 공격적으로 금리를 인상했습니다.. 정책이 효과를 발휘하면서 인플레이션 기대는 냉각되었습니다.
4단계: 최근 안정화(1000~1300일)
30일 MA는 2.3%에서 2.4% 사이를 맴돌고 있습니다. 변동이 최소화됩니다. 시장에서는 인플레이션이 정상화되고 있다는 확신을 나타냈습니다. 연준의 2% 목표. 금리인상 일시중지.
주요 통찰력
30일 이동평균선은 모든 전환점을 일찍 포착했습니다. 2021년 초 급격하게 오르자 인플레이션 급등이 뒤따랐다. 2022년 중반에 떨어지면서 냉각이 시작되었습니다. 현재의 안정성은 시장이 인플레이션 충격이 지나갔다고 믿고 있음을 의미합니다.
// 기법 2: 전년 대비 변화
전년 대비(YoY) 변화는 오늘의 가치를 1년 전 같은 날과 비교합니다. 그것은 대답합니다: “인플레이션 기대치가 12개월 전보다 높거나 낮습니까?”
이는 계절성 노이즈를 제거하고 순수한 방향성 모멘텀을 보여줍니다. 긍정적인 가치 = 매년 증가하는 기대치. 음수 값 = 전년 대비 감소하는 기대치. 0 = 평평한 추세.
다음은 YoY 변화를 계산하는 공식입니다. 여기서 \( V_t \)는 현재 가치이고 \( V_{t-365} \)는 1년(약 252 거래일) 전의 가치입니다.
$$
\text{YoY 변화} = V_t – V_{t-365}
$$
코드에서는 다음과 같습니다.
import pandas as pd
import matplotlib.pyplot as plt
df['T10YIE'] = df['T10YIE'].ffill()
# Calculating diff based on trading days (approx 252 per year)
df['YoY_Change'] = df['T10YIE'].diff(252)
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(14, 10), sharex=True)
ax1.plot(df.index, df['T10YIE'], color="blue", linewidth=1)
ax1.set_ylabel('Inflation Rate (%)')
ax1.set_title('Breakeven Inflation Rate (Original)', fontsize=12, fontweight="bold")
ax1.grid(True, alpha=0.3)
ax2.plot(df.index, df['YoY_Change'], color="darkred", linewidth=1.5)
ax2.axhline(y=0, color="black", linestyle="--", linewidth=1.5, alpha=0.7)
ax2.fill_between(df.index, df['YoY_Change'], 0,
where=(df['YoY_Change'] > 0), color="green", alpha=0.3, label="Rising YoY")
ax2.fill_between(df.index, df['YoY_Change'], 0,
where=(df['YoY_Change']
출력은 다음과 같습니다.

// 결과 및 해석
YoY 변화 차트는 인플레이션 기대치를 녹색 영역과 빨간색 영역으로 나눕니다. 녹색은 가속을 의미합니다. 빨간색은 감속을 의미합니다. 이는 모멘텀이 원래의 금리 차트를 완전히 놓쳤음을 보여줍니다.
첫 번째 그린존(250~500일)
인플레이션 기대치가 빠르게 상승했습니다. 전년 대비 변화율은 +1.0%로 최고치를 기록했습니다. 이 기간? 2021년부터 2022년까지. 공급망 붕괴. 경기부양책이 경제를 침수시켰습니다.. 러시아가 우크라이나를 침공했다. 에너지 가격이 폭등했다.
레드존(500~1000일)
기대가 무너졌습니다. 전년 대비 -0.75%로 떨어졌습니다. 연준은 2022년과 2023년에 걸쳐 공격적으로 금리를 인상했습니다.. 시장은 인플레이션이 줄어들 것이라고 믿었습니다. 그들이 옳았습니다.
두 번째 그린존(1000~1300일)
작은 긍정적인 변화가 돌아왔습니다. +0.1%에서 +0.3% 사이에서 변동했습니다. 기대가 떨어지지 않았습니다. 그들은 전년도 수준보다 안정되기 시작했습니다. 이는 패닉이 아니라 정상화를 의미합니다.
미래를 위한 신호
최근 녹색 패치는 2022년 급증에 비해 완만합니다. YoY 변화가 +0.25% 미만인가요? 기대는 여전히 고정되어 있습니다. +0.5% 이상으로 지속적인 움직임이 있습니까? 이는 주목할 만한 새로운 인플레이션 우려를 표시할 것입니다.
// 기법 3: 볼린저 밴드(변동성 봉투)
볼린저 밴드는 표준 편차를 사용하여 이동 평균 주위에 상한 및 하한 경계를 만듭니다. 밴드는 변동이 심한 기간에는 확장되고 평온한 기간에는 수축됩니다.
인플레이션 기대치가 “정상”(밴드 내부) 대 “극단”(밴드 외부)인 경우를 보여줍니다. 비율이 상단 밴드에 닿으면 비정상적으로 높습니다. 낮은 밴드에 닿으면 비정상적으로 낮습니다.
구조:
- 중간 밴드: 20일 이동 평균.
- 상위 밴드: 중간 + (2 × 표준 편차).
- 낮은 밴드: 중간 – (2 × 표준 편차).
생성된 범위는 데이터의 95%가 밴드 내에 속해야 함을 의미합니다. 이는 공식적으로 다음과 같이 표현될 수 있습니다.
$$
\text{상위} = \mu_{20} + (2 \times \sigma_{20})
$$
$$
\text{하위} = \mu_{20} – (2 \times \sigma_{20})
$$
코드는 다음과 같습니다.
df['T10YIE'] = df['T10YIE'].ffill()
window = 20
df['BB_Middle'] = df['T10YIE'].rolling(window=window).mean()
df['BB_Std'] = df['T10YIE'].rolling(window=window).std()
df['BB_Upper'] = df['BB_Middle'] + (2 * df['BB_Std'])
df['BB_Lower'] = df['BB_Middle'] - (2 * df['BB_Std'])
plt.figure(figsize=(15, 7))
plt.plot(df.index, df['T10YIE'], label="Daily Rate", color="black", linewidth=0.8)
plt.plot(df.index, df['BB_Middle'], label="20-Day MA", color="blue", linewidth=1.5)
plt.plot(df.index, df['BB_Upper'], label="Upper Band", color="red", linewidth=1, linestyle="--")
plt.plot(df.index, df['BB_Lower'], label="Lower Band", color="green", linewidth=1, linestyle="--")
plt.fill_between(df.index, df['BB_Upper'], df['BB_Lower'], alpha=0.1, color="gray")
plt.axvspan(350, 450, color="gold", alpha=0.3, label="Band Expansion (Volatility↑)")
plt.axvspan(800, 1200, color="lightblue", alpha=0.3, label="Band Contraction (Volatility↓)")
plt.axvspan(190, 210, color="lightcoral", alpha=0.5, label="Upper Breach (~Day 200)")
plt.axvspan(390, 410, color="lightcoral", alpha=0.5, label="Upper Breach (~Day 400)")
plt.axvspan(1040, 1060, color="palegreen", alpha=0.5, label="Lower Touch (~Day 1050)")
plt.title('Breakeven Inflation Rate with Bollinger Bands & Key Events', fontsize=14, fontweight="bold")
plt.ylabel('Inflation Rate (%)')
plt.xlabel('Date')
plt.grid(True, alpha=0.3)
plt.legend(loc="upper left")
plt.tight_layout()
plt.show()
출력은 다음과 같습니다.

// 결과 및 해석
볼린저 밴드는 인플레이션 기대치가 정상 대비 극단적인 시기를 식별합니다.
밴드 확장(350~450일)
일일 금리가 반복적으로 상위 밴드를 돌파하여 3.0%에 도달함에 따라 밴드는 극적으로 넓어집니다. 이 기간은 2022년 인플레이션 패닉 동안 러시아-우크라이나 전쟁 시장 변동성이 최고조에 달했을 때.
상위 대역 위반
상위 밴드(200일, 400일)가 여러 번 터치되면 시장 패닉 신호가 발생하고 기대치가 정상 범위를 넘어섰습니다. 각각의 위반은 인플레이션 우려가 가속화되고 있음을 경고했습니다.
밴드 수축(800~1200일)
밴드는 내부에 머무르는 비율로 상당히 좁아집니다. 이는 변동성이 다음과 같이 붕괴되었음을 보여줍니다. 연준의 금리 인상은 효과가 있었습니다 시장은 합의에 도달했습니다.
낮은 대역 터치(1050일)
금리는 2.05%로 잠시 하한선에 도달해 2023년 후반에 비정상적인 비관론을 예고했습니다. 경기 침체에 대한 두려움.
미래를 위한 신호
현재 협대역과 안정적인 금리(2.35%)는 정상적인 시장 행동을 나타냅니다. 2.5%를 넘는 새로운 상위 대역 위반은 새로운 인플레이션 우려를 신호할 것입니다.
# 다른 기술, 다른 이야기
추세 분석은 미래를 예측하는 것이 아닙니다. 그것은 데이터가 당신에게 말하는 것을 이해하는 것입니다. 2020년부터 2025년까지 10년 손익분기점 인플레이션율은 각 기법을 사용하여 서로 다른 패턴을 나타냈습니다.
러시아-우크라이나 침공이나 에너지 위기와 같은 글로벌 사건이 모든 분석에 영향을 미치더라도 각 기술은 그 영향을 다르게 해석합니다. 이동 평균은 점진적인 추세 변화를 보여줄 수 있고, 전년 대비 변화는 급격한 모멘텀 변동을 강조할 수 있으며, 볼린저 밴드는 같은 기간을 변동성의 급증으로 구성할 수 있습니다.
이것이 바로 추세 분석 기술을 선택하는 것이 중요한 이유입니다. 이는 데이터에서 스토리를 보는 방식을 결정합니다. 동일한 이벤트가 사용하는 분석 렌즈에 따라 회복, 불안정 또는 정규화처럼 보일 수 있습니다.
# 결론
실제 교훈은 어떤 기술이 가장 좋은가가 아닙니다. 언제 어느 것을 사용해야 하는지 아는 것입니다. 이 세 가지 접근 방식은 주가, 웹 트래픽, 판매 데이터 또는 시간이 지남에 따라 움직이는 모든 것에 적용됩니다. 패턴이 거기에 있습니다. 그들을 보려면 올바른 도구가 필요합니다.
즉, 데이터가 한 목소리로 말하는 경우는 거의 없습니다. 선택한 방법에 따라 듣는 메시지가 결정됩니다. 이것이 추세 분석이 계산만큼이나 해석에 중요한 이유입니다.
네이트 로시디 데이터 과학자이자 제품 전략 분야의 전문가입니다. 그는 또한 분석을 가르치는 부교수이기도 하며 데이터 과학자가 상위 기업의 실제 인터뷰 질문을 사용하여 인터뷰를 준비하는 데 도움이 되는 플랫폼인 StrataScratch의 창립자이기도 합니다. Nate는 취업 시장의 최신 동향에 대해 글을 쓰고, 인터뷰 조언을 제공하고, 데이터 과학 프로젝트를 공유하고, SQL의 모든 것을 다룹니다.



Post Comment