티스토리 뷰

반응형

[통계 이야기/Multilevel model (다층 모형)] - Multilevel Modeling (다층 모델링)이 뭐임?

[통계 이야기/Multilevel model (다층 모형)] - 언제 multilevel modeling (다층 모델링)을 해야할까?

[통계 이야기/Multilevel model (다층 모형)] - Random? Fixed? Effects ◁ 현재 포스팅

 

Multilevel modeling에 대해 공부하다 보면 Random effects, Fixed effects 이런 말들을 해요.

이게 뭘까요?

Random factor

저 effects를 설명하기에 앞서, 먼저 Random factor가 뭔지 말해볼게요.

간단해요. Random factor = cluster 예요.

허무한가요? 허허

만약 여러 학교에서 데이터를 걷었으면 학교가 random factor가 될 수 있고,

여러 의사를 통해 환자에 대한 데이터를 걷었으면 의사가 random factor가 될 수 있는 거예요.

간단하죠?

Fixed/Random effects

자 그럼 여기서 multilevel modeling (MLM)이 뭐가 특별한가 다시 복습해볼까요?

기존의 OLS 회귀분석이나 ANOVA 등은 독립변수와 종속변수간의 관계를 평균 값으로 보잖아요? 즉 100개의 학교에서 데이터를 수집해도 "학교"라는 변수는 무시하고 전부 한꺼번에 평균을 내려서 관계를 추정해요. 하지만 MLM은 이 "학교"라는 변수도 고려하는 거예요. 

이렇게 "학교"를 무시하고 관계를 보는게 fixed effects,

"학교"를 고려해서 학교간의 차이를 보는게 random effects.

이해가 되시나요?

예를 들어서 5개의 학교에서 "친구가 많을수록 성적이 좋을 것이다" 라는 가설을 테스트하기 위해 친구의 수와 성적 데이터를 수집했다고 할게요.

그런데 학교의 위치에 따라서, 어떤 학교는 부자 동네에 위치해 있고, 어떤 학교는 달동네와 가깝고해서 학교마다 어떤 차이가 있을 것 같아요. 그리고 그 동네의 평균 임금 데이터 또한 수집했어요.

데이터는 대충 다음과 같아요.

school  studentID  #friends  grade   income

   1           A             5        80     $50,000

   1           B             1        67     $50,000

   1           C            10       90     $50,000

   2           D            3        70     $30,000

   2           E             1        70     $30,000

   2           F             7        40     $30,000

   3           G            3         98     $70,000

이런식의 데이터가 나오겠죠?

성적에 대해 ICC를 해보니 0.2가 나왔다고 쳐요. 학교마다 전체적으로 성적이 좀 다른가봐요.

이제 가설을 검증하려 해요.

친구 수 -> 성적

이걸 검증하고자 하는거잖아요?

OLS 회귀식으로 표현하면,

성적 = b0 + b1*친구수 + e

"학교"라는 변수는 어디에도 없죠? 이렇게 그룹 변수는 무시하고 친구 수와 성적간의 관계만 보는게 일반 회귀식이예요. 따라서 딱 하나의 회귀선만 나오고, 이걸 fixed effects 라고 해요.

Random intercept/slope

이제 학교(cluster)를 고려해볼게요.

두 가지 방법으로 고려할 수 있어요. 학교에 따라서 성적의 평균이 다를 수도 있고, 학교에 따라서 친구의 수가 성적에 미치는 영향이 다를 수도 있어요.

학교에 따라서 성적의 평균이 다를 것 같은데 친구의 수와 성적간의 관계는 학교에 따라 다를 것 같지 않아요. 그럴 경우 random intercept만 보면 돼요.

이 경우에는 각 학교마다 회귀선이 하나씩, 총 5개가 있을거고, 각 회귀선이 출발하는 지점이 다 다를거예요. 즉, 5개의 선들의 y 절편이 다 달라요. 하지만 5개의 선의 기울기는 전부 같아요.

