교호작용
교호작용
- 단순히 여러 요인을 동시에 실험한다고 해서 각 요인의 개별적인 효과만 알 수 있는 것은 아님
- 교호작용(Interaction): 한 요인의 효과가 다른 요인의 수준(level)에 따라 달라지는 현상
- 상호작용이라고도 함
예시: 온도와 시간
- 열처리 공정의 '온도'와 '시간'
- 주 효과만 고려 시:
- 온도 상승 → 강도 증가
- 처리 시간 증가 → 강도 증가
- 교호작용의 예:
- 낮은 온도에서는 처리 시간 늘려도 강도 변화 미미
- 높은 온도에서는 처리 시간 늘리면 강도 급격히 향상
- '시간' 요인의 효과가 '온도' 요인의 수준에 따라 달라지는 관계 → '온도와 시간의 교호작용' 존재
교호작용의 시각화: 교호작용 그림
교호작용이 없는 경우
import seaborn as sns
d1 = pd.read_excel('diff_intercept.xlsx')
sns.scatterplot(x='x', y='y', hue='m', data=d1)
ols('y ~ x + m', d1).fit().summary()
기울기가 달라지는 경우
d2 = pd.read_excel('diff_slope.xlsx')
sns.scatterplot(x='x', y='y', hue='m', data=d2)
ols('y ~ x + x:m', d2).fit().summary()
기울기와 절편이 모두 달라지는 경우
d3 = pd.read_excel('interaction.xlsx')
sns.scatterplot(x='x', y='y', hue='m', data=d3)
ols('y ~ x + m + x:m', d3).fit().summary()
import seaborn as sns
d1 = pd.read_excel('diff_intercept.xlsx')
sns.scatterplot(x='x', y='y', hue='m', data=d1)
ols('y ~ x + m', d1).fit().summary()
Python을 이용한 교호작용 분석
- 특이하게도
:가 곱셈을 나타냄- 관계식 문법이 다른 프로그래밍 언어에서 가져온 것임
DATA = pd.read_excel('strength_alloy.xlsx')
FORMULA = 'strength ~ C(temp) + C(alloy) + C(temp):C(alloy)'
model = ols(FORMULA, DATA).fit()
model.summary()
- 위의 관계식은 다음과 같이 표현할 수도 있음
*는 주효과와 교호작용을 모두 포함하라는 뜻(일반적인 수식과 같이 곱셈이 아님)
FORMULA = 'strength ~ C(temp) * C(alloy)'
분석 결과 해석 및 주의점
- 유의수준(예: 0.05)보다 작으면 교호작용이 통계적으로 유의미
- 교호작용이 유의미할 경우, 주 효과를 독립적으로 해석하면 안 됨