獨斷論

GLM Multivariate를 이용하여 다변량분산분석을 수행하기 (SPSS 사용설명서 28, MANOVA) 본문

과학과 기술/SPSS

GLM Multivariate를 이용하여 다변량분산분석을 수행하기 (SPSS 사용설명서 28, MANOVA)

부르칸 2015. 6. 6. 01:51

MANOVA란 multivariate analysis of variance 또는 Multivariate ANOVA의 약자이다. ANOVA와 같이 독립변수에 의한 종속변수의 영향을 보는 것인데 종속변수가 2개 이상이라는 것이 다르다. MANOVA의 fixed factor는 범주형변수(categorical variable)이어야 한다. fixed factor의 각 level 즉 값들의 수준은 종속변수에 선형적인 관계로 영향을 미칠수가 있다. Interaction의 영향도 고려해야 할때가 있는데 이는 두 개의 factor가 종속변수에 서로 다른 형을 미칠때 이들 두 개 factor의 곱을 고려하게 된다.


예를 들어보면....


심장마비환자를 치료하려면 수술 전에 일종의 약을 투여하게 된다. 이 약은 심혈관에 생긴 혈전을 용해하여 심장수술을 용이하게 한다. 지금 병원 A에서 사용하고 있는 혈전용해제로 streptokinase라는 것이 사용되고 있는데 새롭게 개발된 약 reteplase와 alteplase를 사용한다면 혈전용해를 효과적으로 하여 수술 경과도 좋아 오래 입원하지 않아도 되고 이에따라 입원비가 적게 든다는 장점이 있으나 새로운 혈전용해제는 비싸다는 단점이 있다. 따라서 환자의 전체비용이 줄어들지 늘어날지 검사해보아야만 한다. 만약 (혈전용해제 비용) + (입원비)가 streptokinase를 쓸때보다 reteplase나 alteplase를 쓸때에 현저히 줄어들었다면 이는 환자에게나 병원에게나 서로 이득이 되는 것이다. 환자는 병원비가 줄어서 좋고 병원은 같은 입원병실수를 가지고도 훨씬 많은 환자를 치료할수 있기때문이다.


이제 아래 데이터 파일을 받아서 SPSS에서 읽은 후에 heartopt.sav로 저장하자.

heartopt.csv

잘 되었다면 아래와 같은 형태가 된다.



Variable View를 눌러 독립변수로 사용할 clotsolv와 proc가 nominal변수로 되어 있는지 확인하고 종속변수로 쓸 los와 cost가 scale변수로 되어 있는지 확인한다. 잘 되어 있지 않다면 고친다. 

변수는 아래와 같다.

  • age: 환자의 나이
  • gender: 환자의 성별
  • clotsolv: 사용한 혈전용해제 종류, 1=streptokinase, 2=reteplease, 3=alteplase, -1와 0은 missing value
  • proc: 수술 방법
  • los: 입원한 기간
  • cost: 혈전용해제 비용
  • lnlos와 lncost는 los와 cost를 자연로그 변환한 것


다변량분산분석(MANOVA) 수행하기

Analyze > General Linear Model > Multivariate...를 클릭한다. 



Dependent variables에 los와 cost를 지정하고

Fixed factor에 clotsolv와 proc를 지정한다.

Contrasts를 클릭하여 새로운 대화창이 하나 뜨면

clotsolv를 클릭 후에 Change contrasts의 contrasts를 Simple로 바꾸고 Reference Category를  First로 바꾼 후에 Change 버튼을 클릭 한 후에 Continue를 클릭한다.

Options를 클릭하여 아래와 같은 대화창이 하나 뜨면



Estimates of effect size, Homogeneity tests, Spread vs. level plot를 클릭하고

Continue와 OK를 클릭하연 다변량분산분석의 결과를 볼수 있다.


결과보기

Multivariate Tests

아래 표는 multivariate tests의 결과를 보여준다. 즉 독립변수가 종속변수에 영향이 있는지 없는지를 다변량으로 본 것이다. 주로 사용되는 statistics는 Pillai's trace, Wilks lambda, Hotelling's trace, Roy's largest root인다. 다변량분산분석의 기본적인 가정에 위배되는 데이터에 대해 Pillai's test가 가장 좋은 결과를 보여준다고 한다.



Pillai's trace는 항상 양수인 statistic인데 그 값이 클수록 MANOVA에서 영향이 크다는 것이다. 

Wilk's lambda도 항상 양수이지만 0에서 1 사이의 값을 갖는다. 값이 작을수록 영향이 큰 것을 나타낸다.

Hotelling's trace도 항상 양수이고 그 값이 클수록 모델에 영향이 크다는 것을 나타낸다. Hotelling's trace의 값은 Pillai's trace의 값보다 항상 커야 한다. 경우에따라 이 두개의 값들이 서로 비슷할때가 있는데 이럴때는 p-value가 아무리 작더라도 모델에 영향은 크다고 보아서는 안된다. 

Roy's largest root는 항상 양수이다. 그 값이 증가함에따라 모델에 영향이 크다는 것을 나타낸다. Roy's largest root는 항상 Hotelling's trace보다 작거나 같다. 만약 Roy's largest root와 Hotelling's trace가 같은 값을 갖는다면 다음 세가지 중에 하나에 해당된다. 

  1. 모델은 여러개의 종속변수 중에 하나에만 영향을 미친다.
  2. 종속변수끼리 서로 상관관계가 있다.
  3. 모델에 대한 영향이 그렇게 크지 않다.

