SHIN JI HAN 2024. 8. 8. 09:57
728x90
728x90
Reporting Date: August. 8, 2024

셋 이상의 모집단 간의 평균을 비교하는 방법으로서 널리 사용되는
분산분석 ( Analysis of Variance, ANOVA ) 에 대해 다루고자 한다.


목차

1. 자료의 입력

2. 일원배치 분산분석법

예제1

2-1. 처리제곱합(Treatments Sum of Squares, SStr)2-2. 오차제곱합(Error Sum of Squares, SSE)2-3. 총제곱합(Total Sum of Squares, SST)
2-4. 분산분석표(ANOVA table)
2-5. 제곱합의 간편 계산식

3. 일원배치 분산분석법의 추론
3-1. F 분포

예제4


 

 

1 .  자 료 의 입 력

## 교재 출처 최하단에 표시 ##

# 예제 4: 예제 1의 자료를 가지고 파이썬을 이용하여 분산분석을 수행하라. 


# 예제 1: 안경의 표면 손상을 방지하려고 A, B, C, D의 네 종류의 코팅처리에 대하여 
# 표면보호에 얼마나 효과가 있는지를 비교하여 보았다. 


import numpy as np 
import pandas as pd 

y = np.array([10, 15, 8, 12, 15, 14, 18, 21, 15, 17, 16, 
              14, 15, 17, 15, 18, 12, 15, 17, 15, 16, 15]) 


treat = np.repeat([ 'A', 'B', 'C', 'D'], [5, 4, 7, 6]) 
data = pd.DataFrame({'y' : y, 'treat' : treat})


# 이 자료로부터 네 종류 코팅처리의 평균 마모도에 차이가 있다고 할 수 있는가?

 

 

2 .  일 원 배 치  분 산 분 석 법 ( one-way  ANOVA )

모집단 간의 변동모집단 내의 변동으로만 나누어 분석하는 방법에 대해 다루고자 한다.

분산분석 기법이 실제로는 상당히 복잡한 문제에도 적용되는 통계적 기법이나
여기서는 두 가지 변동 요인만을 고려하기로 한다.

 

 

여러 가지 처리를 동시비교하는 것은
시간과 비용 면에서 효율적일 수 있다.

 

전체 n = n₁, n₂, , nₖ 개의 실험단위를 아래와 같이 배치를 한다:

n개의 실험단위  ⇨  처리 1,
n개의 실험단위    처리 2,

nₖ 개의 실험단위   처리 k 

원칙적으로 전체 n 개의 실험단위에서 자료를 얻는 순서는 완전 랜덤하게 한다.

이것의 특별한 경우,  k = 2 인 경우가 바로  12 장에서 다뤘던 두 모집단의 비교이다.

 

다음의 표는 각각의 처리에서 측정한 반응치들로 이루어진 자료의 구조를 보여 준다:

k 개의 처리가 있는 일원배치의 자료구조

( yᵢⱼ    i 번째 처리의  j 번째 관측값 )

 

 

 

예제1

이 자료로부터 네 종류 코팅처리의 평균 마모도에 차이가 있다고 할 수 있는가?

네 종류의 코팅에 의한 표면의 마모도

 

 

분석을 하기 위해 먼저 각 관측값들을 구성요소들분해해야 한다:

 

표에 있는 자료를 이용하여 위와 같이 분해하면 다음의 행렬모양이 된다:

 

 

 

2 - 1 .  처 리 제 곱 합 ( Treatments  Sum  of  Squares, SStr )

만일 네 가지의 코팅에서 얻어진 평균 마모도에 차이가 없다면,
처리효과의 행렬의 값들이 거의  0 에 가까워져야만 할 것이다.

전체 처리효과들의 변동을 측정하는 양으로
이 행렬에 속하는 모든 원소들의 제곱합을 계산하면 다음과 같다:

 

 

 

2 - 2 .  오 차 제 곱 합 ( Error  Sum  of  Squares, SSE )

잔차각 관측값그 관측값이 속한 처리평균과의 편차이다.
잔차에 의한 변동들은 모든 잔차들의 제곱합으로 측정한다:

13장의 3-2. 잔차제곱합 (Residual Sum of Squares)과 동일한 정의를 가진다.

 

 

 

