해결된 질문
작성
·
401
·
수정됨
1
회귀분석의 경우 ols 함수 사용시 자동으로 원핫 인코딩을 하기에 범주형변수를 C처리를 안해줍니다.
하지만 분산분석은 ols 사용시 독립변수가 범주형 변수이면 C처리를 해줘야하는데 이렇게 구분해서 사용하면 되는건가요?
같은 ols함수인데 회귀분석이냐 분산분석이냐에 따라 사용법이 조금 달라 헷갈려서 확인차 문의드립니다.
추가로, 시험환경예시 작업형 유형3 에서는 회귀분석에서 Logit 모형을 사용하는데 범주형 변수를 C처리 했는데 그냥 모두 범주형 변수는 C처리 해주는게 나을까요..?ㅠ
답변 1
1
수치형이면서 범주형인 값에 'C()' 함수를 사용하는 것은 해당 변수를 범주형으로 명시적으로 처리하도록 모델에게 지시하는 것입니다. 예를 들어, '1', '2', '3'과 같은 수치가 실제로는 '소형', '중형', '대형'과 같은 범주를 나타내는 경우에 해당합니다.
작업형2를 예를 들어 모델을 만들 때 범주형 변수가있다면 인코딩처리를 했었어요!
작업형3에서 사용하는 ols(회귀), logit(로지스틱회귀)는 범주형 변수가 있다면 자동으로 이를 (원핫인코딩)처리 해줍니다. 하지만 여전히 숫자일 인 범주형 변수 그러니깐 소형, 중형으로 작성된 것이 아니라 1, 2로 작성된 변수만 별도 범주형 변수로 인식시켜줘야 해요
이때 C()를 사용합니다.
분산분석에서는 독립변수가 범주형 변수이니 숫자만 C()로 묶어도 되고, 습관적으로 독립변수 모두를 각각 C()로 묶어도 됩니다.
그 동안 작업형2에서는 범주형 변수가 숫자더라도 그냥 나뒀습니다. 레이블 인코딩과 별반 다를 것이 없어서요! 그런데 작업형3은 p값 등의 정답이 있는 문제여서 정확하게 처리할 필요가 있어요
알려주셔서 감사합니다! 한번에 정리가 되었어요!ㅎㅎ
간단하게 생각하면 ols(회귀), logit(로지스틱회귀) 는 수치형 변수인데 범주형 변수로 사용되는 것들만 C()를 사용하고
분산분석에서는 모두 C를 묶어도 가능하다는 말씀이네요!ㅎㅎ 감사합니다.