이전에 우리는 ANOVA, 카이제곱 적합도 검정, 선형회귀분석 등의 방법으로 커피/프림/설탕의 섭취가 비만에 미치는 영향을 살펴보았다.


이번에는 커피 섭취 빈도가 비만에 미치는 영향을 로지스틱 회귀분석을 통해서 알아보자.





0. 로지스틱 회귀분석이란

  - 보통의 선형회귀모형은 Y(반응변수)가 연속형 변수여야한다. (오차항의 정규성 가정 때문)

    하지만 현실에서는 그렇지 못한 경우가 많은데, 대표적인 경우 고객 이탈, 발병 유무 등의 자료이다.

    이 경우 Y값은 0 또는 1을 갖는다.


    로지스틱 회귀분석은 이러한 경우에 Y가 어떠한 이항분포를 따른다고 가정하고 모형을 세우는 것이다.

    자세한 수식은 생략한다.




1. 변수 설정

   1) 앞서 언급한대로 로지스틱 회귀분석을 위해서는 반응변수(Y)가 이진 자료의 형태를 따라야 한다.

       따라서 우리가 원하는 기준변수인 HE_BMI를 기준에 따라 비만과 정상으로 분류하자.

   2) 커피 섭취 빈도는 총 9개의 범주를 가진다. 이를 적절히 묶어 범주를 줄여서 모형을 적합한다.


 변수

조건 

코딩 

 HE_BMI

25 이상

1 (비만)

25 미만

0 (정상) 

FF_COFFEE 

주1회이내 

주6회이내 

일2-3회 

3


빈도는 다음과 같다.


 주1회이내

주6회이내 

일2-3회 

 계

 641

 806

 1099

 2546






2. 모형 적합 및 결과 해석

  - 별도의 통제변수 없이 SPSS를 통해 "이분형 로지스틱" 모형을 적합한다.





    1) 유의수준 0.05에서 각 회귀계수가 모두 유의함을 확인할 수 있다.




3. 오즈비 추정


 

 

 섭취 빈도

 

 주1회이내

주6회이내 

일2-3회 

 비만여부

(HE_BMI >= 25)

 커피

 1

(기준)

1.294

(1.031-1.625) 

1.524

(1.232-1.885) 

 믹스

1

 1.076

(0.854-1.356)

 1.397

(1.156-1.688)

     

* 믹스에 대해서도 분석을 실시하여 결과를 정리했다.


  - 기준이 "주1회이내"이기 때문에 해당 칸은 1로 나타내었다.

  - 각 칸은 "주1회이내"에 대한 해당 칸의 오즈비 추정값을 구한 것이다.

  - ( ) 안에는 신뢰구간을 의미한다.


  - "주6회이내", "일2-3회" 모두 신뢰구간이 1을 포함하지 않으므로 효과가 유의하다고 할 수 있다.






4. 결론


  - 커피와 프림 모두 일일 2-3회 정도로 많이 마신다면 비만에 대해 더 큰 오즈를 갖는다.


( 발병률이 아주 낮은 사례의 경우 오즈비를 근사적으로 상대위험과 동일하게 생각할 수 있지만,

  이 때 오즈는 상대위험과 동일하게 생각하기 힘들다.)

앞선 분석을 살펴보면 프림(FF_CREAM)의 섭취가 BMI지수(HE_BMI)에 영향을 미치는 것으로 보인다.



- 아래의 그림은 프림 섭취 빈도와 BMI지수의 상자그림을 표현한 것이다.

그림만으로는 추세의 여부를 확인하기 힘들어 보인다.



따라서 프림의 섭취 빈도가 BMI지수에 미치는 영향에 대한 회귀분석을 실시한다.


> summary(mdl)


Call:

lm(formula = HE_BMI ~ FF_CREAM, data = x)


Residuals:

    Min      1Q  Median      3Q     Max 

-8.9189 -2.5522 -0.4539  2.1444 18.2344 


