출처: https://3months.tistory.com/307 [Deep Play]

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 탐색적 자료분석 3-1. 두 변수의 관계 파악 - 연속변수 vs 연속변수 (SPSS)
    SPSS 2019. 8. 26. 20:40

    이전 포스트에서 탐색적 자료 분석의 첫 단계로 연속형 변수에 대한 정규성 검증 및 정규 변환을 하는 법에 대해 알아보았다.  그 외에 자료 안에 결측치가 몇 개나 존재하는지? 최대치와 최소치가 어느 정도이며 최소-최댓값의 범위가 상식적인 범위 내인지 확인이 필요하다. 탐색적 자료 분석 과정 자체가 원래 귀찮은 노가다의 연속이지만 쓸만한 결과를 얻기 위해 꼭 필요한 과정이기도 하다. 이전 포스트의 첨부자료인 diamond.sav 파일을 이용해서 분석을 계속해보자.

     

     

    1. 개별 변수의 확인 (이전 포스트 재탕)

    이전 포스트에서 연속변수의 정규성 확인 및 정규 변환을 하면서 개별 변수의 확인 부분을 얼추 다루었다. 그 부분을 다시 확인하면,

    분석 > 기술통계량 > 데이터탐색
    "도표"항목에서 "검정과 함께 정규성도표", "히스토그램" 항목 체크

    분석을 하려는 자료에  1) 결측이 없는 것을 확인한 후, 2) 최소와 최대값이 납득할만한 범위 내에 존재하는지 확인한다. 3) 마지막으로 첨도와 왜도가 ±2 이내에 존재하며 히스토그램이 한쪽으로 치우치지는 않았는지 확인한다.   

    carat과 price 변수의 경우 히스토그램상 Right-shifted 되어 있으며, 첨도와 왜도 수치도 만족스럽지 못하다. 그런 이유로 이전 포스트에서는 로그 변환을 통해서 이를 바로 잡았었다.

     

     

    2. carat과 price 두 변수의 관계 확인

     

    두 연속 변수의 관계를 확인하는 가장 좋은 첫 단계는 그림을 이용해서 확인하는 것이다.

    그래프 > 레거시 대화 상자 > 산점도/점도표 > 단순산점도

    변환 없이 두 변수의 dotplot을 보면 위와 같은 모습을 보이고 있다. carat이 증가함에 따라 price도 증가? 비싸지지만 왠지 깨끗한 직선 형태는 아닌 것 같다. 그리고 점들의 밀도도 carat과 price 가 0에 가까운 부분은 밀도가 높지만 비싸고 큰 다이아들이 존재하는 부분은 밀도가 작다. 사실 이런 모습들을 해소하기 위해서 이전 포스트에서 두 변수에 대해 로그 변환을 시행한 것이다. 우선 그래프 모양만 로그 형태로 바꿔보자.

    1. Output 창 내의 그래프 더블클릭 > 도표편집기
    2. 편집 > X축 선택
    3. 최소값 0.2로 변경
    4. 척도: "선형" -> "로그"로 변경
    5. "적용" 클릭
    6. 편집 > Y축 선택
    7. 최소값 300로 변경
    8. 척도: "선형" -> "로그"로 변경
    9. "적용" 클릭

    다음은 로그 변환한 변수들의 그래프이다. (위는 축의 변환, 아래는 변수의 변환 비슷해 보이지만 다르다.) 

    1. 변환 > 변수계산
    2. 목표변수에 "log_carat", 숫자표현식 항목에 "LN(carat)" 입력
    3. "확인" 클릭
    4. 동일한 방법을 이용해서 "log_price" 변수 생성

    로그 변환하니 두 변수의 관계가 직선에 가깝다. 이런 경우 감사히 여기고 선형 회귀분석을 시행하면 된다. (사실 변환 후 이렇게 예쁘게 되는 경우는 극히 드물다. 대부분의 경우는 이보다 훨씬 지저분한 관계를 보여준다.)

     

     

     

    3. carat과 price 두 변수를 이용해서 선형회귀분석

     

    다음 단계로 상관관계를 볼 수도 있겠지만, 어차피 상관관계가 논문 table에 들어가는 내용도 아니고 하니 곧장 단변수 선형 회귀분석을 시행하려고 한다. 성격 급한 분들이 하는 실수 중 하나가 변수들과의 관계를 충분히 고려하지 않은 채 곧장 다변수 분석으로 들어가는 것이다. 이런 경우 실수도 많아지지만 변수간 상호작용 같은 꼭 필요한 부분까지 무시하게 된다. 나중에 다시 언급하겠지만 1) 개별 변수의 분석 (x, y), 2) 두 변수의 관계 파악(y와 x의 관계), 3) 3변수의 상호작용 파악 (y와 x1, x2의 관계) 순으로 분석해야 한다.(일반적으로 연구자가 꼭 원하는 내용이 아닌 경우 3변수를 넘는 상호작용은 분석하지 않는다.) carat(x)와 price(y) 두 변수를 선형 회귀 분석해보자면,

    분석 > 회귀분석 > 선형
    도표 > X 항목에 "*ZPRED", Y항목에 "*ZRESID" 입력
         > 표준화 잔차도표 > "정규확률도표" 항목 체크

     

     

     

     

    $$log(price)=1.67×log(price)+8.46$$

    $$price=e^{1.67×log(price)+8.46}$$

     

    의 관계를 가짐을 알 수 있다.

    잔차 도표를 확인해보면, 잔차는 0을 중심으로 특이한 모양이나 경향을 보이지 않고 잘 퍼져있다.

    잔차의 P-P plot 결과도 그리 나쁘지 않아 보인다.

    잔차 결과를 따로 변수로 저장해서 정규성 분포 검정을 중심으로 한 여러 가지 확인을 하는 것도 가능하지만 개인적으로 그렇게 까지 하는 것을 권유하고 싶지는 않다.

     

     

    3. category 변수화 한 후 분석

     

    위와 같이 변환이 마법과도 같이 예쁜 형태를 지니게 해 주는 경우는 극히 드물다. 대부분 지저분한 형태를 지니기 때문에 4군이나 5군으로 나눈 후 ANOVA 분석하는 게 더욱 일반적인 모습이다.

    분석 > 기술통계량 > 빈도분석
    통계량 > 백분위수 값 > "절단점" 체크 > 빈 칸에 "4" 입력

    변환 > 다른 변수로 코딩 변경

    분석 > 평균비교 > 일원배치 분산분석
    종속변수에 "log_price", 요인에 "cate_carat" 선택
    사후분석 항목에 "Scheffe" 항목 선택
    옵션 항목에서 "기술통계", "분산 동질성 검정", "평균 도표" 항목 선택

    카테고리 변수화 된 carat 변수에 따라 log(price)의 평균은 차이를 보이고 있다. 

    ANOVA 결과도 유의하게 나타났으며(ANOVA 결과의 ANOVA 값이라 헛갈리기 쉽지만 의미가 좀 다르다. 위 표의 ANOVA값은 정확히 얘기하면 ANOVA 분석 결과의 ANOVA 값이다. 좀 헛갈리나? 우리는 log(price)의 차이를 설명하기 위해 cate_carat변수를 투입했다. 그 결과 cate_carat을 투입하기 전과 후의 모형을 비교해서 전체적인 설명력이 좋아졌는가가 ANOVA 표에 포함된 p-value의 해석이다. p-value가 <0.001 이니, 유의한 결과를 보이는 것이며, 그 설명은 "cate_carat변수를 투입하기 전 모형보다 투입한 후의 모형이 통계적으로 유의하게 좋아졌다."이다.)

    우리가 관심 있어하는 cate_carat 값끼리의 차이는 사후 검정 결과를 참조한다.

    Scheffe 사후검정 분석 상 1/2/3/4 네 군은 서로 통계적으로 유의하게 차이를 보인다. 

    그런데...

    Levene의 등분산 검정에서 등분산을 만족하지 못하는 것으로 보인다.

    이런 경우 원래는 "Brown-Forsythe" 나 "Welch" 검정을 시행하며, 사후 분석도 등분산을 가정하지 않는 방법(Tamhane's T2...)을 통해서 시행해야 한다. 그런데... 그럼 전체 분석은 이 단계에서 끝이다. 다분석 자체가 잔차의 정규성 및 등분산을 가정하고 진행하는 거라서 만약 이 단계에서 "등분산 아닌데요"라고 주장하면 다변수 분석은 들어가기도 전에 종료해야 한다. 이런 경우에는 좀 유연하게 움직일 필요가 있다.   

    cate_carat 과 log(price)의 상자 도표이다. 보기에 어떤가? 각 군의 퍼진정도 (분산)이 큰 차이를 보이는가? 눈대중으로 그렇게 큰 차이를 보이지 않는다면 등분산 가정하고 넘어가는 것도 하나의 방법이다.

     

     

     

     

    6. Take Home Message

     

    1) 두 연속 변수의 관계가 무조건 직선이라고 생각하면 안 된다.

    2) 기초 통계자료 및 그래프를 참조해서 적절히 변환하거나, 아니면 category 변수화 시키는 것이 가장 중요하다.  

     

    댓글

Designed by Tistory.