- 지난 번에 회의한 내용을 토대로 집단을 규정하고 그에 대한 검정을 실시할 것이다.




  1. 데이터 구성

    1) 원시자료 : 전과 동일하게 제7기 1차년도 국민건강영양조사 데이터를 활용

    2) 변수는 다음 게시글과 같다.
        http://statart.tistory.com/29 





  2. 그룹 규정 & 새로운 데이터 셋 소개

    1) 새로운 그룹변수 지정

  3. 구분 

    내용 

    코딩 

     control

    커피를 거의 마시지 않는 집단 

     FF_COFFEE==1

     coffee

    프림과 설탕을 추가하지 않은 커피만 마시는 집단 

     FF_COFFEE > 1

     FF_CREAM == 1

     FF_SUGAR == 1

     mixed

    프림과 설탕이 모두 포함되어있는 커피만 마시는 집단 

     FF_COFFEE == FF_CREAM

     FF_COFFEE == FF_SUGAR 


    위의 조건을 모두 만족하지 않는 관측값들(discard)은 대상에서 모두 제외한다.
    빈도 수는 다음과 같다.
       coffee control   mixed discard 
          942     401    1203     680 
    해당 그룹의 변수명을 그룹을 뜻하는 grp로 둔다.

    2) 데이터 셋 소개
      - 검정을 위해 추려낸 데이터 셋은 다음과 같다.
         HE_BMI  HE_obe FF_COFFEE FF_CREAM FF_SUGAR    grp
      2 21.25836      2         8               8        8         mixed
      3 26.76157      3         7               1        1         coffee
      4 23.26214      2         7               7        7         mixed
      5 18.54905      2         9               1        1         coffee
      6 21.05693      2         9               1        1         coffee
      7 28.43173      3         9               1        1         coffee





3. 데이터 살펴보기
  1) boxplot 
     - Y축은 HE_BMI를 나타낸다.
     - control 집단은 coffee와 mixed집단에 대해 차이가 있어보인다.



  2) histogram
     - 각 집단은 비슷한 분포를 따르는 것으로 보인다.
     - 또한, 정규성에서 크게 벗어나지 않는 것으로 보인다.







4. 검정

  1) ANOVA
    (1) 등분산검정
       - 집단별 분산의 차이가 유의미하다면 분산분석의 결과를 신뢰할 수 없다.
         따라서 bartlett의 등분산 검정을 실시한다.

> bartlett.test(HE_BMI~grp, data)

        Bartlett test of homogeneity of variances

data:  HE_BMI by grp
Bartlett's K-squared = 0.77593, df = 2, p-value = 0.6784

       - p-value가 0.6784로 귀무가설을 기각할 수 없다.
         따라서 집단별 등분산 가정을 만족한다. 이제 분산분석을 실시한다.


    (2) ANOVA

> summary(anova)

              Df Sum Sq Mean Sq F value   Pr(>F)    
grp            2    299  149.30   11.02 1.72e-05 ***
Residuals   2543  34453   13.55                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

       - F-값이 11.02이고 p-value는 0에 아주 가까운 값을 갖는 것을 확인할 수 있다.
         따라서 집단 별 HE_BMI의 평균차이가 유의미하다.


    (3) 사후 검정

> scheffe.test(anova, "grp", group=TRUE, alpha=0.05, console=TRUE)

Study: anova ~ "grp"

Scheffe Test for HE_BMI 

Mean Square Error  : 13.54831 

grp,  means

          HE_BMI      std    r      Min      Max
coffee  23.87418 3.728651  942 14.72621 39.54818
control 23.03551 3.594389  401 15.21665 37.07538
mixed   24.02228 3.671507 1203 15.78353 41.41637

Alpha: 0.05 ; DF Error: 2543 
Critical Value of F: 2.999264 

Groups according to probability of means differences and alpha level( 0.05 )

Means with the same letter are not significantly different.

          HE_BMI groups
mixed   24.02228      a
coffee  23.87418      a
control 23.03551      b

      - 통제집단은 커피를 마신 집단과 유의미한 차이가 있다.
      - 하지만 커피만 마신 집단과 프림과 설탕을 모두 마신 집단 간의 차이는 유의미하지 않다.





  2) 적합도 검정
    (1) 카이제곱 적합도 검정
        - 카이제곱 적합도 검정은 두 범주형 변수 사이의 연관성을 파악하는 통계적 기법이다.
          이를 위해서 HE_BMI 변수 대신 HE_obe 변수를 사용할 것이다.
          HE_obe 변수는 HE_BMI 변수를 일정한 기준에 대해 구간화한 변수이다.
          검정의 결과는 다음과 같다.

 1

 HE_BMI < 18.5

 저체중 

 2

 18.5 < HE_BMI < 25 

 정상 체중

 3

 25 < HE_BMI

 비만