Coefficients:

            Estimate Std. Error t value Pr(>|t|)    

(Intercept) 23.58922    0.10966 215.114  < 2e-16 ***

FF_CREAM     0.05587    0.02065   2.705  0.00686 ** 

---

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


Residual standard error: 3.669 on 3224 degrees of freedom

Multiple R-squared:  0.002265, Adjusted R-squared:  0.001955 

F-statistic: 7.318 on 1 and 3224 DF,  p-value: 0.006861




1) 회귀계수의 검정 및 추정

- 회귀계수의 t검정 결과 p-value가 0.00686이기 때문에 BMI 지수에 대해 프림의 섭취빈도는 유의미한 영향을 미친다.

회귀계수의 추정값은 0.05587로 섭취빈도가 한 수준 증가할수록 BMI지수는 양 0.056만큼 증가한다. 이에 대해 산점도를 살펴보자.



- 위의 그림에서 빨간색 선은 추정한 회귀직선이다. 유의미한 선형추세를 가지지만 추정된 회귀계수는 아주 완만하다.


- 또한, 단순 선형회귀분석에서 설명변수에 대한 계수의 추정이 유의미하기 때문에 모형또한 유의미하다고 할 수 있다.(F값과 그 p-value 참고) 







2) 추정한 모형이 자료의 변동을 얼마나 설명하는가?(R-squared)

- R-squared 값이 0.002265로 아주 작은 것을 확인할 수 있다. 

만약 위의 산점도에서 모든 관측값이 추정한 회귀 직선(빨간 선) 위에 놓인다면 R-squared 값은 1이고 모형은 자료의 변동을 잘 설명한다고 할 수 있을 것이다.

하지만 위의 산점도를 보면 직선에서 많이 떨어져있는 값이 존재한다. 위에서 모형은 유의하지만 R-squared 값이 낮게 나온 이유는 이것 때문이다.







3) 잔차분석

(이미지를 클릭하면 확대해서 볼 수 있습니다.)



 - 왼쪽의 그림은 추정한 BMI지수와 잔차 사이의 산점도를 나타낸 것이다. 특정한 패턴을 보인다면 모형이 적절하지 않음을 나타낸다. 설명변수의 특성상 추정값은 단 9개의 범주로 나타날 수 밖에 없는 점을 고려하면 특정한 패턴을 보이지 않는다는 것을 확인할 수 있다. 단, 2786, 3028, 839에 해당하는 관측치들은 이상치일 수도 있음을 유의하자.


 - 오른쪽 그림은 수정된 잔차의 QQ plot을 나타낸 것이다. 정규성을 따르지 않는 것처럼보인다. 이는 앞선 분석에서도 고려했던 것이다. 모형해석에 주의를 요한다.



   만약 BMI지수의 log를 취한 값을 반응변수로 사용한다면 더 개선된 모형을 가질 수 있을 것이다. 이 경우 log(HE_BMI)에 대한 FF_CREAM의 계수의 추정값은 0.002464007이고 이 값을 다시 바꾸어주면 


> exp(mdl3$coefficients[2])

FF_CREAM 

1.002467 

  즉, 프림섭취빈도가 한 단위 증가할 수록 BMI지수는 1.002467만큼 증가한다는 것을 알 수 있다.







4) 결론

 - 프림 섭취여부는 BMI지수에 유의미한 영향을 미친다. 즉, 프림 섭취가 많을 수록 BMI지수가 증가하는 경향이 있다.

하지만 자료의 특성 상 각 섭취 빈도에서 BMI의 변동이 크다. 따라서 프림 섭취를 통한 BMI지수의 예측은 무의미할 것으로 예상할 수 있다.


 - 빈도수에 대해 정확한 회수로 재코딩하여 모형을 세우는 것 또한 한 가지 방법일 것이다. 두 모형 모두 유의할 것이므로 여기서는 다루지 않았다.

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




  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)를 사용한 독립성 검정을 실시하는 것도 방법일 수 있다.




