R-Blogger블로그·해설한국어2026-01-31
dfms 1.0 출시: R에서 동적 요인 모델을 빠르고 풍부하게 추정
dfms 버전 1.0 출시 안내 저는 dfms 패키지의 버전 1.0 출시를 매우 기쁘게 발표합니다. (그 전 주에 버전 0.4.0이 출시되었습니다. 자세한 내용은 릴리스 노트를 확인해 주세요.) 이번 버전은 다음과 같은 주요 기능을 구현합니다. 주요 기능 자기회귀오차를 갖는 다이내믹 팩터 모델(DFM) 지원 월별–분기별 혼합 주파수(DFM) 구현, 자기회귀오차 포함 Banbura & Modugno (2014) 방식에 따라 예측 재조정(뉴스 릴리스)을 분해 한 개 혹은 다수의 월별 또는 분기별 목표에 대한 해석 가능한 Nowcasting 지원 이로써 Banbura & Modugno (2014) 방법론을 R에서 완전하고, 계산적으로 효율적이며, 사용하기 쉬운 형태로 구현한 목표를 달성했습니다. 패키지 개요와 검증 dfms는 C++로 구현된 Kalman Filter와 Smoother를 포함하고 있어, 계산 효율성과 검증된 성능을 보장합니다. R 언어와의 완전한 통합 및 통계 패키지의 공통 메서드와 디자인 패턴을 따르며, 이론 및 실전 vignette, 상세한 함수 문서가 잘 정리되어 있어, DFM과 Nowcasting에 관심 있는 젊은 연구자와 실무자에게 최적의 진입점이 됩니다. 이 버전은 rOpenSci Software Peer Review를 통해 두 학계 심사위원에게 성공적으로 평가를 받았으며, rOpenSci에 발표되었습니다. 현재 소스 코드는 GitHub에 공개되고, 문서는 docs.ropensci.org/dfms에서 확인할 수 있습니다. dfms의 역사: 단순 시작에서 완전 기능 DFM 패키지까지 1. 초기 인식과 연구 배경 나는 2018년 제네바에서 열린 “Big Data in Macroeconomics and Finance” 여름 학교에서 DFM을 우연히 접하게 되었습니다. 그때 Michele Modugno는 혼합 주파수 DFM 방법론을 발표했고, dfms가 지금은 R과 C++에서 이를 효율적으로 구현합니다. 그 당시 나는 이 개념을 완전히 이해하지 못했지만, 핵심 아이디어를 파악했습니다. 2. 우간다에서의 실무 경험 2020~2021년 ODI Fellow로 우간다 재무·계획·경제개발부에 파견되면서, 나는 금융 프로그래밍, 데이터 과학, 그리고 경제 및 CGE 분석을 담당했습니다. 특히 월간 시계열 데이터를 사용해 동적 모델링이 필요했고, 이는 dfms가 단일 주파수 DFM을 구현하기 위한 출발점이 되었습니다. 3. dynfactoR에서 dfms로의 전환 동일 연구를 위해 R 패키지 dynfactoR을 찾아내고, Julia 백엔드를 대체해 Armadillo C++로 Kalman Filter와 EM 알고리즘을 재작성했습니다. 이 과정을 통해 2022년 10월 CRAN에 dfms 0.1.3을 배포했습니다. 4. 혼합 주파수 DFM 개발 2023년 3월, dfms 0.2.0에서 자기회귀오차와 작은 개선 사항을 추가했습니다. 그 후 2024년 초에 rOpenSci 리뷰를 통과하며 버전 0.3.0을 공개했으며, 2025년 5월에 혼합 주파수 기능이 포함된 0.4.0을 출시했습니다. 2026년 1월에는 1.0.0 버전이 정식 발표되었으며, Banbura & Modugno (2014) 기반의 뉴스 분해와 완전 상태 예측이 추가되었습니다. 5. 실전 적용 사례 – 남아프리카공화국 Nowcasting Stellenbosch University에서 수행한 연구를 통해 남아프리카의 경제와 실업률을 Nowcast하는 모델을 개발했습니다. Nowcast Dashboard는 Python의 Dash와 Plotly를 사용해 구축되었으며, 2024년 11월까지 운영되었습니다. dfms 1.0의 주요 기능 혼합 주파수 DFM(자기회귀오차 포함) – dfms 0.4.0에서 구현 예측 재조정의 뉴스 분해 – Banbura & Modugno (2014) 방식 구현 전체 상태 예측 및 포괄적 예측 – dfms 1.0.0에서 제공 이 기능들은 Banbura & Modugno (2014) 연구 코드를 그대로 재현하며, ML/DL 기반 접근법과 비교해도 우수한 성능을 보입니다. 예시 코드 아래 예시는 최신 버전의 dfms를 사용해 남아프리카 공화국의 Nowcasting 모델을 재추정한 코드입니다. library(fastverse) ## -- Attaching packages ------------------------------------------------------------------------------------------------------------- fastverse 0.3.4 -- ## v data.table 1.17.0 v kit 0.0.21 ## v magrittr 2.0.4 v collapse 2.1.6 fastverse_extend(xts, dfms, readxl) ## -- Attaching extension packages --------------------------------------------------------------------------------------------------- fastverse 0.3.4 -- ## v xts 0.14.1 v readxl 1.4.5 ## v dfms 1.0.0 ## -- Conflicts ---------------------------------------------------------------------------------------------------------------- fastverse_conflicts() -- ## x xts::first() masks data.table::first() ## x xts::last() masks data.table::last() ## x dfms::news() masks utils::news() # Get Last November 2024 Vintage download.file("https://github.com/coderaanalytics-models/SA-Nowcast/raw/refs/heads/main/vintages/econdata_nowcast_data_22_11_2024.xlsx", destfile = "econdata_nowcast_data_22_11_2024.xlsx", mode = "wb") data_m qDT() | as.xts() ncol(data_m) ## [1] 54 data_q qDT() | fmutate(date = as.Date(date)) |
원문 URL
전체 글은 원문 페이지에서 이어서 읽을 수 있습니다.
- 작성자
- R-Blogger
- 출처
- R-Blogger
- 플랫폼
- R-Blogger
- 분류
- 블로그·해설
- 언어
- 한국어
- 발행일
- 2026-01-31