학교에 따라서 성적은 같을 것 같은데(물론 ICC를 생각해보면 그렇지 않지만) 친구의 수가 성적에 미치는 영향은 학교에 따라 다를 것 같다고 가정한다고 쳐요. 그런 경우에는 random slope만 봐요.

이 경우에는 각 학교마다 회귀선이 역시 하나씩 총 5개가 있고, 각 회귀선이 출발하는 지점은 다 같아요. 즉 y 절편이 모두 같아요. 하지만 모든 선의 기울기가 전부 달라요. 

물론 위 두 개를 합쳐서 random intercept와 slope을 전부 봐도 되고요.

개념적으로 이해가 되고 있을까요?

방정식으로 살펴볼게요.

먼저 random intercept의 경우,

Level 1: 성적ij = b0j + b1j*친구수ij + eij

Level 2: b0j = v00 + u0j

​b1j = v10

i = i 학생

j = j 학교

성적ij = j 학교의 i 학생의 시험 성적

b0j = j 학교의 시험 성적 평균

b1j = j 학교에서 친구의 수가 성적에 미치는 영향

친구수ij = j 학교의 i 학생의 친구 수

eij = 랜덤 에러 (j 학교의 i 학생의 시험 성적과 j 학교 시험 성적 전체 평균의 차이)

v00 = 전체 학교 평균 성적

u0j = 전체 학교 성적 평균과 j 학교 성적 평균의 차이

v10 = 전체 학교에서 친구 수가 성적에 미치는 영향

level 1에서의 intercept (상수항)는 b0j예요.

level 2인 b0j 를 보시면 u0j 가 들어가있어요.

예를 들어 전체 학교 성적 평균이 80이고, 학교 1의 성적 평균이 70이면

b0j = v00 + u0j

b01 = 80 + (-10) = 70

학교 2의 성적 평균이 90 이라면,

b02 = 80 + 10 = 90

이렇게 돼요. 따라서 y절편의 값이 모두 다르겠죠?

만약 u0j가 없으면 그냥 fixed intercept를 보겠다는 얘기예요..

이번엔 random slope 를 추가해볼게요.

Level 1: 성적ij = b0j + b1j*친구수ij + eij

Level 2: b0j = v00 + u0j

​b1j = v10 + u1j

여기서 u1j는 그럼 뭘까요? 네 각 그룹간의 회귀선 기울기의 차이예요.

예를 들어 전체적으로 친구의 수가 1명 증가할 때, 성적이 1점 증가한다고 해봐요.

그럼 v10 = 1이겠죠?

근데 학교 1에서는 친구의 수가 1명 증가할 때, 성적이 5점 증가해요.

그럼 b11 = 5여야 해요.

그럼 u1j = 4가 되겠죠?

이 4가 random component가 되는거죠.

아 그리고 우리 income 변수가 있죠?

income 변수는 level 2변수죠? 어떤 경우에는 level 3 변수가 될 수 있겠지만, 위의 보여준 데이터 예시에서는 level 2 변수예요. 그럼 level 2 변수가 random effects를 가질 수 있을까요?

개념적으로 생각해보면 random effects는 cluster간의 차이에 관한 거예요. 근데 level 2 변수는 cluster 간에 차이가 없어요. 따라서 random effects를 가질 수 없어요.

뭔가 간단한걸 장황하게 늘어뜨린 기분이네요.

구글에서 그래프를 찾으셔서 함께 보시면 더 쉽게 이해가 될 거예요.

전에 카이스퀘어 테이블 하나 가져왔다가 저작권 어쩌고 해서 게시물이 삭제된 경험이 있어서 제가 직접 올리진 못할 것 같아요.

오늘 포스팅도 도움이 됐기를 바래요.

연구 열심히 하세요!

 

 

도움이 됐다면 커피 한 잔 사주시면 감사하겠습니다^^

 

EPIK is 어려운 지식을 가능한 한 쉽게 공유하는 곳이예요 :)

Hey 👋 I just created a page here. You can now buy me a coffee!

www.buymeacoffee.com

 

반응형
댓글