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

빅분기수강생님의 프로필 이미지

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

회귀 분석 (범주형 변수)

해결된 질문

24.06.18 17:00 작성

·

104

0

강의 복습하면서 한번 더 정리하면서 외워가는 중입니다.

 

섹션 8 강의에서 범주형 변수는

판다스의 pd.get_dummies(drop_first=True)로 원핫인코딩 처리

한다고 강의하셨습니다.

해당 강의 복습하다 보니, 섹션 10 작업형 3번 문제풀이 하면서

범주형 변수에 C( ) 씌워서 summary 하신게 생각났고

 

섹션 8 강의의 범주형 변수 부분에다 한번 시도해봤습니다

import pandas as pd
df = pd.DataFrame({
    '매출액': [300, 320, 250, 360, 315, 328, 310, 335, 326, 280,
            290, 300, 315, 328, 310, 335, 300, 400, 500, 600],
    '광고비': [70, 75, 30, 80, 72, 77, 70, 82, 70, 80,
            68, 90, 72, 77, 70, 82, 40, 20, 75, 80],
    '플랫폼': [15, 16, 14, 20, 19, 17, 16, 19, 15, 20,
            14, 5, 16, 17, 16, 14, 30, 40, 10, 50],
    '투자':[100, 0, 200, 0, 10, 0, 5, 0, 20, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    '유형':['B','B','C','A','B','B','B','B','B','B'
        ,'C','B','B','B','B','B','B','A','A','A']
    })

 

from statsmodels.formula.api import ols

model = ols("매출액 ~ 광고비 + C(유형)", data=df).fit()
print(model.summary())

그러고 둘다 확인해보니

 

OLS Regression Results 결과 수치별로 비교해봤는데 같더라고요.

그럼 범주형 변수에 그냥 C( ) 씌워서 하는게 코딩이 더 간편할 거 같은데

pd.get_dummies(drop_first=True)를 사용해야 하는 뭔가 다른 이유, 혹은 C( )로 커버할 수 없는 게 있어서 그런건지 궁금합니다.

답변 부탁드립니다.

 

 

 

 

 

 

 

 

답변 1

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

2024. 06. 18. 20:28

C() 로처리 하면됩니다. 범주가 3개일 때 결과에서 2개만 나타나다 보니

그 과정을 pd.get_dummies(drop_first=True)로 설명했어요~