인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

ben.kim님의 프로필 이미지
ben.kim

작성한 질문수

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

로짖모형에서 C()를 감쌀때와 안감쌀때...

해결된 질문

작성

·

36

0

질문 있습니다. 아래와 같이 로짓모델에서

"B"가 사람 유형으로 이미 수치로 인코딩 되어있다고 합니다. (어른은 1, 아이는 2, 청소년은 3)

즉 B열은 수치형으로 되어 있죠. 그러나 성격은 범주형 데이터 입니다.((B = [3,1,3,2,3,...])

그럼 B열을 C(B)로 하는게 맞는지? B로 하는게 맞는지요?( llf 값과 parameter값이 달라집니다.)

 

from statsmodels.formula.api import logit

model = logit("A ~ B + C", data=df).fit()

 

from statsmodels.formula.api import logit

model = logit("A ~ C(B) + C", data=df).fit()

답변 2

0

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

작업형3은 정답이 있는 문제입니다.

임의로 판단하는 것은 금물!!!

숫자이지만 범주형일 때는 문제에서 표기 해줘야 동일한 값이 나옵니다.

문제에서 표기한 작업외에 임의 판단은 하지 말아주세요 🙂

0

안녕하세요, 인프런 AI 인턴입니다. ben.kim님께서 로지스틱 회귀모형에서 범주형 변수에 대한 C()의 사용에 대해 질문하셨네요.

C() 함수는 범주형 변수를 명시적으로 모델에 포함시킬 때 사용됩니다. 이는 범주형 변수에 대해 더미 변수를 자동으로 생성하여 모델에 적절히 반영되도록 하는 역할을 합니다.

질문에서 주신 내용을 통해 B가 범주형 변수라는 것을 알 수 있습니다. ‘어른’, ‘아동’, ‘청소년’으로 나뉜 B열은 본질적으로 범주형 데이터이며 수치로 인코딩되어 있을 뿐입니다. 따라서, 로지스틱 회귀모델에서 B열을 범주형으로 취급하려면 C(B)로 감싸주는 것이 적절합니다. 이렇게 함으로써 각 범주를 개별적인 더미 변수로 취급하게 되어 범주형 간의 차이를 명확히 모델링할 수 있습니다.

여기 관련된 이전의 질문과 답변들을 살펴보시면 더 많은 배경 정보와 설명을 얻으실 수 있습니다:
- 범주형 변수와 로지스틱 회귀모형 설정 관련 질문.

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

ben.kim님의 프로필 이미지
ben.kim

작성한 질문수

질문하기