#1. 파이썬으로 일원분산분석 진행
- 데이터 준비: from pandas import DataFrame
DataFrame으로 데이터 만든 후, 독립변수 열을 category로 데이터 타입 변경하기
- 아노바 테이블 만들기: from statsmodels.stats.anova import anova_lm, from statsmodels.formula.api import ols
anova_lm과 ols로 아노바 테이블을 만든다. '종속변수열 ~ C(독립변수열)'
아래와 같이 독립변수 열의 p값이 0.05 이하로 유의미하게 나온다면 구체적으로 독립변수 열의 수준(level)들 간에
평균 차이가 있는지를 확인하고자 사후분석을 진행한다.
사후분석 방법으로는 여러가지가 있지만 그 중에서도 Tukey의 HSD 방식으로 한다.
- 사후분석 실시하기: from statsmodels.stats.multicomp import pairwise_tukeyhsd
pairwise_tukeyhsd함수로 사후 분석을 실시하면 어떤 수준 간의 평균이 유의미한 차이를 보이는지 확인할 수 있다.
#2. R로 일원분산분석 진행
- 데이터 준비:
각 열을 하나의 벡터로 각각 만들고 data.frame을 통해 DataFrame을 준비한다
이 중, 독립변수열은 factor()로 변환시켜서 DataFrame에 적용시킨다
- 아노바 테이블 만들기: **파이썬에서 만든 값이랑 동일하다 (값 표현방식이 약간 다른 점은 있음)
목화함유량 내 수준들 중 적어도 하나가 유의미한 평균 차이를 가지고 있을 것으로 확인되었다. (p값 <0.05)
- 사후분석 실시하기: **파이썬에서 만든 값이랑 동일하다
위에서 만든 아노바 모델을 TukeyHSD() 함수 안에 넣어준다.
#3. 결론
당연한 결과이겠지만,
파이썬과 R에서 진행한 일원분산분석과 사후분석 결과 값이 일치한다.
'Python notes > Statistical Analysis' 카테고리의 다른 글
파이썬) 이원분산분석 R과 파이썬 비교 (Anova table, Tukey HSD 사후분석) (0) | 2021.06.24 |
---|---|
파이썬) 아노바 테이블에서 자유도 계산하는 방법 (+일원분산분석, 이원분산분석의 경우) (0) | 2021.06.24 |
파이썬) 단순선형회귀 분석 결과 해석하기 (+statsmodel OLS Regression Results) (0) | 2021.06.23 |
파이썬) statsmodels로 logit함수 이해하기 (+Logit Regression Results 해석) (0) | 2021.06.22 |
파이썬) 다중선형회귀그래프 그리기 (+sklearn, mpl_toolkits) (3) | 2021.06.17 |
댓글