inflearn logo
강의

Course

Instructor

[Side Project After Work] Big Data Analysis Certification Practical Exam (Type 1, 2, 3)

[Task Type 3] 4~5 Analysis of Variance (ANOVA)

작업형3 이원분산분석 sm에서불러오기 / anova_lm 차이

2

cnp2d6fjkt2977

3 asked

0

<제가 작성한 것 >

from statsmodels.formula.api import ols

model=ols('수확량~비료유형+물주기+비료유형:물주기',data=df).fit()

from statsmodels.stats.anova import anova_lm

anova_lm(model)

 

<자료>

import statsmodels.api as am

from statsmodels.formula.api import ols

# 1~9 이원 분산 분석

model = ols('수확량 ~ C(비료유형) * C(물주기)', data=df).fit()

anova_table = sm.stats.anova_lm(model)

print(anova_table)

 

값을 비교해보면 비료유형에서는 일부 동일한데, 다른 변수들에서는 실행시 값들의 차이가 있었습니다..!

sm/lm 사용의 차이가 궁금합니다.

시험에서 해당 내용이 나오면 어느 방식이 적절할지요?

python 머신러닝 빅데이터 pandas 빅데이터분석기사

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

지호 이님이 걱정하신 이원분산분석에서의 anova_lm 함수 사용과 관련하여, 두 가지 방법의 차이와 용도에 대해 조금 더 설명드리겠습니다.

anova_lm 함수는 두 가지 방식으로 관련된 분석을 수행합니다:

  1. statsmodels.formula.apiols 함수:
    • 이 함수는 범주형 변수를 처리하기에 용이합니다. C() 문법을 사용하면 범주형 변수로 인식하여 모델을 적합시킬 수 있습니다.
    • formula 기반의 방식으로, 사용자가 이해하기 쉬운 코드로 작성할 수 있습니다.
    • 다양한 변수 간의 상호작용 효과(*)를 간단히 표현할 수 있어 복잡한 분산분석을 편리하게 처리할 수 있습니다.

예를 들어, model = ols('수확량 ~ C(비료유형) * C(물주기)', data=df).fit()비료유형물주기 사이의 상호작용까지 모델에 포함합니다.

  1. statsmodels.apiOLS 함수와 수동 상수 추가:
    • OLS 함수는 기본적으로 상수항 추가가 필요하며, sm.add_constant() 등의 방법을 사용하여 상수항을 수동으로 추가해야 합니다.
    • 이 방법은 좀 더 낮은 수준의 처리이기 때문에 원하는 대로 모델을 커스터마이즈하기에 적합합니다.

시험에서 사용할 방법에 대한 질문에 답변드리면, 시험의 요구 사항 또는 난이도에 따라 다를 수 있습니다. 일반적으로:

  • 범주형 변수와 상호작용을 쉽게 다루고자 할 때: formula.apiols 방식이 적합할 수 있습니다.
  • 고급 사용자 커스터마이즈가 필요할 때: sm.apiOLS 방식이 더 유리할 수 있습니다.

아래 관련 답변을 확인하시면 이원분산분석을 적용하는 예제와 그 설명을 더욱 자세히 볼 수 있습니다:

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

인코딩 관련 질문 있습니다

0

2

1

2유형 원핫인코딩 오류

0

11

2

시험장에서 주석 단축키 안될 때 많나요?

0

19

2

라벨인코딩 방식

0

18

2

test 재학습 관련

0

12

2

target 빈도 확인

0

15

2

작업형 2 연습문제 섹션 6

0

16

2

F1-score

0

16

2

작업형 2번 섹션 3

0

14

2

작업형 2 인코딩, 결측치, 모델 선택 질문

0

19

1

인코딩 방식 문의

0

24

2

9회 3유형 ==> 7회 3유형 질문드려요

0

13

2

작업형 2관련 질문입니다

0

13

2

작업형2 카테고리

0

23

2

110강 회귀_8번 문의

0

15

2

XGBRegressor 학습 시 warning 출력

0

21

2

데이터 프레임을 변경해도 되나요?

0

13

2

10회 기출 작업형3 문제 2-1 질문

0

21

2

작업형 2 질문

0

22

2

작업형 2 템플릿 확인 요청

0

24

2

작업형2 인코딩 질문

0

26

2

작업형 3 벼락치기 공부방법 질문

0

34

2

기출 11회 작업형 2_전체 데이터 학습 여부

0

34

2

예측값 결과 소수점 차이

0

30

2