> chisq.test(data$HE_obe, data$grp)

        Pearson's Chi-squared test

data:  data$HE_obe and data$grp
X-squared = 20.376, df = 4, p-value = 0.0004209
        - p-value가 0.05보다 작기 때문에 귀무가설을 기각한다.
          따라서 집단과 비만 여부는 관련이 있다.
          위의 ANOVA를 통해 통제집단과 그 외의 집단의 차이가 유의미함을 확인했다.
          동일한 결과를 지지함을 확인할 수 있다.

         이제 통제집단을 제외한 coffee와 mixed 두 집단을 비교해볼 것이다.

> chisq.test(data$HE_obe[w], data$grp[w])

        Pearson's Chi-squared test

data:  data$HE_obe[w] and data$grp[w]
X-squared = 4.5854, df = 2, p-value = 0.101

        - p-value가 0.101로 0.05보다 크다. 즉, 귀무가설을 기각할 수 없다.
          통제집단을 제외했을 때, 집단과 비만 여부는 관련이 있다고 할 수 없다.


    (2) 빈도표와 모자이크 플랏을 이용한 시각화
        - 빈도표
    coffee control mixed
  1     34      30    54
  2    603     265   717
  3    305     106   432








        - mosaicplot

       a. 통제집단의 관측도수는 다른 집단에 비해 적다.

       b. 통제집단은 비교적 저체중이 많다.

       c. coffee집단과 mixed 집단은 정상과 과체중을 합한 비율은 거의 비슷한다.

       d. 과체중인 관측값의 수는 통제집단, coffee, mixed 순으로 점점 증가하는 것처럼 보인다.






5. 결론

    - 검정의 결과, 커피의 섭취가 비만도에 영향을 미치는 것을 확인할 수 있다.

       즉, 커피를 섭취한 집단은 통제집단에 비해 체중이 높은 것을 확인할 수 있다.


    - 하지만 커피만 섭취하는 집단과 프림 및 설탕을 함께 섭취하는 집단 간의 차이가 있다고 할 근거는 없다.


    - 마지막의 mosaic plot을 보면 어느정도 증가하는 추세는 확인할 수 있으나, 이는 엄밀한 근거가 되기는 힘들어보인다.

 - FF_COFFEE, FF_CREAM, FF_SUGAR : 변수를 전처리해서 집단을 3가지로 재분류


1) control : 커피를 거의 마시지 않는 집단

               데이터에서는 FF_COFFEE==1 에 해당하는 집단


2) coffee : 다른 성분을 추가하지 않고 커피만 섭취하는 집단

              데이터에서 1이 아닌 FF_COFFEE값이 존재하지만, FF_CREAM과 FF_SUGAR는 입력되어 있지 않은 경우(또는 1(거의안함)으로 분류된 경우) 해당 집단으로 분류


3) mixed : 커피에 프림과 설탕이 모두 포함되어있는 집단

              데이터에서는 FF_COFFEE, FF_CREAM, FF_SUGAR가 모두 동일한 관측값을 해당 집단으로 분류


  - 이에 해당하지 않는 관측값은 모두 제외한다.

    ex) FF_COFFEE와 FF_CREAM, FF_SUGAR가 일치하지 않는 관측값 등은 모두 제외


1. 이 데이터 셋에 대해 HE_BMI를 ANOVA 및 사후분석 처리

2. 또는 적합도 검정(HE_OBE)

3. HE_BMI를 타겟으로 하는 회귀분석 유도하기

* 커피 섭취는 우리가 생각하는 비만도(BMI 지수) 에 영향을 미칠까?



1. 데이터 형성

- 원시자료 : 국민건강영양조사 제7기 1차년도 조사자료 


- 필요한 변수 선택 : 


names(data)

 [1] "ID"        "HE_BMI"    "HE_obe"    "FF_COFFEE" "FA_COFFEE" "FS_COFFEE"

 [7] "FF_CREAM"  "FA_CREAM"  "FF_SUGAR"  "FA_SUGAR"  "FQ_COFFEE"

  # ID 변수는 제거해도 상관 없음.



- 변수 처리와 결측치 파악(sas data file을 불러왔기 때문에 결측치에 대한 입력이 필요하다.)

> data$FF_COFFEE <- ifelse(FF_COFFEE==99, NA, FF_COFFEE)

> data$FA_COFFEE <- ifelse(FA_COFFEE==99 | FA_COFFEE==88, NA, FA_COFFEE)

> data$FF_CREAM <- ifelse(FF_CREAM==99, NA, FF_CREAM)

> data$FA_CREAM <- ifelse(FA_CREAM==99 | FA_CREAM==88, NA, FA_CREAM)

