반응형
- 시계열 데이터 만들기
- 차트 표시
- monthplot
- seasonal 요소
- difference(합집합, 교집합, 역차분)
- 시계열 부분추출(window)
- 통합(aggregate)
#구글 코랩에서 R 설치
install.packages('forecast')
install.packages('TSA')
library(forecast)
library(TSA)
#시계열 데이터 만들기(1)
dd <- matrix( c(1342, 1442, 1252, 1343,
1425, 1362, 1256, 1272,
1243, 1359, 1412, 1253,
1201, 1478, 1322, 1406,
1254, 1289, 1497, 1208))
dd.ts <- ts(data=dd, start=c(2016, 1), frequency=4)
dd.ts #dd를 time series로 나타내기
plot(dd.ts, '제목입력') #그래프 그리기
#시계열 데이터 만들기(2)
st1.ts <- ts(data = st1 <- c(1142, 1242, 1452, 1543,
1225, 1362, 1556, 1672,
1343, 1459, 1662, 1753,
1421, 1558, 1772, 1846,
1554, 1649, 1877, 1948), c(2016, 1), f=4)
plot(st1.ts, main = 'Seasonal-Trend Variation Time Series')
#여러개의 차트를 표시, par의 mfrow 또는 mfcol을 사용
par(mfrow = c(2,2)) # mfrow ↔ mfcol 차트의 배치순서에 따라 다름, c(col, row)
plot(random1.ts, main = 'Random Variation Time Series')
plot(season1.ts, main = 'Seasonal Variation Time Series')
plot(trend1.ts, main = 'Trend Variation Time Series')
plot(st1.ts, main = 'Seasonal-Trend Variation Time Series')
#monthplot을 이용하여 분기별 보기
monthplot(season1.ts, main="EDA: Seasonal Variation Series", xlab="Quarter: 2016-2020", ylab="Sales") # 분기별로 모은 값
monthplot(st1.ts, main="EDA: Seasonal-Trend Variation Series", xlab="Quarter: 2016-2020", ylab="Sales") # 횡으로 그려진 직선은 평균값
#Seasonal 요소 제외한 시각화
install.packages('TSA')
library(TSA)
data(airpass)
plot(airpass, main = 'Air Passengers -- Seasonal Adjustment')
lines(seasadj(decompose(airpass)), col=2, lwd=2)
#계절효과 보기
seasonplot(AirPassengers, col=rainbow(12), year.labels=TRUE) #연도별
monthplot(AirPassengers, col=rainbow(12), year.labels=TRUE)
# Seasonal Plot
seasonplot(AirPassengers, col=rainbow(12), year.labels=TRUE)
ggseasonplot(AirPassengers, year.labels=TRUE, continuous = TRUE)
#difference(차분)
diff(dd.ts) #lag = 1
diff(dd.ts, 2) #lag = 2
diff(dd.ts, 1, 2)
diff(diff(dd.ts))
diff(dd.ts, 1, 2) #lag = 1, diff 2번
diff(diff(dd.ts)) #lag = 1, diff 2번
#역차분
( d2 <- diffinv(d1) )
#합집합
prod1 <- ts(matrix(1:24, 8, 3), s=c(2019, 1), f=4, names=c("web", "app", "hyb"))
prod2 <- ts(matrix(11:22, 4, 3), s=c(2020, 1), f=4, names=c("web", "app", "hyb"))
union(prod1, prod2) ## 일반적 합집합 # 잘못된 예
ts.union(prod1, prod2) ## 시계열 합집합 ## 결측값은 NA
#교집합
intersect(prod1, prod2) ## 일반적 교집합
ts.intersect(prod1, prod2) ## 시계열 교집합
#window(시계열 부분추출)
window(prod1, s=c(2019, 3), delta=1) ## 3분기 자료만 추출, s = start
# window(prod1, s=c(2000, 3), delta=1) # 시작시점, 종료시점을 정확히 몰라도 문제없이 결과 생성
window(prod1, c(2019, 3), c(2020, 2)) # 2019-3분기 부터 2020-2분기 까지 부분 추출
window(prod2, c(2019, 1), c(2019, 2)) <- c(11, 22) # 각 값에 11과 22의 값을 대입
#aggregate(통합)
aggregate(prod1) #분기별 자료를 연도별로 통합
aggregate(prod1, nf = 2, FUN = mean) #연도별로 통합하였는데 newfrequency를 2, 즉, 반기별로, function은 평균값
#median: 중간값, mode: 최빈값, min, max
출처: 패스트캠퍼
반응형