ANOVA Test for Orange DataSet in RStudio
전 게시글에서 R에서 DataSet을 알아보았다.
이번 시간에는 그 중에서 Orange 라는 dataset을 가지고 ANOVA Test를 진행해보겠다.
ANOVA Test 용어 정리
종속변인 : 독립변인의 영향을 받는, Test를 위해 측정되는 항목
독립변인 : 종속변인의 영향을 주는 항목, 실험 내에서
귀무가설 (H0) : 차이가 없거나 의미있는 차이가 없는 경우의 가설이며 이것이 맞거나 맞지 않다는 통계학적 증거를 통해 증명하려는 가설. (영가설, 널가설이라고도 부른다)
대립가설 (H1) : 그룹과 평균 사이에 차이가 있으며, 서로 다른 그룹을 지칭한다는 가설. 실제로 증명하고자 하는 내용이다.
ANOVA Test란 ?
ANOVA (Analysis Of VArience)는 분산분석이라고 하며, 측정 대상이 되는 그룹이 2개 이상일 때 사용하는 Test이다.
(독립변인의 그룹의 개수로 T-Test와 구분된다)
ANOVA TEST는 서로 다른 그룹의 평균에서 분산을 비교하여 *귀무가설에 대한 결과를 확인하고자 이행하는 테스트이다.
결과값은 F-Value이며, 그룹 간 분산과 그룹 내 분산의 비율로 계산한다.
그룹 내 분산은 각 그룹의 분산을 모두 더해준 값으로, 각 그룹 내부 분산값을 의미한다.
그룹 내 분산은 독립변인의 영향을 받지 않는, 그룹 내부 분산에 의한 부분을 의미한다.
그룹 간 분산은 Varience Between이라고도 지칭하며, 전체 그룹 분산에서 그룹 내 분산을 빼준 값이 된다.
그룹 간 분산은 독립변인에 의해 변동되는 값을 의미한다.
R Programming in Orange Dataset
Tree age circumference
1 1 118 30
2 1 484 58
3 1 664 87
4 1 1004 115
5 1 1231 120
6 1 1372 142
7 1 1582 145
8 2 118 33
9 2 484 69
10 2 664 111
11 2 1004 156
12 2 1231 172
13 2 1372 203
14 2 1582 203
15 3 118 30
16 3 484 51
17 3 664 75
18 3 1004 108
19 3 1231 115
20 3 1372 139
21 3 1582 140
22 4 118 32
23 4 484 62
24 4 664 112
25 4 1004 167
26 4 1231 179
27 4 1372 209
28 4 1582 214
29 5 118 30
30 5 484 49
31 5 664 81
32 5 1004 125
33 5 1231 142
34 5 1372 174
35 5 1582 177
들어가기 전, Orange 데이터는 위와같이 구상되어 있으며, 각 Column은 아래를 의미한다. (?Orange)
Tree : 나무의 종류 (각 오렌지 나무는 다른 나무이며, 특정 나이마다 측정한 값이 들어간다. 1번 오렌지나무, 2번 오렌지 나무 ...)
an ordered factor indicating the tree on which the measurement is made. The ordering is according to increasing maximum diameter.
age : 1968/12/31 부터 계산한 나무의 나이
a numeric vector giving the age of the tree (days since 1968/12/31)
circumference : 나무의 지름
a numeric vector of trunk circumferences (mm). This is probably “circumference at breast height”, a standard measurement in forestry.
> summary(Orange)
Tree age circumference
3:7 Min. : 118.0 Min. : 30.0
1:7 1st Qu.: 484.0 1st Qu.: 65.5
5:7 Median :1004.0 Median :115.0
2:7 Mean : 922.1 Mean :115.9
4:7 3rd Qu.:1372.0 3rd Qu.:161.5
Max. :1582.0 Max. :214.0
데이터를 요약하자면 위와 같다. 각 Tree는 7번씩 측정되었다. 각 항목의 최소, 최대, 평균과 그 사이 지점을 알 수 있다.
이를 Plot 그래프로 나타내보자.
par(mfrow=c(1,2))
with(Orange, plot(Tree, circumference, xlab="tree", ylab="circumference"))
with(Orange, plot(age, circumference, xlab="tree", ylab="circumference"))
위의 그래프를 통해 시각적으로 age에 비례해서 나무의 circumference가 증가한다는 사실을 알 수 있었다.
여기서 ANOVA Test를 진행해보자
> res.Orange <- aov(circumference~Tree*age, data=Orange)
> summary(res.Orange)
Df Sum Sq Mean Sq F value Pr(>F)
Tree 4 11841 2960 27.298 8.43e-09 ***
age 1 93772 93772 864.735 < 2e-16 ***
Tree:age 4 4043 1011 9.321 9.40e-05 ***
Residuals 25 2711 108
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
해당 표를 해석해보자면,
Df(Dgrees of Freedom) : n-1 ( 총 개수 -1 )
Sum Sq (Sum of Squares) : 분산의 분모가 되는 것으로, 각 개인의 점수에서 평균을 뺀 값을 제곱해서 모두 더해준 값
Mean Sq(Mean Squares) : ANOVA test에서는 분산을 평균을 구하는 식과 비슷하다고 해서 MeanSquare이라고 한다.
(분산이라고 생각하면 편하다.)
F-Value : ANOVA test의 결과 값, 1에 가까울수록 비슷한 집단, 멀어질 수록 서로 다른 집단임을 나타낸다.
Pr(>F) : ANOVA test를 통해 귀무가설을 부정하게 될 때, 그것이 잘못된 선택이 될 확률 (p-value와 동일)
위의 결과를 통해 우리는 나이에 따라 트리의 지름이 증가한다는 사실을 알아낼 수 있다.
정리하자면,
ANOVA Test의 값인 F-value의 값이 1에 가까워지면, 상관관계가 적다는 의미이며, 귀무가설을 채용하게 된다.
반대로 값이 1에서 멀어지게 될 수록, 상관관계가 명확해진다.