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

🕑시계열데이터 분석 02 - ts( ) 함수

nyamin9 2023. 3. 26. 20:39

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

 

 


🕑 ts Data로 변환하기 : ts( ) 함수

 

 

앞선 포스팅에서 살펴보았듯이 시계열 데이터 분석을 위해서는 ts 데이터가 필요합니다.  

 

이번 포스팅에서는 일반적인 csv 파일, 즉 데이터프레임을 시계열 데이터로 바꾸기 위한  ts( ) 함수 를 알아봅시다.

 

## 클래스 확인 결과 data.frame 출력
## 이를 시계열 데이터로 바꿔줘야 함

head(exchange1.df)

is.ts(exchange1.df)
class(exchange1.df)
>>

##     date exchange_rate_krw_usd
## 1 1980 1                 586.1
## 2 1980 2                 603.0
## 3 1980 3                 625.0
## 4 1980 4                 659.9
## 5 1981 1                 672.8
## 6 1981 2                 685.1

>> ## [1] FALSE

>> ## [1] "data.frame"

 


 

🕑 ts( ) 함수 :  ts(DATAFRAME$column, START, FREQUENCY) 

 

 

🚩 유의점 : start 및 frequency만 제공하기에 비어있는 날짜가 있는 경우 반드시 비워둬야 오류가 생기지 않습니다. 임의의 값으로 채우는 것은 분석의 결과에 영향을 줄 수 있으니 별도의 모델을 통해 근거있는 값을 넣어주거나 아예 0과 같은 값을 넣어주는 것이 올바른 방법입니다. 또는 NULL 값을 넣어 처리해도 되겠지만, 별도의 모델을 사용하는 방법이 가장 안전하지 않을까 싶습니다.

 

 

🕑 변환 

## frequency = 4 -> 분기별 데이터
## frequency = 12 -> 월별 데이터
## frequency = 365 -> 일별 데이터

exchange1.ts = ts(exchange1.df$exchange_rate_krw_usd, start = c(1980,1), frequency = 4)
head(exchange1.ts, 5)
>> ## [1] 586.1 603.0 625.0 659.9 672.8

 

 

🕑 변환 결과 확인 

is.ts(exchange1.ts)
>> ## [1] TRUE

 

 

🕑 주기 확인 

frequency(exchange1.ts)
>> ## [1] 4

 

 

🕑 시작 날짜 확인 

start(exchange1.ts)
>> ## [1] 1980    1

 

 

🕑 끝 날짜 확인 

end(exchange1.ts)
>> ## [1] 2016    2

 


 

is.ts(oil_enter_in.R.df)

oil.ts = ts(oil_enter_in.R.df$oil, start = c(1994/01), frequency = 12)
head(oil.ts, 5)

is.ts(oil.ts)

frequency(oil.ts)
start(oil.ts)
end(oil.ts)
>>

## [1] FALSE  
## [1] 8047 7173 8156 6527 6364  
## [1] TRUE
## [1] 12
## [1] 1994    1
## [1] 1994   12