국민건강영양조사에는 커피와 비만 이외의 많은 변수가 존재하기 때문에, 내가 원하는 변수만 추출해올 필요가 있다.


- 제7기 1차년도 원시자료 이용지침서를 확인하고 필요할만한 데이터를 요약했다.


번호

변수코드

변수명

내용

1

HE_BMI

체질량지수

수치형

2

HE_OBE

비만 여부

1. 저체중

2. 정상

3. 비만

3

FF_COFFEE

[커피]의 최근 1년간 평균섭취빈도

1. 거의 안 먹음

2. 1

3. 2-3

4. 1

5. 2-4

6. 5-6

7. 1

8. 2

9. 3

99. 무응답

4

FA_COFFEE

[커피]1회 평균 섭취량

1. 1ts

2. 2ts

3. 3ts

88. 비해당

     (1회 미만)

99. 무응답

5

FS_COFFEE

[커피]의 하루 3회 초과 섭취 시

하루 평균 섭취 회수

단위 : /

6

FF_CREAM

[프림]의 최근 1년간 평균섭취빈도

위의 커피와 동일

7

FA_CREAM

[프림]1회 평균 섭취량

8

FF_SUGAR

[설탕]의 최근 1년간 평균섭취빈도

9

FA_SUGAR

[설탕]1회 평균 섭취량

10

FQ_COFFEE

[커피]의 주당섭취빈도

단위 : /

11

FQ_CREAM

[프림]의 주당섭취빈도

단위 : /

12

FQ_SUGAR

[설탕]의 주당섭취빈도

단위 : /



서로 다른 테이블(HN16_ALL.sas7bdat , HN16_FFQ.sas7bdat ) 대상에 대한 변수 정보와 커피와 관련한 변수를 추출하여 inner join한 최종 데이터셋을 형성했다.


이러한 과정에서 체질량지수인 HE_BMI 변수는 만 19세 이상을 대상으로 측정하기 때문에 나이가 어려서 대상이 아닌 관측값들은 모두 제외했다.



 > dim(X)

[1] 3371   21


> X <- X[ !is.na(X$HE_BMI),]

> dim(X)

[1] 3226   21

    # 145개의 결측값을 제외한 결과 총 3226개의 관측값을 보유


t.test와 ANOVA 등의 통계적인 평균 검정 방법은 모집단에 대한 정규성이 가정된다.

따라서 관심있는 변수인 HE_BMI에 대한 정규성을 살펴보자.





우선 변수 HE_BMI를 시각화해서 살펴보았다.

히스토그램은 정규분포라고 하기엔 왼쪽으로 조금 치우친 것으로 보이며, 이에 따라 QQplot 또한 이론적인 정규분포에서 떨어진 곳에 위치했음을 알 수 있다.


HE_BMI가 정규성을 만족하도록 하기 위해 로그 변환을 시도해보자.







로그 변환한 데이터는 비교적 정규분포에 가까운 형태를 띄고있다.

수리적으로 계산한 값을 보자.


* 정규성에 대한 test

  1) shapiro wilks test


> shapiro.test(log(HE_BMI))


        Shapiro-Wilk normality test


data:  log(HE_BMI)

W = 0.99549, p-value = 2.422e-08


  2) AD test    


> ad.test(log(HE_BMI))


        Anderson-Darling normality test


data:  log(HE_BMI)

A = 2.3618, p-value = 5.62e-06


  3) K-S test


> ks.test(unique(log(HE_BMI)), "rnorm")


        One-sample Kolmogorov-Smirnov test


data:  unique(log(HE_BMI))

D = 4.4523, p-value < 2.2e-16

alternative hypothesis: two-sided


3가지 정규성 검정의 결과 모두 p-value가 아주 작아 귀무가설을 기각한다.

