pymc-labs/CausalPy

A Python package for causal inference in quasi-experimental settings

CausalPy – 준실험적 설계를 위한 베이지안 우선 인과 추론

기능 개요 – CausalPy는 실제 무작위 실험이 불가능할 때 인과 효과를 추정할 수 있게 해주는 Python 라이브러리입니다. 일련의 고전적인 준실험적 방법(이중차분법, 합성 통제법, 회귀 불연속 설계 등)을 구현하며, 이를 PyMC 기반의 베이지안 모델로 실행합니다(OLS 폴백 옵션 포함). 출력에는 전체 사후 요약, 신뢰 구간, ROPE 기반의 실질적 유의성 검사 및 즉시 출판 가능한 품질의 플롯이 포함됩니다.


선택 이유

  • 불확실성 인식: 단일 점 추정치가 아닌 분포, HDI, 꼬리 확률 및 ROPE 분석을 제공합니다.
  • 재현 가능한 워크플로우: 데이터 로드, 모델 지정, 피팅 및 시각화가 고수준 클래스(RegressionDiscontinuity, SyntheticControl 등)에 래핑되어 있으며, plot() 및 summary() 메서드를 갖춘 단일 result 객체를 생성합니다.
  • PyMC 기반: 최신 확률적 프로그래밍(PyMC 6, PyTensor 3, ArviZ)을 활용하면서도, 빠른 확인을 위해 scikit‑learn을 통한 고전적인 OLS를 지원합니다.
  • 컨설팅 지원: 고위험 리프트 테스트나 정책 영향 평가를 위한 유료 컨설팅 서비스를 제공합니다.

핵심 기능 (README 발췌)

기능 상세 정보
방법 합성 통제법, 지리적 리프트, ANCOVA, 이중차분법 (Diff‑in‑Diff), 스태거드 DiD, 회귀 불연속/킨크 설계, 중단 시계열 분석, 도구 변수법, 역성향 점수 가중치
베이지안 우선 모델은 PyMC로 작성됨; 사후 HDI, 꼬리 확률, ROPE 제공. scikit‑learn을 통한 OLS 폴백 지원.
의사결정용 출력 effect_summary()는 표와 텍스트를 반환하며, plot()은 출판 품질의 그래픽을 제공합니다.
설치 pip install CausalPy 또는 conda install -c conda‑forge causalpy. Python 3.12+ 지원.
런타임 참고 numba (PyTensor 경유) 사용 – 첫 샘플링 시 컴파일 비용 발생; 네이티브 크래시 가능성 있음; nutpie가 NUTS 기본값을 조용히 변경할 수 있음.
AI 에이전트 스킬 AI 코딩 어시스턴트를 위한 작은 "스킬"이 causalpy/skills/에 있으며 Decision AI Hub에 게시됨.
문서 및 지원 Read‑the‑Docs 사이트, GitHub Discussions(Q&A), Issues(버그 보고), 컨설팅용 Calendly 링크.
라이선스 Apache 2.0.

일반적인 사용법 (퀵스타트 예제)

import causalpy as cp
import matplotlib.pyplot as plt

# 패키지에 포함된 샘플 데이터셋 로드
df = (
    cp.load_data("drinking")
    .rename(columns={"agecell": "age"})
    .assign(treated=lambda d: d.age > 21)
)

# 베이지안 선형 회귀를 사용하여 회귀 불연속 모델 피팅
result = cp.RegressionDiscontinuity(
    df,
    formula="all ~ 1 + age + treated",
    running_variable_name="age",
    model=cp.pymc_models.LinearRegression(),
    treatment_threshold=21,
)

# 컷오프에서의 점프 시각화
fig, ax = result.plot()

# 사후 구간을 포함한 요약 출력
result.summary()

result 객체는 피팅된 모델, 진단 정보 및 보고용 헬퍼 메서드를 캡슐화합니다.


대상 사용자

  • 제품/마케팅 분석가: 지리적 리프트, 정책 변경 또는 단계적 롤아웃 효과를 평가하는 분.
  • 사회과학자: 불확실성 정량화가 포함된 엄격한 DiD 또는 RD 분석이 필요한 분.
  • 데이터 과학자: 베이지안 접근 방식을 선호하면서도 빠른 OLS 옵션을 유지하고 싶은 분.

다음 목적에는 적합하지 않습니다:

  • 관측 데이터로부터의 순수 인과 탐색.
  • 완전 자동화된 "블랙박스" 인과 답변.
  • 대규모 프로덕션 파이프라인 (내장된 오케스트레이션 기능 없음).

시작하기 및 리소스

  • 설치: pip install CausalPy (또는 conda). Python 3.12+, PyMC 6 필요.
  • 문서: https://causalpy.readthedocs.io – 각 방법에 대한 튜토리얼 포함.
  • 커뮤니티: 사용법 질문은 GitHub Discussions, 버그 보고는 Issues 이용.
  • 비디오 데모: README의 YouTube 링크 참조.

요약

CausalPy는 준실험적 인과 추론을 위한 연구 등급의 베이지안 우선 Python 툴박스입니다. 고전적인 설계를 PyMC 기반 워크플로우로 래핑하여 불확실성을 고려한 추정치, 진단 및 공유 가능한 시각화 결과를 제공하며, Python 데이터 과학 스택에 익숙한 분석가라면 설치와 사용이 매우 간편합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트