<일별 승차 승객 수 시계열 예측 프로젝트>
- 2023년 2학기 캡스톤 디자인으로 진행했던 프로젝트입니다. A+
- Project Period: 2023.09 – 2023.12
- 사용 언어 : SAS, R, Python
본 프로젝트는 일별 승차 승객 수 데이터를 기반으로 시계열의 구조적 특성을 분석하고, **통계적 시계열 모델(AR, ARIMA)**을 활용하여 향후 6개월간 승객 수를 예측하는 것을 목표로 한다.
단순 예측이 아닌,
- 정상성 확보
- 자기상관 구조 분석
- 잔차 진단
- 성능 비교(MAPE) 를 통해 가장 타당한 예측 모델을 선택하는 데 중점을 두었다.
- 2022년 일별 전체 승차 승객 수
- 2023년 데이터는 예측 성능 비교용 실제값으로 사용
시계열 모델 적용을 위해 정상성(stationarity) 확보가 핵심이므로 다음을 순차적으로 수행하였다:
-
로그 변환
- 분산 안정화 및 정규성 개선
-
차분 비교
-
로그 변환 후
- 원 시계열
- 1차 차분
- 2차 차분 를 비교하여 정상성 여부 확인
-
-
최종 선택
- 로그 변환된 시계열이 구조적으로 가장 안정적이라 판단하여 채택
이 전처리 과정은 코드와 분석 흐름에서 명시적으로 검증되었다
-
ACF / PACF 분석 결과
- 주기성 존재
- PACF가 lag 4에서 절단 → AR(4) 구조 시사
이를 바탕으로 AR 모델과 ARIMA 모델을 단계적으로 비교하였다.
- AR(1) : 차분 데이터 기반
- AR(4) : 로그 변환 데이터 기반
각 모델에 대해
- 잔차 자기상관(ACF)
- Ljung–Box / Box–Pierce 검정 을 통해 오차 독립성 가정 검증을 수행하였다.
auto.arima()를 이용해 최적 차수 탐색- 최종 선택 모델:
ARIMA(4,1,3)
-
해석:
- p = 4 : 과거 4시점 자기회귀
- d = 1 : 1차 차분
- q = 3 : 이동평균 항 3개
- drift 포함
- MAPE (Mean Absolute Percentage Error) 사용
| 모델 | MAPE |
|---|---|
| AR(1) | 매우 큼 (부적합) |
| AR(4) | 약 5% |
| ARIMA(4,1,3) | 약 2.85% (최소) |
→ ARIMA(4,1,3)을 최종 예측 모델로 채택
모든 모델은 잔차 독립성 검정을 통과하여 통계적 가정도 만족함
- ARIMA(4,1,3) 모델을 이용해 향후 6개월(180일) 일별 승객 수 예측 수행
- 예측 결과를 2023년 실제 데이터와 시각적으로 비교하여 추세 및 변동 패턴이 현실적으로 반영됨을 확인
- 단순 시계열 예측이 아닌 정상성 검증 → 구조 분석 → 모델 비교 → 통계적 검증 → 예측의 완결된 시계열 분석 파이프라인
- 이론적 근거(ACF/PACF, 잔차 검정)를 기반으로 한 모델 선택
- 실제 정책·교통·수요 예측 문제에 바로 적용 가능한 구조
-
R
-
주요 패키지:
forecastTTRzooggplot2
“일별 승차 승객 수의 시계열 특성을 분석하고, AR/ARIMA 모델 비교를 통해 최적의 ARIMA(4,1,3) 모델을 선정하여 향후 6개월 수요를 예측한 통계 기반 시계열 프로젝트”