즉, 해당 자료의 log값은 정규성을 따른다고 할 수 없다.




 - 앞으로의 진행 방향


  1) 대표본이므로 정규성을 따른다고 생각하고 t.test, ANOVA 등을 수행할 수 있다. (가장 편한 방법)

  2) 안타깝게도 가정을 만족하지 않아 모수적인 검정방법을 사용할 수 없다. 따라서 비모수적은 Wilcoxon Rank Sum test or Kruskal 등의 방법을 사용한다.

    - 이 때, 표본 수에 따른 비모수적 검증 방법의 효율을 생각해봐야한다.


  +) 모형식을 구상할 수 있는 방법에 대해서 생각해보자.

  +) 다른 차시로의 확장은 7차시의 방법론이 정리가 되었을 때 시행해도 될 듯


   >>>> t-test의 경우 표본의 크기가 크다면 정규성에 크게 영향을 받지 않는다.

            등분산 가정의 경우도 s.e의 식을 고려하면 sqrt( s1/n1 + s2/n2 )인데 n의 크기가 커질수록 s1과 s2의 차이에 덜 민감하다.

            통계 모형의 경우 결국 exact하게 정규성을 따를때만 그러하다를 말하는 것이 아님을 기억하자.

'분석 > 비만과 커피' 카테고리의 다른 글

[비만과커피] 회귀분석  (0) 2018.05.05
[비만과커피] 빈도에 따른 그룹 만들기와 그에 대한 검정  (0) 2018.05.01
[ 진행 방향 논의 ]  (0) 2018.04.28
분산분석(ANOVA)  (0) 2018.04.25
개요  (0) 2018.04.18

 * 커피 섭취와 비만은 어떤 관련이 있을까?


introduction)

  1) 일반적으로 커피는 건강에 안 좋고, 비만 정도를 높인다고 기대되어 진다.

  2) 하지만, 커피를 마신 후 입맛 없음을 느낀 경우가 있을 것이다. 이에 따라 커피의 적절한 섭취가 비만을 해소해줄 수 있는지 알아볼 필요가 있다.



data) [ 질병관리본부 - 국민건강영양조사 ]

  - 다운로드 경로 : http://cdc.go.kr/CDC/contents/CdcKrContentView.jsp?cid=60599&menuIds=HOME001-MNU1130-MNU1639-MNU1640-MNU1642








데이터 불러오기)


libname  'C:\Users\twins\Desktop\KSB\이하 경로';


data health.coffee;

  set health.Hn16_ffq;

  keep mod_d ID ID_fam sex age FF_COFFEE FA_COFFEE FS_COFFEE FF_CREAM FA_CREAM FF_SUGAR FA_SUGAR FQ_COFFEE;

run;


data health.bmi;

  set health.hn16_all;

  keep mod_d ID BO1 BO1_1 BO1_2 BO1_3 BO2_1;

run;


proc sort data=health.coffee; by ID; run;

proc sort data=health.bmi; by ID; run;


/* 두 테이블에서 필요한 변수만 가져온 분석테이블 */

data health.dataset;

  merge health.bmi(in=bmi) health.coffee(in=cof);

  by ID;

  if BO1_1=8 | BO1_1=9 then delete; /* 무응답과 비해당을 제외 */

  if cof;

run;


* 수치형인 것 같지만 범주형 자료임

   그래서 대응분석 또는 적합도 검정이 필요할 듯; 







< 1년간 체중변화 여부와 커피 섭취 빈도 사이의 연관성을 평가하기 위한 카이제곱 적합도 검정의 결과 > 


proc freq data=health.dataset;

  tables BO1_1*FF_COFFEE / chisq nocol norow nopercent;

run;





* 두 변수는 서로 연관성이 없음을 알 수 있다.




next) 

  커피 섭취 빈도 변수는 1회당 섭취량을 고려하지 않은 것이다.

  또한 설탕, 프림 등의 함유량도 상관이 존재할 수 있다. 

  이러한 변수들을 정리하여 다시 한 번 적합도를 살펴볼 필요가 있어보인다.

+ Recent posts