2 - 3 .  총제곱합( Total  Sum  of  Squares, SST )

총평균에 대한 편차는 다음의 행렬로 주어진다:

총평균에 대한 편차 = 처리효과 + 잔차

 

이 자료에서 나타난 총변동은 이 모든 편차들의 제곱합으로 측정된다:

13장의 5-1. 총제곱합 (Total Sum of Squares, SST)과 동일하다.

 

총제곱합 164는 처리제곱합 68에 오차제곱합 94를 더한 값이다:

 

 

이제 각 제곱합에 연관된 자유도분해해보자:

 

위 식을 바탕으로 각각의 자유도는 다음과 같다:

 

 

 

2 - 4 .  분 산 분 석 표 (  ANOVA  table )

제곱합과 자유도를 분해한 것을 정리한 표.

이 표에는 보통 평균제곱 ( Mean Square ) 이라는 항목이 추가되어 있는데
이는 다음과 같이 정의된다:

 

k개의 처리를 비교하기 위한 분산분석표:

 

 

 

2 - 5 .  제 곱 합 의  간 편  계 산 식


 

 

3 .  일 원 배 치  분 산 분 석 법 의  추 론

처리 효과들 사이에 차이가 있는지를 통계적으로 검정하려면 실험 모집단에 대한 모형이 있어야 한다.

 

비교하려는 처리가 k개이고 각 처리에서 반복측정을  nᵢ ( i = 1, ⋯, k ) 번 할 때,
 i 번째 처리에서  j 번째 관측한 반응값을   Y라고 하면   Y는 다음과 같이 표현할 수 있다:

  • μ 는  i 번째 자리의 모평균이고, 오차항 εᵢⱼ 은 모두 서로 독립이다.
  • 정규분포  (  0 ,   σ ² ) 을 따른다.

 

 

 

3 - 1 .  F 분 포 

 k 개의 모집단의 모평균이 차이가 없다는 귀무가설을 식으로 나타내면 다음과 같다:

 

위 귀무가설이 맞을 경우, 처리효과의 값들이 작아질 것이고
이것의 함수인 평균처리제곱도 작아질 것이다.

따라서 평균처리제곱의 크고 작음에 따라 귀무가설의 기각여부를 결정하여야 하는데,
그 기준이으로 공통분산  σ ² 의 추정치인 평균오차제곱 ( MSE = s ² )이 쓰인다.

 

위 비율은 F 분포에 대한 검정 통계량이 된다:

 

F 분포는 카이제곱분포와 마찬가지로
양수의 구간에서만 확률값을 갖는 분포이며, 대칭이 아니다.

분포의 모양은 카이제곱분포와 달리
분자와 분모 두 개의 자유도에 의하여 결정된다:

 

검정통계량의 분포는 귀무가설 ( H ) 이 맞을 때
자유도가 ( k – 1,  n – k )인  F 분포를 따르고 유의수준 α 의 기각역은 다음과 같다:

 


 

 

 

예제4

분산분석을 수행하라.

# statsmodels 라이브러리를 설치 (아래 모듈 임포트가 안될 경우 사용)
pip install statsmodels


import statsmodels.api as sm
import statsmodels.formula.api as smf

# 모델 적합하기
ImFit = smf.ols('y ~ treat', data=data).fit()

# ANOVA 수행하기
sm.stats.anova_lm(ImFit)


## 해석: 각 변동 요인별로 자유도(df), 제곱합(sum_sq), 
## 평균제곱(mean_sq), F값과 유의확률(PR(>F))인 P–값을 보여준다.

## 처리(treat)의 P–값이 0.1814이므로
## 처리들의 효과는 유의수준 5%나 2.5%에서도 서로 같지 않다고 결론내릴 수 있다.

결론적으로, 네 가지 코팅 처리 간에 평균 마모도에 유의미한 차이가 없다고 할 수 있다.


Mapo금빛나루 | | 공유 마당 (copyright.or.kr)
아래 첨자 / 첨자 기호 (piliapp.com)
Symbols (wumbo.net)

참고용 블로그: 작은 숫자 특수문자 첨자 및 분수숫자 모음
교제: 통계학: 파이썬을 이용한 분석


728x90
반응형