> data$FF_SUGAR <- ifelse(FF_SUGAR==99, NA, FF_SUGAR)

> data$FA_SUGAR <- ifelse(FA_SUGAR==99 | FA_SUGAR==88, NA, FA_SUGAR)


# 결측치 파악하기

> apply(data, 2, function(x) sum(is.na(x)))

       ID    HE_BMI    HE_obe FF_COFFEE FA_COFFEE FS_COFFEE  FF_CREAM  FA_CREAM 

        0       145       145         0       424      3065         0      1301 

 FF_SUGAR  FA_SUGAR FQ_COFFEE 

        0      1278         0


FF_ : (커피, 프림, 설탕 등을) 마시는 주기

FA_ : (커피, 프림, 설탕 등을) 1회 마실 때 첨가하는 양

FS_COFFEE : 하루에 커피를 몇 잔 마시는가? (3잔 이상인 대상자만)

  * 각 변수의 의미를 보면 FA와 FS는 결측이 존재할 수 있음을 알 수 있다.

  * 다행히 FF_에는 결측이 전혀 존재하지 않는다.






2. 탐색


  1) 상자그림을 보고 수준이 올라갈수록 중심위치의 이동이 있을거라고 예상해볼 수 있다.


  2) 정규성을 확인


      ANOVA test는 정규성에 대해 꽤 robust한 분석이다. 

      따라서, ANOVA를 수행하는데 큰 문제는 없을 거라고 생각해볼 수 있다.


  3) 등분산성 확인

> bartlett.test(HE_BMI~FF_COFFEE, data)


Bartlett test of homogeneity of variances


data:  HE_BMI by FF_COFFEE

Bartlett's K-squared = 7.3375, df = 8, p-value = 0.5007


> bartlett.test(HE_BMI~FF_CREAM, data)


Bartlett test of homogeneity of variances


data:  HE_BMI by FF_CREAM

Bartlett's K-squared = 7.0387, df = 8, p-value = 0.5325


> bartlett.test(HE_BMI~FF_SUGAR, data)


Bartlett test of homogeneity of variances


data:  HE_BMI by FF_SUGAR

Bartlett's K-squared = 8.9488, df = 8, p-value = 0.3466


      등분산성을 확인하기 위해 bartlett.test를 수행했다.

      이 때의 귀무가설 H0는 "자료가 등분산을 따른다." 이다.

      유의수준이 0.05라고 했을 때, 세 종류 모두 귀무가설을 기각할 수 없다.

      즉, 등분산의 문제 없이 ANOVA를 수행할 수 있다.






3. 분산분석


> aov_coffee <- aov(HE_BMI~FF_COFFEE, data)

> aov_cream <- aov(HE_BMI~FF_CREAM, data)

> aov_sugar <- aov(HE_BMI~FF_SUGAR, data)


> summary(aov_coffee)

              Df Sum Sq Mean Sq F value   Pr(>F)    

FF_COFFEE      8    518   64.73   4.845 5.92e-06 ***

Residuals   3217  42980   13.36                     

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

145 observations deleted due to missingness


> summary(aov_cream)

              Df Sum Sq Mean Sq F value Pr(>F)  

FF_CREAM       8    239   29.93   2.226  0.023 *

Residuals   3217  43258   13.45                 

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

145 observations deleted due to missingness


> summary(aov_sugar)

              Df Sum Sq Mean Sq F value   Pr(>F)    

FF_SUGAR       8    353   44.14   3.291 0.000954 ***

Residuals   3217  43144   13.41                     

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

145 observations deleted due to missingness

     세 가지 결과 모두 귀무가설을 기각한다.

     ANOVA의 귀무가설 H0는 "각 집단의 모평균이 동일하다."를 지지하기 때문에 커피, 프림, 설탕은 각각 BMI 지수에 영향을 끼친다고 할 수 있다.





4. 사후분석

     

* 집단 수가 많고, 집단별 표본 수가 동일하지 않기 때문에 Scheffe의 방법을 사용해 사후분석을 실시해보자.


  1) FF_COFFEE

> scheffe.test(aov_coffee, "FF_COFFEE", group=TRUE, alpha = 0.05, console = TRUE)


Study: aov_coffee ~ "FF_COFFEE"


Scheffe Test for HE_BMI 


Mean Square Error  : 13.36014 


FF_COFFEE,  means


    HE_BMI      std   r      Min      Max

1 23.03551 3.594389 401 15.21665 37.07538

2 23.51493 4.059175  73 16.92901 36.08853

3 23.73982 3.939739  87 17.73744 35.37101

4 23.18744 3.649865 113 14.72621 38.37715

5 23.84708 3.875124 291 15.87577 38.11602

6 23.89695 3.900598 127 16.73081 39.54818

7 23.65714 3.585331 642 15.78353 38.22888

