Show GN: Google CausalImpact R 패키지를 Python으로 포팅 (Gibbs 샘플러는 Rust)

GeekNews (AI) | | 📰 뉴스
#causalimpact #pyo3 #python #review #rust #인과추론
원문 출처: GeekNews (AI) · Genesis Park에서 요약 및 분석

요약

Google의 CausalImpact R 패키지를 Python으로 포팅했습니다. Gibbs 샘플러를 Rust로 구현하고 PyO3로 Python에서 호출합니다. TensorFlow 불필요, R 대비 약 30배 빠릅니다. 만든 이유: 기존 Python 포팅들에 문제가 있었습니다. pycausalimpact는 MLE를 사용해서 R과 결과가 다릅니다...

본문

Google의 CausalImpact R 패키지를 Python으로 포팅했습니다. Gibbs 샘플러를 Rust로 구현하고 PyO3로 Python에서 호출합니다. TensorFlow 불필요, R 대비 약 30배 빠릅니다. 만든 이유: 기존 Python 포팅들에 문제가 있었습니다. pycausalimpact는 MLE를 사용해서 R과 결과가 다릅니다. tfcausalimpact는 TensorFlow(3GB+)가 필요합니다. 그리고 어떤 포팅도 spike-and-slab 변수 선택을 구현하지 않았습니다. R의 bsts가 여러 control 시계열 중 적합한 것을 자동으로 골라내는 핵심 기능이 바로 이것입니다. 이 라이브러리는 R의 bsts 패키지와 동일한 Gibbs 샘플러를 재현합니다. 칼만 필터, 시뮬레이션 스무더, spike-and-slab 사전분포까지 전부 동일합니다. 매 커밋마다 R CausalImpact 1.4.1과의 수치 동등성 테스트가 CI에서 실행됩니다 (포인트 효과 ±3%, CI 범위 ±5%). 가장 어려웠던 부분은 spike-and-slab이었습니다. Coordinate-wise 샘플링과 StudentSpikeSlabPrior 기본값 (expected.r2=0.8, prior.df=50)을 R 출력과 맞추는 데 몇 주가 걸렸습니다. 지원 기능:

Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.

공유

관련 저널 읽기

전체 보기 →