강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

beassles7님의 프로필 이미지
beassles7

작성한 질문수

[2025년 최신 기출 반영] 빅데이터 분석 기사 실기 시험 100% 합격 ! 기출 문제의 패턴이 보인다 !

선형회귀분석 질문

작성

·

8

·

수정됨

0

from statsmodels.formula.api import ols

import statsmodels.api as sm

강의를 듣다보니 문제에 따라 위의 두가지를 사용하시던데

어느때에 어떤걸 사용하는지 알 수 있을까요?

문제에 상수항을 구하라는 말이 없는데, 어떤때는 종속과 독립변수를 나눠서 상수항을 직접 구하고

어떤때는 자동으로 계산해주는 걸 사용하셔서 그 기준이 궁금합니다.

시험에서는 두가지 모두 해봐야하는지도 궁금합니다!'

 

회귀외에도 로지스틱도 두가지 유형중에 어떤 코드로 불러와서 해야하는지 궁금합니다.

답변 2

0

코딩 대한민국님의 프로필 이미지
코딩 대한민국
지식공유자

안녕하세요!

두 가지 방법 다 결과는 같은데, formula.api의 ols가 훨씬 편합니다.

 

# 이게 더 간단함 (추천)

from statsmodels.formula.api import ols

model = ols('y ~ x1 + x2', data=df).fit()

 

이렇게 하면 R처럼 공식으로 바로 쓸 수 있어서 코드도 짧고 상수항도 알아서 들어가요.

 

# 이건 좀 번거로움

import statsmodels.api as sm

X = sm.add_constant(df[['x1', 'x2']])

model = sm.OLS(df['y'], X).fit()

 

이 방법은 X, y 따로 분리하고 상수항도 직접 넣어줘야 해서 손이 더 가더라구요.

실기 시험에서는 formula 방식으로 푸는게 시간도 절약되고 실수할 일도 적어요.

다만 문제에서 “sm.OLS 사용” 이렇게 명시되어 있으면 그때만 두 번째 방식 쓰시면 될 것 같아요!

0

안녕하세요, 인프런 AI 인턴입니다. beassles7님이 질문하신 선형 회귀 분석에서의 두 가지 방법에 대해 설명드리겠습니다.

선형 회귀 분석 방법의 두 가지 접근 방식

  1. Statsmodels API 사용:
import statsmodels.api as sm
x = sm.add_constant(x)
model = sm.OLS(y, x)
result = model.fit()
  • 상수항 추가: sm.add_constant(x) 를 통해 독립변수 x 에 상수항을 추가합니다. 이 방식은 직접적인 행렬 계산을 통해 회귀 분석을 수행하며, 데이터가 numpy 배열 형태일 때 주로 사용됩니다.
  1. Formula API 사용:
from statsmodels.formula.api import ols
formula = 'y ~ x'
model = ols(formula, data=data)
result = model.fit()
  • 상수항 자동 포함: formula API를 사용하면 상수항(절편)이 자동으로 포함됩니다. y ~ x 형식의 식만 작성하면 모델에 상수항이 추가됩니다. 이는 데이터 프레임을 직접 사용하는 경우에 유용합니다.

선택 기준

  • 데이터 형태: 데이터가 numpy 배열 형태라면 Statsmodels API를 통해 명시적으로 상수항을 추가하는 것이 일반적입니다. 반면, 데이터가 pandas DataFrame 형태라면 Formula API를 사용하면 간편하게 상수항이 포함된 회귀 분석을 수행할 수 있습니다.

  • 코드 가독성: Formula API를 사용하면 코드가 더 직관적이며, R 언어의 형식과 유사해 이해하기 쉽습니다.

시험에서의 활용

시험에서는 문제 요구에 따라 둘 중 하나의 방법을 선택하여 사용하면 됩니다. 상수항 추가 여부가 명확히 언급되지 않는다면, Formula API 방식이 포함되어 있기에 별도의 처리가 필요하지 않을 수 있습니다. 그러나 명시적인 상수항 추가 요구가 있거나 numpy 배열로 작업할 경우에는 Statsmodels API 방식이 필요합니다.

이해를 돕기 위해 관련 논의를 포함한 링크를 제공합니다:
- “Statsmodels로 회귀 분석을 시작하는 법”

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

beassles7님의 프로필 이미지
beassles7

작성한 질문수

질문하기