8 24.09519 3.608761 816 16.29307 41.99118

9 24.27338 3.584534 676 16.11203 37.81432


Alpha: 0.05 ; DF Error: 3217 

Critical Value of F: 1.94128 


Groups according to probability of means differences and alpha level( 0.05 )


Means with the same letter are not significantly different.


    HE_BMI groups

9 24.27338      a

8 24.09519      a

6 23.89695     ab

5 23.84708     ab

3 23.73982     ab

7 23.65714     ab

2 23.51493     ab

4 23.18744     ab

1 23.03551      b

     - 3가지 그룹으로 유의한 차이를 분류할 수 있다.

     - 전반적으로 더 많은 양의 커피를 섭취할 수록 BMI 지수는 증가하는 것을 확인할 수 있다.



  2) FF_CREAM

> scheffe.test(aov_cream, "FF_CREAM", group=TRUE, alpha = 0.05, console = TRUE)


Study: aov_cream ~ "FF_CREAM"


Scheffe Test for HE_BMI 


Mean Square Error  : 13.44667 


FF_CREAM,  means


    HE_BMI      std    r      Min      Max

1 23.70397 3.672077 1241 14.72621 39.54818

2 23.42212 3.888203  141 16.38891 36.08853

3 23.91030 3.934407  153 16.29307 41.99118

4 23.72214 3.534492  183 16.23205 38.37715

5 23.88857 3.898432  252 15.87577 38.11602

6 23.36210 3.715863   60 17.39854 33.34422

7 23.59222 3.526478  428 15.78353 41.54292

8 24.15068 3.588591  399 16.89932 41.41637

9 24.38576 3.584984  369 16.35906 36.48608


Alpha: 0.05 ; DF Error: 3217 

Critical Value of F: 1.94128 


Groups according to probability of means differences and alpha level( 0.05 )


Means with the same letter are not significantly different.


    HE_BMI groups

9 24.38576      a

8 24.15068      a

3 23.91030      a

5 23.88857      a

4 23.72214      a

1 23.70397      a

7 23.59222      a

2 23.42212      a

6 23.36210      a

      - group을 분류할 수 없다.

      - ANOVA의 결론은 평균 차이가 유의하다는 것을 지지하지만 사후검정의 결과 그 차이가 크지 않은 것으로 보인다.


      - 일반적으로 프림의 섭취가 많아 질수록 비만도가 높아질 것이라는 통념을 고려해보면, 이에 대해서는 자료의 구성과 분석의 타당성을 다시 한 번 생각해볼 필요가 있다. *



  3) FF_SUGAR

> scheffe.test(aov_sugar, "FF_SUGAR", group=TRUE, alpha = 0.05, console = TRUE)


Study: aov_sugar ~ "FF_SUGAR"


Scheffe Test for HE_BMI 


Mean Square Error  : 13.41135 


FF_SUGAR,  means


    HE_BMI      std    r      Min      Max

1 23.56415 3.726787 1218 15.21665 39.54818

2 23.31761 3.828601  128 16.73081 36.08853

3 23.93112 4.010568  137 16.23205 41.99118

4 23.90935 3.329878  146 14.72621 35.13736

5 24.06747 3.675423  248 15.87577 38.11602

6 23.88976 3.626571   60 17.39854 33.34422

7 23.61175 3.495242  449 15.78353 37.28467

8 24.20216 3.696068  432 16.89932 41.54292

9 24.40664 3.543703  408 16.35906 36.48608


Alpha: 0.05 ; DF Error: 3217 

Critical Value of F: 1.94128 


Groups according to probability of means differences and alpha level( 0.05 )


Means with the same letter are not significantly different.


    HE_BMI groups

9 24.40664      a

8 24.20216     ab

5 24.06747     ab

3 23.93112     ab

4 23.90935     ab

6 23.88976     ab

7 23.61175     ab

1 23.56415      b

2 23.31761      b

      - FF_COFFEE와 유사하게 세 가지 그룹이 형성되었으며, 설탕의 섭취가 많은 집단이 BMI 지수 또한 높은 것을 확인할 수 있다.







1) factor의 수준이 많아질수록 검정은 불완전해진다.

    - 9개의 수준을 다른 기준에 의하여 묶어보고, 더 작은 수준을 가지고 다시 분석해볼 필요가 있다.


2) scheffe 검정 

   - FF_CREAM 변수의 경우 분산분석의 결과는 유의했지만, 사후 검정에서 집단을 분류할 수 있었다. 그 이유에 대해서 다시 살펴볼 필요가 있다.

   참고) http://gofood.tistory.com/424 *


3) 범주형태의 자료(HE_OBE)를 사용한 독립성 검정을 실시하는 것도 방법일 수 있다.


+ Recent posts