위와 같은 사실을 염두해두고 multivariate tests를 분석해보자.

clotsolv와 proc의 p-value는 모두 0.05보다 작으므로 모델에 영향을 미치고 이 둘의 interaction의 p-value는 크기때문에 모델에 영향을 미치지 못한다고 보아야 한다. 하지만 clotsolv의 모델에 영향은 크지 못하다고 보는게 적절한데 왜냐하면 Pillai's trace 값이 Hotelling's trace 값과 비슷하기 때문이다.


p-value를 봐도 되지만 더 확실하게 보는 방법은 partial eta squared를 보는 방법이다.

Partial eta squared의 최대값은 항상 1인데 이 값이 클수록 모델에 영향을 많이 미치는 것이다. clotsolve의 partial eta squared의 값은 매우 작고 proc의 값은 크기때문에 위 p-value로 분석한 것과 같이 clotsolve는 모델에 영향을 많이 미치지 못하고 proc가 모델에 영향을 많이 미친다과 볼수 있다.


clotsolv의 p-value를 0.05보다 작아 모델에 대한 영향이 크지만 partial eta sqaured가 그렇게 크지 못하므로 그 영향이 크지 못하다는 의미하는 바는 무엇일까? 이는 아마도 혈전용해제 3개 가운데 1개가 모델에 영향이 다른 2개와 좀 다를수 있다는 것을 보여준다. 이제 이를 검토해보기 위하여 contrast 결과를 보자.


Contrast 결과

아래 표는 contrast의 결과를 보여 준 것이다.

혈전용해제 중에 Level 1은 streptokinase, Level 2는 reteplase, Level 3는 alteplase이다.


표의 첫번째 행의 los에 대한 contrast estimate가 -0.382이고 p-value가 0.001이므로 level 2 즉 reteplase를 쓴 환자가 streptokinase를 쓴 환자보다 0.382일 만큼 적게 입원해 있었다고 볼수 있다. cost는 reteplase를 쓴 환자가 streptokinase를 쓴 환자보다 약 600달라(0.593)를 많이 사용했다고 볼수 있지만 p-value는 0.176이므로 이 영향은 통계적으로 의미가 없다고 보아야 한다.

표의 두번째 행을 보면..., alteplase를 쓴 환자가 streptokinase를 쓴 환자보다 입원일수가 0.516적다고 볼수 있다(p-value=0.000). 비용은 약 720달라(0.722) 정도 증가했다고 나오지만 이는 통계적으로 의미있다고 볼수가 없다(p-value=0.1).

결과가 이렇게 나왔지만 가장 중요한 모델가정에 맞는지 맞지 않는지 검토해보지 않았다.

Testing Homogeneity of Covariance Matrices


MANOVA의 가장 중요한 가정은 종속변수가 multivariate normal distribution를 따른다는 것과 variance-covariance matrix가 level간에 서로 같다는 것이다. Box's M 테스트의 null hypothesis는 공분산행렬이 서로 같다는 것인데 여기 표에서 pvalue가 0.000이므로 공분산행렬은 그룹간에 서로 다르다는 것을 보여준다. 따라서 지금까지 보았던 clotsolv와 proc들의 모델에 대한 영향이 정확하지 않을수도 있다. 그런데 Box's M 테스트는 데이터의 샘플크기에 크게 영향을 받는다. 즉, subjects 또는 observations가 많을때 homogeneity에서 약간만 벗어나더라도 p-value가 작게 나온다. 또한 Box's M 테스트는 정규분포이냐 아니냐에 따라 크게 영향을 받는다. 이럴땐 다른 테스트를 더 해보면 좋다. Levene's test를 보자.


los의 p-value는 0.185이지만 cost의 p-value가 0.000이므로 cost의 그룹간 variance가 서로 다르다는 것을 보여준다. 이는 log 변환을 하면 해결할수 있다.

이제 cost 대신 lncost를 사용하여 위 분석을 처음부터 다시 해보자.


Log 변환하여 다시 MANOVA 수행하기

앞에서 한데로 Analyze > General Linear Model > Multivariate...를 클릭한다.



cost 대신 lncost를 종속변수로 설정한다. 나머지 contrast와 options들은 앞에서 한것과 똑같이 수행한다. 만약 SPSS를 닫지 않았다면 그대로 남아 있을 것이다. OK를 클릭한다.


Log transform하여 MANOVA 수행한 결과보기

아래 표는 Box's M를 보여준 것인데 여전히 p-value가 0.05보다 작다.

하지만 Box' M의 값이 270에서 56으로 현저히 줄었다.


아래 표를 보면 p-value가 모두 0.05보다 크므로 los와 lncost 모두 variance가 그룹간에 같다고 볼수 있다. 



아래 표는 contrast의 결과를 보여준 것이다. los에 대한 결과는 앞서 수행한 것과 같지만 lncost는 좀 다르다. 우선 p-value를 보면 0.05보다 모두 작으므로 통계적으로 의미가 있다는 것을 보여준다. 

첫번째 행의 Level 2(reteplase)와 1(streptokinase)의 차이에서 lncost의 contrast estimate 값이 0.022이므로 exp(0.022) = 1.022이다. 즉, 약 2.2% 정도 reteplase를 사용했을때 streptokinase를 사용했을때보다 비용이 많이 든다는 것이다. 두번째 행의 Level 3(alteplase)도 똑같이 Constrast estimate가 0.024이므로 exp(0.024) = 1.0243 즉 2.43% 정도 alteplase를 사용했을때 더 많은 비용이 든다. 


Comments