기본 콘텐츠로 건너뛰기

라벨이 차분인 게시물 표시

[matplotlib]quiver()함수

[time series] 정상성(stationary) 검정

정상성(stationary) 검정 정상성 판단을 위한 일반적인 지침: ACF가 천천히 감소하거나 오랜 기간 유의미한 값을 가지면 비정상적일 가능성이 높습니다. 특히 선형적인 감소는 추세를, 주기적인 스파이크는 계절성을 나타낼 수 있습니다. PACF에서 몇 개의 초기 시차에서만 유의미한 스파이크가 나타나고 이후 급격히 감소하면 정상적일 가능성이 높습니다. import numpy as np import pandas as pd import yfinance as yf import matplotlib.pyplot as plt from statsmodels.tsa.stattools import acf, pacf from statsmodels.graphics.tsaplots import plot_acf, plot_pacf st=pd.Timestamp(2024,1, 1) et=pd.Timestamp(2025, 4,25) trgnme="000660.KS" trg=yf.download(trgnme, st, et) trg.columns=[i[0] for i in trg.columns] close=trg["Close"] 다음은 데이터의 ACF와 PACF를 작성하기 위한 UDF입니다. #ACF, PACF 작성 함수 def acf_pacf_plot(data, lag=10): f, axes=plt.subplots(1,2, figsize=(10, 3), sharey=True) plt.subplots_adjust(wspace=0.1) plot_acf(data, lags=lag, ax=axes[0]) plot_pacf(data, lags=lag, ax=axes[1]) plt.show() #ACF, PACF fig, axes=plt.subplots(1, 2, figsize=(10, 3), sharey=True) plt.subplots_adjust(wspace=0.1) plot_acf(close, lags=30, a...

[시계열] 시계열 데이터의 차분(difference)과 역차분(inverse difference)

시계열 데이터의 차분(difference)과 역차분(inverse difference) 시계열 모형은 데이터의 정상성이 요구됩니다. 정상성을 확보하기 위해 데이터의 차분(difference)이 적용됩니다. 차분된 데이터는 현재값에서 이전 값의 차를 사용이므로 원 데이터가 가질 수 있는 추세가 제거될 수 있습니다. 즉, 차분된 데이터의 경우 연속된 데이터들 사이의 자기상관이 최소화되므로 평균이나 분산등의 일정성이 유지되는 정상성(stationary)가 확보될 수 있습니다. 예를 들어 다음 샘플에 대해 차분을 실행합니다. np.random.seed(3) x=pd.Series(np.random.randint(1, 11, 4)) x 0 9 1 10 2 4 3 9 dtype: int32 위 데이터 x의 차분은 다음과 같습니다. pandas객체.diff() 함수를 사용할 수 있습니다. $$\begin{align} 10-9=1 \quad& x_1-x_0=x^1_1\\ 4-10=-6\quad& x_2-x_1=x^1_2\\9-4=6\quad & x_3 - x_2 = x^1_3\\x_i :\quad&\text{원 데이터}\\ x^1_i :\quad&\text{1차 차분된 데이터}\end{align}$$ x1=x.diff() x1 0 NaN 1 1.0 2 -6.0 3 5.0 dtype: float64 위 과정은 1번 차분한 것으로 1차 차분이라합니다. 위 x1을 다시 차분하면 2번 차분, 즉 2차 차분이 됩니다. $$\begin{align} -6 - 1=-7 \quad& x^1_2-x^1_1=x^2_2\\ 5-(-6) = 11\quad& x^1_3-x^1_2=x^2_3\\\ x^2_i :\quad&\text{2차 차분된 데이터}\end{align}$$ x2=x.diff().diff() x2 0 NaN 1 NaN 2 -7.0 3 11....