1. 이원배치 분산분석 (Two-way ANOVA)¶
- 독립변인의 수가 두 개 이상일 때 집단 간 차이가 유의한지를 검증하는 데 사용
- 상호작용효과(Interaction effect), 한 변수의 변화가 결과에 미치는 영향이 다른 변수의 수준에 따라 달라지는지를 확인하기 위해 사용
In [1]:
import pandas as pd
import numpy as np
import urllib
import matplotlib.pyplot as plt
inFile = 'altman_12_6.txt'
url_base = 'https://raw.githubusercontent.com/thomas-haslwanter/statsintro_python/master/ipynb/Data/data_altman/'
url = url_base + inFile
data = np.genfromtxt(urllib.request.urlopen(url), delimiter=',')
data = pd.DataFrame(data, columns=['head_size','fetus','observer'])
data.boxplot(column='head_size', by='fetus')
plt.show()
그림을 보면 태아fetus 3명의 머리둘레는 차이가 있어보이지만 이것이 관측자와 상호작용이 있는 것인지 분석을 통해 알아봐아야 함.
In [2]:
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
formula = 'head_size ~ C(fetus)+C(observer)+C(fetus):C(observer)'
lm = ols(formula, data).fit()
print(anova_lm(lm))
df sum_sq mean_sq F PR(>F)
C(fetus) 2.0 324.008889 162.004444 2113.101449 1.051039e-27
C(observer) 3.0 1.198611 0.399537 5.211353 6.497055e-03
C(fetus):C(observer) 6.0 0.562222 0.093704 1.222222 3.295509e-01
Residual 24.0 1.840000 0.076667 NaN NaN
p-value가 0.05이상. 귀무가설을 기각할 수 없고 측정자와 태아의 머리둘레값에는 연관성이 없다고 할 수 있다. 측정하는 사람이 달라도 머리 둘레값은 일정한 것으로 해석할 수 있음.
'Statistics' 카테고리의 다른 글
파이썬으로하는 교차분석(Chisquare) (2) | 2021.08.03 |
---|---|
파이썬으로하는 일원배치 분산분석 (one-way ANOVA) (2) | 2021.08.03 |
파이썬으로하는 T 검정(T-test) (0) | 2021.08.03 |