본문 바로가기

데이터마이닝

statsmodels의 모형식 표현

728x90

statsmodels는 Python에서 통계적 모델링, 통계 테스트, 데이터 탐색 및 시각화를 위한 라이브러리입니다. statsmodels를 사용하여 선형 회귀분석 같은 다양한 통계 분석을 수행할 수 있으며, 모형을 표현하는 데에는 주로 Patsy라는 패키지를 사용하는데, 이는 데이터를 변환하고 통계 모델에 적용하기 위한 고수준의 인터페이스를 제공합니다.

모형식을 표현하는 방법은 y ~ x 형태로 표현됩니다. 여기서 y는 종속 변수(결과 변수), x는 독립 변수(예측 변수)입니다. 이 기본 형태는 하나의 종속 변수와 하나의 독립 변수 간의 관계를 나타내지만, statsmodels와 Patsy의 표현식을 사용하면 보다 복잡한 모형도 쉽게 표현할 수 있습니다.

기본 문법

  • y ~ x: yx에 의해 예측됩니다.
  • y ~ x1 + x2: 여러 독립 변수를 포함할 때, + 기호는 추가적인 변수를 의미합니다.
  • y ~ x1 * x2: * 기호는 x1, x2, 그리고 x1x2의 상호작용 항을 모두 포함합니다.
  • y ~ x1:x2: : 기호는 오직 x1x2의 상호작용 항만 포함합니다.

고급 표현

  • 다항 회귀: y ~ x1 + I(x1**2)와 같이 I() 함수를 사용하여 비선형 항을 포함시킬 수 있습니다.
  • 범주형 변수 처리: C() 함수를 사용하여 변수를 명시적으로 범주형으로 변환합니다. 예를 들어, y ~ C(x) 형태로 사용됩니다.
  • 변수 변환: np.log(x), np.sqrt(x)와 같은 NumPy 함수를 사용하여 변수 변환을 적용할 수 있습니다.

statsmodels에서 모형을 표현하는 이러한 방식은 데이터 분석을 보다 유연하고 강력하게 만들어 줍니다. 사용자는 복잡한 데이터 구조와 다양한 유형의 변수 관계를 쉽게 모델링할 수 있게 되며, 이를 통해 보다 정확한 데이터 분석과 예측이 가능해집니다.