Database for Everything

[삼성 SDS Brightics] 차이 검정② - ANOVA 분산분석_Kaggle 거식증 환자의 몸무게 변화 평균 분석 본문

삼성 SDS Brightics

[삼성 SDS Brightics] 차이 검정② - ANOVA 분산분석_Kaggle 거식증 환자의 몸무게 변화 평균 분석

Yeenn 2021. 6. 26. 02:03
728x90

 

 

안녕하세요! Yeenn입니다.

지난 포스팅에서는 T검정과 관련한 평균차이 검정 포스팅을 작성했었는데요,

https://yeenn-db.tistory.com/10

 

[삼성 SDS Brightics] 차이 검정① - Paired T-test, Independent T-test

안녕하세요! 벌써 브라이틱스 개인분석실습 3주차에 접어들었네요. (시간이 너무 빨리가네요..) 종강도 했겠다.. 브라이틱스 활동에 더 많이 집중할 수 있는 시간이 생겨서 기쁩니다ㅎㅎ 이번 Bri

yeenn-db.tistory.com

오늘 포스팅에서는 이에 이어 Anova-분산분석과 관련된 차이검정을 다루어보도록 하겠습니다!

 

 

분산분석(analysis of variance, ANOVA)이 뭘까?

분산분석은 그룹간 평균 차이에 대한 검정방법입니다. 

분산분석은 분석의 목표가 그룹간의 평균비교이지만, 분산을 활용하여 분석을 하기 때문에 분산분석이라고 부르는데요, 여기서 그룹은 3개 이상의 다수의 집단도 가능합니다.

그룹이 2개인경우는 앞서 다루었던 독립표본 t검정의 양측검정과 같아지므로, 분산분석을 독립표본 t검정의 양측검정에 대한 확장버전이라고 하기도 합니다.

 

 

Anova 분석은 크게 4가지로 나누어볼 수 있는데요, 각 분석방법의 독립변인과 종속변인의 구성을 통해 차이점을 알아보도록 하겠습니다!

 

1. 일원분산분석(One Way ANOVA)

→ 독립변인: 1개, 종속변인: 1개

-ex. 한/중/일 국가간 학습 기술에 따른 성적 비교

 

 

2. 이원분산분석(Two Way ANOVA)

→ 독립변인: 2개, 종속변인: 1개

-ex. 한/중/일 국가간 성별과 운동량에 따른 체중 비교

 

3. 다원변량분산분석(MANOVA-Multiple Analysis Of Variance)

→ 독립변인: 1개, 종속변인: 2개

-ex. 교육수준에 따른 연수입 및 학생 대출 채무 비교

→ 독립변인: 2개, 종속변인: 2개

-ex. 교육수준과 성별에 따른 연수입 및 학생 대출 채무 비교

 

4. 공분산분석

→ 특정한 독립변인을 중심으로 나머지 독립변인은 공변량으로 분석

 

간단한 이론학습이 선행이 되었다면, 

ANOVA 분석 실습을 진행해보도록 하겠습니다!

 

이번 실습 dataset은 Kaggle의 'Anorexia Data on Weight Change'인데요,

이 dataset을 통해 거식증 환자의 몸무게 변화 평균이 3가지 치료방법(Control/CBT/FT)과의 관계가 존재하는지를 알아보는 일원배치분산분석(One Way Anova) 실습을 진행해보겠습니다.

 

 

 

[일원배분산분석(One Way Anova 실습]

 

Dataset은 아래 Kaggle 링크에서 다운받으시면 됩니다!

https://www.kaggle.com/ukveteran/anorexia-data-on-weight-change?select=anorexia.csv 

 

Anorexia Data on Weight Change

 

www.kaggle.com

 

 

1) Dataset 변수 구성

변수 설명 Key
Treat 환자 치료방법 Control/CBT/FT
Prewt 치료 전 몸무게  
Postwt 치료 후 몸무게  

 

2) 귀무가설

H0: 거식증 환자의 치료방법에 따른 몸무게 변화에는 차이가 없다.

 

 

0. Data Flow Model 구성

 

 

 

1. Data Load

 

anorexia.csv 파일을 Local file에서 불러옵니다.

 

 

 

DelimiterComma로 설정해줍니다!

 

 

 

Column Type을 변경해주어야겠네요!

Column Name에는 알파벳과 숫자, '_' 기호만 사용이 가능한데요, 

"" 따옴표를 모두 제거하여 Column name을 아래와 같이 수정해주었습니다.

 

 

 

이렇게 수정작업을 거치고 나면, data load가 성공적으로 마무리 됩니다.

 

 

본격적인 검정에 들어가기전, 시각화 chart를 통해 환자들의 몸무게 변화를 살펴보겠습니다.

Chart Type에 Histogram을 선택하고, 두 히스토그램 설정창에 X-axis: Prewt / Postwt

를 지정해주세요!

 

 

 

데이터 load 후, 치료 전 몸무게와 치료 후 몸무게의 분포상태를 histogram을 그려 살펴보았습니다.

각각 따로 살펴봐도 되지만, 같은 화면에 놓고 같이 비교해보는게 좋겠죠?

우측의 Duplicate 버튼을 클릭하여 복제한 후 설정창 변경을 통해 치료 전/후의 환자 몸무게 분포를 그려보았습니다.

 

