📈📉 비즈니스 어낼리틱스/🕑 시계열 분석

🕑 시계열 데이터 분석 04 - 시계열 데이터 plot

nyamin9 2023. 4. 5. 13:18

모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!!

 

 


🕑 데이터 선언

 

unemploy.df=read.csv("BOK_unemployment_rate.csv")
oil.df=read.csv("BOK_energy_oil.csv")
exchange.df=read.csv("BOK_exchange_rate_krw_usd.csv") 

unemploy.ts=ts(unemploy.df$unemployment_rate, start=2000, frequency=1)
oil.ts=ts(oil.df$oil, start=c(1994,1), frequency=12)
exchange.ts=ts(exchange.df$exchange_rate_krw_usd, start=c(1980,1), frequency=4)

getSymbols("META",src="yahoo", from = as.Date("2015-08-01"), to = as.Date("2016-08-31"))

 


🕑 plot( )

 

 

plot 함수는 원래 x축, y축의 이름을 모두 정의해줘야 plot해주지만, y축에 관한 정보만 줘도 plot 해줍니다.

 

par(mfrow=c(2,2))
plot(META$META.Adjusted,xlab="Time(Daily)",ylab="Adjusted Price", 
     main="Facebook")
     
plot(oil.ts,xlab="Time(Monthly)",ylab="Petrolem consumption", 
     main="Korean energy Petroleum consumption")
     
plot(exchange.ts,xlab="Time(Quarterly)",ylab="Exchange rate", 
     main="Exchange Rate KRW per USD")
     
plot(unemploy.ts,xlab="Time(Yearly)",ylab="Unemployment rate", 
     main="Korean unemployment rate")

 

 

 


🕑 같은 time period의 두개의 변수움직임 비교하기

 

 

두 지표가 하나의 플롯에 출력됩니다.

 

보통 옆으로 붙이는 것보다 위아래로 두고 비교하는 것이 눈에 더 잘보입니다만, start와 end 가 맞아야 의미가 있습니다.

 

시간의 흐름에 대한 거시경제지표를 파악하기도 편합니다.

 

plot(economic.ts)

 

image

 

 


🕑 위아래로 플롯

 

 

🕑 par(mfrow = c(row, col)) 의 인수를 조정해서 위치를 정해줍니다.

 

 

par(mfrow=c(2,1))
plot(employment.ts, col="blue", lwd=2, ylab="Rate %", main="Monthly employment rate")
plot(bonds.ts, col="red", lwd=2, ylab="bonds 3 years(Year%)", main="Treasuray bond 3 years")

 

image



 


🕑 양옆으로 출력

 

 

🕑 par(mfrow = c(row, col)) 인수를 조정해서 위치를 정해줍니다.

 

 

par(mfrow=c(1,2))
plot(economic.ts[,1], col="blue", lwd=2, ylab="Rate %", main="Monthly employment rate")
plot(economic.ts[,2], col="red", lwd=2, ylab="bonds 3 years(Year%)", main="Treasuray bond 3 years")

 

image



 


🕑 두개의 시계열 옆으로 합치기

 

 

🕑 cbind( ) 함수 를 사용해 두개의 시계열 자료 옆으로 합칩니다.

 

단, 두 자료가 동기간이며 주기 역시 동일해야 합니다.

 

 

two.ts=cbind(facebook.ts,twitter.ts)
head(two.ts)
>>

##      facebook.ts twitter.ts
## [1,]       89.43      27.79
## [2,]       89.90      26.94
## [3,]      101.97      28.46
## [4,]      104.24      25.40
## [5,]      104.66      23.14
## [6,]      112.21      16.80
par(mfrow=c(1,1))
plot(two.ts, col="blue", lwd=2, ylab="",main="Adjusted close")

 

image

 

 

## 하나의 플롯에 출력
plot(two.ts, plot.type="single")

 

image



 


🕑 single 옵션

 

 

두 시계열 자료를 하나의 plot 안에서 나타내줍니다.

 

time 축 및 y축을 공유해서 나타냅니다.

 

두 축을 모두 공유하기 때문에, 두 자료의 y축 범위가 비슷해야만 그 차이를 제대로 볼 수 있습니다.

 

두 지표가 있는 하나의 ts 데이터로 plot하는 경우에 주로 사용합니다.

 

 

plot(two.ts, plot.type="single",
     main="Monthly closing prices on Facebook and Twitter using plot()",
     ylab="Adjusted close price",col=c("blue", "red"), lty=1:2) 

legend("right", legend=c("Facebook","Twitter"), col=c("blue", "red"),lty=1:2)

 

image



 


🕑 ts.plot( ) 함수

 

 

🕑 ts.plot(ts_DATA_1, ts_DATA_2, ...) 

 

ts 데이터는 ts.plot() 함수 사용이 가능합니다.

 

이 경우 single 옵션이 없어도 시간축과 y축의 범위를 맞춰줍니다.

 

 

ts.plot(facebook.ts, twitter.ts, col=c("blue", "red"), 
        main="Monthly closing prices on Facebook and Twitter using ts.plot()",
        ylab="Adjusted close price", lty=1:2)

legend("right", legend=c("Facebook","Twitter"), col=c("blue", "red"),lty=1:2)

 

image



 


🕑 Chartseries 함수

 

 

앞선 글에서도 살펴보았듯이, quantmod로 가져온 데이터는 chartSeries 함수를 사용해 plot할 수 있습니다.

 

 

#7.finance data from yahoo finance - Chartseries 
getSymbols("META",src="yahoo", from = as.Date("2015-08-01"), to = as.Date("2016-08-31"))
getSymbols("TWTR",src="yahoo", from = as.Date("2015-08-01"), to = as.Date("2016-08-31"))

 

 


 

## ts 데이터 -> chartSeries 함수

chartSeries(META$META.Adjusted)

image

 

 

chartSeries(META$META.Adjusted, theme="white")

image

 

 

chartSeries(TWTR$TWTR.Adjusted, theme="white")

image

 

 

chartSeries(META, theme="white")

image

 

 

chartSeries(TWTR, theme="white")

image