Rabet 2024. 9. 13. 16:52

 

보통 사용하는 시각화 그래프

histplot x, boxplot x, countplot x, kospi x, regplot x, barplot x

 

- 시간의 흐름에 따라 패턴 찾기

1. 라인 차트

x축 = 시간축

plt.figure(figsize = (12,4))
sns.lineplot(x = 'Date', y = 'Close', data = kospi, linewidth = .7)
plt.show()

 

# 축을 양쪽에 두고 그립시다.
plt.figure(figsize = (12,5))
# 왼쪽 축
ax1 = sns.lineplot(x = 'Date', y = 'Close', data = kospi, label = 'Close', color = 'blue', linewidth = .5)
plt.legend(loc='upper left')

 # 오른쪽 축 생성
ax2 = ax1.twinx()
sns.lineplot(x = 'Date', y = 'Volume_Lag', data = kospi, label = 'Volume', color = 'green', linewidth = .5)
plt.legend(loc='upper right')

# 그래프 출력
plt.show()

 

 

 

2. 시계열 데이터 분해

observed : 추세 + 주기 + 오차

Trend : 추세 패턴

Seasonal : 사이클(주기), 계절성 패턴

residual : 오차

 

# 시계열 데이터 분해
decomp = sm.tsa.seasonal_decompose(bike['Count'], model = 'additive', period = 24)

# 그래프 그리기
plt.figure(figsize=(12, 8))
result = decomp_plot(decomp)

 

 

3. 자기상관함수

데이터 차분(difference) 데이터를 만들고
kospi['diff'] = kospi['Close'].diff()

차분을 한다음에 패턴구하는게 좋다.

plot_acf(bike['Count'], lags = 60)
plt.grid()
plt.show()

 

 

- 패턴을 변수로 만들기

1. 날짜 요소 추출

2. 이전 데이터 만들기

3. 이동평균 만들기

4. 차분 데이터

 

어떠한 패턴도 보이지 않는다면 diff

# 데이터 차분(difference) 데이터를 만들고
kospi['diff'] = kospi['Close'].diff()

 

# 그래프를 그리면, 이전과 다른 새로운 관점의 그래프를 얻을 수 있습니다.

plt.figure(figsize = (12,5))
plt.subplot(1,2,1)
sns.histplot(x = 'Close', data = kospi, bins = 50)

plt.subplot(1,2,2)
sns.histplot(x = 'diff', data = kospi, bins = 50)
plt.show()