Prewt 변수에 비해 Postwt 변수는 right skewed된 분포를 보이고 있네요! 

 

 

 

 

그 다음은, Chart type에 Box Plot을 선택한 후, 

X-axis: Treat

Y-axis: Prewt / Postwt

를 지정해줍니다!

 

  • Prewt

 

  • Postwt

 

세 치료방법 모두, 치료 전후로 환자의 몸무게 변화에 영향을 미친 것을 box plot을 통해 육안으로 확인할 수 있었습니다!

그렇다면, 이러한 차이가 통계적으로 유의미한 차이인지 ANOVA 분석을 통해 알아보겠습니다.

 

 

 

2. 몸무게 변화 변수 생성

 

환자들의 몸무게 변화(Postwt-Prewt)를 독립변수로 설정하기 위해,

Add Function Column을 통해 Chagewt라는 새 변수를 생성해줍니다.

 

New Column Name: Changewt

Expression Type: SQLite

Expression: Postwt-Prewt(치료 후 몸무게-치료 전 몸무게)

을 지정해준 다음, Run을 눌러줍니다!

 

그런데.. 소수점이 전혀 반올림 되어있지 않아서 숫자가 깔끔하게 떨어지지 않네요..!

SQLite 에서는 반올림을 위해 Round 함수를 사용하는데요, Round(숫자, 자릿수)를 입력하면, 해당 자릿수까지 반올림이 되어 숫자가 출력됩니다!

 

Expression을 round(Postwt-Prewt, 1)로 수정하여 입력해보겠습니다.

 

소수 첫째자리까지 반올림된 채로 숫자가 깔끔하게 정리되었습니다!

 

 

 

3. 등분산 가정 검정

 

그 다음은, ANOVA의 기본가정등분산 가정을 만족하는지 검정하기 위해, Bartlett's Test를 수행하였습니다.

 

Response Column: Changewt

Factor Column: Treat

를 지정하고, Run을 눌러줍니다.

 

결과를 살펴보면,

p-value가 0.86으로 0.05보다 크기 때문에, 유의수준 5%에서 치료방법에 따른 몸무게 변화가 같다는 귀무가설을 기각할 수 없어, 모든 치료방법 그룹에 대해 통계적으로 등분산이라고 할 수 있습니다!

 

 

 

4. 일원배치분산분석(One Way ANOVA)

 

 

 

앞서 Bartlett's Test의 등분산 검정과 동일하게 파라미터를 설정해줍니다.

 

결과를 살펴볼까요?

 

결과표에는 치료방법(treat)별 몸무게 변화(Changewt) 분포를 확인할 수 있는 Box Plot이 먼저 출력되고, 분산분석 결과로 분산분석표가 출력됩니다!

 

  • Box Plot

 

 

  • ANOVA 분산분석표

 

P-value가 0.006으로, 0.05보다 작은 것으로 보아 유의수준 5%에서

귀무가설 "H0: 거식증 환자의 치료방법에 따른 몸무게 변화에는 차이가 없다." 을 기각할 수 있습니다.

즉, 치료방법에 따른 환자들의 몸무게 변화에는 차이가 존재한다고 결론을 내릴 수 있겠네요!

 

 

  • Histogram

 

Histogram 분포도 대체적으로 정규분포를 띠고 있는 모습을 보이고 있네요!

 

 

 

5. 사후검정

 

앞서 One Way ANOVA 분석을 통해 치료방법에 따른 몸무게 변화가 존재한다고 판단하였는데, 

몸무게 변화가 어떤 치료방법과 구체적으로 관계가 있는지 살펴보기 위해 사후 검정 방법 중 하나인 Turkey's Range Test를 수행해보겠습니다.

 

설정창 세팅은 Bartlett's Test, One Way ANOVA와 동일하게

Response Column: Changewt

Factor Column: Treat

로 지정한 후, Turkey's Range Test를 수행합니다.

이 방법은 Turkey's HSD(honestly significant difference) test라고도 불립니다!

 

 

Turkey's Range Test각 그룹(treat)의 모든 쌍에 대해 그 차이(meandiff)를 통계적으로 검정합니다.

그 차이가 유의한지는 reject라는 column에 나타나는데, 여기서의 귀무가설은 '집단 간 평균차이는 없다' 인데요,

Reject가 True면, → 귀무가설이 기각되어 세 그룹간 평균차이가 있다는 의미이고,

Reject가 False면, → 귀무가설이 기각될 수 없어 세 그룹간 평균차이가 없다는 의미입니다.

 

결과표의 Reject 항목을 살펴볼까요?

 

치료방법 CBT와 Cont, 

치료방법 CBT와 FT의

anorexia 환자 몸무게 변화의 평균차이에 대한 검정결과, 귀무가설에 대한 reject가 False이므로, 평균차이가 없다는 것을 기각할 수 없어서 평균차이가 없다고 해석합니다. 

즉, CBT-Cont / CBT-FT 치료방법의 환자 몸무게 변화평균은 동일하며, 다른 치료방법끼리는 차이가 있다고 해석할 수 있습니다!

 


 

이것으로 차이검정에 대한 브라이틱스 실습을 마치도록 하겠습니다!

 

 

-본 게시물은 Brightics 서포터즈 활동의 일환으로 작성된 포스팅 입니다.

 

 

728x90
Comments