본문 바로가기

시계열 분석

12. [R] 시계열분석 정상성 확인 예제 : 비정상적 평균

반응형

2012년 9월부터 2017년 8월까지 화이자(Pfizer) 주가를 활용하여 시계열의 정상성 확인


# 라이브러리 불러오기

library(xlsx)

library(tseries)


# 시계열 자료 불러오기

df <- read.xlsx("C:/Users/chocochip/Documents/R/TimeSeries/Pfe_Stock.xlsx", 1)

df_ts <- ts(df[,4], start=c(2012, 9), end=c(2017, 8), frequency=12)


## 원 시계열

# 1. 비정상적 평균 확인 : 추세

par(oma=c(0,0,0,0))

par(mfrow = c(1,1))

plot(df_ts, main="<Figure 1> Stock of Pfizer(2012.09~2017.08)", ylab="Stock($)", xlab="Year")


- 2015년까지 증가추세로 보임

- 2015년 이후는 별다른 추세가 없는 것으로 보임


# 2. 비정상적인 평균 확인 : ACF, PACF

par(oma=c(0,0,5,0))

par(mfrow = c(1,2))

acf(df_ts , main="ACF", ylab="")

pacf(df_ts, main="PACF", ylab="")

mtext("<Figure 2> ACF, PACF of Pfizer's Stock",outer=TRUE,cex=2)

- ACF는 서서히 감소하는 형태


# 3. 비정상적인 평균 확인 : Dickey-Fuller 단위근 검정

adf.test(df_ts, k=0)

- 단위근 검정에서 p-value가 0.05보다 크므로 귀무가설을 채택


결론 : 추세, ACF, 단위근 검정을 통해 평균이 비정상적인 것으로 판단되므로, 비계절적 1차 차분 실시


## 1차분 후 시계열

# 1. 비정상적 평균 확인 : 추세

par(oma=c(0,0,0,0))

par(mfrow = c(1,1))

plot(diff(df_ts), main="<Figure 3> (1st diff)Stock of Pfizer(2012.09~2017.08)", ylab="Stock($)", xlab="Year")

- 특징적인 추세는 없는 것으로 판단됨


# 2. 비정상적인 평균 확인 : ACF, PACF

par(oma=c(0,0,5,0))

par(mfrow = c(1,2))

acf(diff(df_ts) , main="ACF", ylab="")

pacf(diff(df_ts), main="PACF", ylab="")

mtext("<Figure 4> (1st diff)ACF, PACF of Pfizer's Stock",outer=TRUE,cex=2)

- ACF와 PACF 모두 0에 가까움


# 3. 비정상적인 평균 확인 : Dickey-Fuller 단위근 검정

adf.test(diff(df_ts), k=0)

- 단위근 검정에서 p-value가 0.05보다 작으므로 대립가설을 채택


결론 : 1차 차분한 시계열의 추세, ACF, 단위근 검정을 통해 평균이 정상적인 것으로 판단

반응형