단원 5-6Transitivity and Model Degeneracy
전이성과 모형 퇴화
- 오늘의 질문 (The Question)
- 정의 ①
triangle과 그 변화 통계량 (Definition I: The Triangle Term) - 손 계산 ① — 6명 학급 15쌍 전부 (All 15 Dyads by Hand)
- 쌍 독립이 깨진다 (Dyad Independence Breaks)
- 가 곱으로 닫히지 않는다 — 전수 계산 (The Constant No Longer Factors)
- 모형 퇴화 — 전수 계산 (Model Degeneracy)
- 왜 무너지는가 — 임계값 공식 (Why It Collapses: A Threshold Formula)
- R 검증 ① — 가라테에
triangle을 넣어 보면 (Verification I: The Failure) - 정의 ② ESP 분포 (Definition II: Edgewise Shared Partners)
- 정의 ③
gwesp— 기하가중 (Definition III: GWESP) - 손 계산 ② — 한계 체감 (Diminishing Returns by Hand)
- 변화 통계량 (The GWESP Change Statistic)
- 두 극한 — 과 (Two Limits)
- R 검증 ② — 가라테와 FMH (Verification II)
- 교실 적용 (Classroom Application)
- 연습문제 (Exercises)
- 해설과 답 (Solutions)
1. 오늘의 질문 (The Question)
5-1부터 5-5까지 우리가 ERGM에 넣은 항은 edges, nodematch,
nodefactor, nodecov, absdiff — 전부 다섯 개였다.
이 다섯 개는 성격이 똑같았다. 쌍 의 변화 통계량 를 계산하려면
와 의 속성만 보면 됐다. 나머지 망은 쳐다볼 필요가 없었다.
그래서 5-3에서 본 조건부 로그오즈
에서 오른쪽이 "나머지 망"에 전혀 의존하지 않았고, 그래서 210개(FMH는 1,066,530개)의 쌍이 서로 독립인 로지스틱 회귀가 되었다. 정규화 상수 도 쌍마다 인수 하나씩으로 깔끔히 쪼개졌다.
"내 친구의 친구는 내 친구가 되는가?"
이것을 전이성(transitivity)이라 부른다. 망에서 보면 삼각형이다. 그리고 이 질문의 는 "와 의 공통 친구가 몇 명인가"인데, 이건 와 의 속성이 아니라 다른 간선들을 봐야만 알 수 있다.
오늘 배울 것은 두 가지다.
- 왜 삼각형을 그대로 넣으면 모형이 망하는가. 손으로 , 망을 전수 계산해서 직접 무너지는 것을 본다. 이 현상을 모형 퇴화(model degeneracy)라 부른다.
- 그 해결책
gwesp가 무엇을 어떻게 눌러 주는가. "한계 체감"이라는 한 문장이 전부다.
2. 정의 ① triangle과 그 변화 통계량 (Definition I: The Triangle Term)
통계량 자체 (The Statistic Itself)
삼각형 개수는 세 정점이 모두 서로 연결된 조합의 수다. 를 인접행렬이라 하면
변화 통계량 — 오늘의 핵심 (The Change Statistic: Today's Core)
5-3에서 정의했듯 , 즉 간선 만 켰을 때와 껐을 때의 차이다. 간선 를 켜서 새로 생기는 삼각형은 반드시 꼴이고, 그러려면 이고 이어야 한다. 그런 가 몇 개인가?
부수적으로 얻는 항등식 하나. 각 삼각형은 간선 세 개를 갖고, 그 세 간선 각각이 그 삼각형을 자기 에 한 번씩 센다. 따라서
손 계산 검산에 계속 쓸 것이다.
3. 손 계산 ① — 6명 학급 15쌍 전부 (All 15 Dyads by Hand)
6명 학급, 간선 여섯 개: 1–2, 1–3, 2–3, 3–4, 4–5, 5–6. 삼각형은 하나다.
| 1 | 2 | 3 | 4 | 5 | 6 | 차수 | |
|---|---|---|---|---|---|---|---|
| 1 | 0 | 1 | 1 | 0 | 0 | 0 | 2 |
| 2 | 1 | 0 | 1 | 0 | 0 | 0 | 2 |
| 3 | 1 | 1 | 0 | 1 | 0 | 0 | 3 |
| 4 | 0 | 0 | 1 | 0 | 1 | 0 | 2 |
| 5 | 0 | 0 | 0 | 1 | 0 | 1 | 2 |
| 6 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
이웃 집합을 먼저 적어 둔다. , , , , , .
이제 15쌍을 하나도 빠뜨리지 않고 전개한다. 0이 나오는 쌍도 다 쓴다.
| 쌍 | 교집합 | 지금 간선인가 | |||
|---|---|---|---|---|---|
| (1,2) | {2,3} | {1,3} | {3} | 1 | O |
| (1,3) | {2,3} | {1,2,4} | {2} | 1 | O |
| (1,4) | {2,3} | {3,5} | {3} | 1 | X |
| (1,5) | {2,3} | {4,6} | { } | 0 | X |
| (1,6) | {2,3} | {5} | { } | 0 | X |
| (2,3) | {1,3} | {1,2,4} | {1} | 1 | O |
| (2,4) | {1,3} | {3,5} | {3} | 1 | X |
| (2,5) | {1,3} | {4,6} | { } | 0 | X |
| (2,6) | {1,3} | {5} | { } | 0 | X |
| (3,4) | {1,2,4} | {3,5} | { } | 0 | O |
| (3,5) | {1,2,4} | {4,6} | {4} | 1 | X |
| (3,6) | {1,2,4} | {5} | { } | 0 | X |
| (4,5) | {3,5} | {4,6} | { } | 0 | O |
| (4,6) | {3,5} | {5} | {5} | 1 | X |
| (5,6) | {4,6} | {5} | { } | 0 | O |
초록 = 이미 삼각형을 이루는 간선, 노랑 = 아직 간선은 아니지만 공통 친구가 있는 쌍 (교실 말로 하면 "소개해 주면 곧 친해질 것 같은 쌍"). 나머지는 흰색이다.
검산. 간선인 여섯 쌍의 를 더하면 , 나누기 3 하면 . 실제 삼각형 하나와 일치한다. ✓
nw6 <- network(A6, directed=FALSE)
summary(nw6 ~ edges + triangle)
## edges triangle
## 6 1
4. 쌍 독립이 깨진다 (Dyad Independence Breaks)
위 표에서 쌍 를 보자. 이다. 공통 친구는 3번 한 명.
그런데 여기서 전혀 다른 쌍인 에 간선을 하나 그어 보자. 쌍 는 손도 대지 않았다. 그런데:
새 이므로 , 즉 .
그리고 여기서 양의 되먹임 고리가 생긴다. 이것이 오늘 이야기의 전부다.
브레이크가 없다. 이면 이 고리가 자기 자신을 먹고 자란다.
5. 가 곱으로 닫히지 않는다 — 전수 계산 (The Constant No Longer Factors)
5-3에서 쌍 독립 모형의 정규화 상수는 이렇게 쪼개졌다:
쌍마다 "없다/있다" 두 경우를 독립으로 곱하면 되니까 개 망을 다 더할 필요가 없었다.
triangle이 들어가면 이게 되는지, 로 전수 확인해 보자.
망은 개뿐이다. , 로 두겠다.
먼저 64개 망을 (간선 수 , 삼각형 수 )로 분류한다. 에서는 다음 아홉 종류가 전부다.
| 그런 망의 개수 | 왜 그 개수인가 | 지수 | 개수 | |||
|---|---|---|---|---|---|---|
| 0 | 0 | 1 | 빈 망 | 0.0 | 1.0000000000 | 1.0000000000 |
| 1 | 0 | 6 | −0.5 | 0.6065306597 | 3.6391839583 | |
| 2 | 0 | 15 | −1.0 | 0.3678794412 | 5.5181916176 | |
| 3 | 0 | 16 | 중 삼각형이 아닌 것 | −1.5 | 0.2231301601 | 3.5700825624 |
| 3 | 1 | 4 | 4명 중 3명을 고르는 | −0.7 | 0.4965853038 | 1.9863412152 |
| 4 | 0 | 3 | 4-사이클 3개 | −2.0 | 0.1353352832 | 0.4060058497 |
| 4 | 1 | 12 | 중 나머지 | −1.2 | 0.3011942119 | 3.6143305429 |
| 5 | 2 | 6 | , 전부 삼각형 2개 | −0.9 | 0.4065696597 | 2.4394179584 |
| 6 | 4 | 1 | , 삼각형 | +0.2 | 1.2214027582 | 1.2214027582 |
| 합 | 64 ✓ | 모든 망을 빠짐없이 셌다 | 23.3949564607 | |||
따라서 참값은 , .
이제 곱으로 접어 보자. 만약 쌍 독립이라면 여섯 쌍이 각각 같은 인수를 내야 한다. 빈 망에서 출발하면 어느 쌍이든 이므로 인수는 이고,
triangle이 들어가면 를 쌍별 인수의 곱으로 쓸 방법이 없다.
64개(현실에서는 개) 항을 하나하나 더하는 수밖에 없다.
그래서 5-7에서 배울 MCMC가 필요해진다 — 다 더할 수 없으니 표본을 뽑아서 근사하는 것이다.
인 가라테만 해도 망의 개수는 개다. 우주의 원자 수( 정도)의 제곱보다 많다.
6. 모형 퇴화 — 전수 계산 (Model Degeneracy)
를 못 쪼갠다는 건 계산이 불편하다는 뜻일 뿐이다. 진짜 문제는 따로 있다. 이면 망이 개라 아직 컴퓨터로 전부 셀 수 있다. 로 고정하고 만 0부터 조금씩 올리면서 간선 수의 분포를 정확히 그려 보자.
| E[간선 수] | E[삼각형] (범위 0~35) | 모습 | |||
|---|---|---|---|---|---|
| 0.00 | 2.5033 | 0.9681 | 0.0000 | 0.0593 | 얌전한 성긴 망 |
| 1.00 | 2.8823 | 0.9152 | 0.0004 | 0.2596 | 아직 괜찮다 |
| 1.15 | 3.4281 | 0.8700 | 0.0209 | 1.0211 | 꼬리가 생기기 시작 |
| 1.20 | 4.7134 | 0.7964 | 0.0893 | 3.2759 | 완전한 이봉(bimodal) |
| 1.25 | 8.8663 | 0.5800 | 0.3217 | 10.9391 | 무게가 넘어가는 중 |
| 1.30 | 15.5804 | 0.2456 | 0.7028 | 23.6850 | 거의 완전망 |
| 1.40 | 20.5432 | 0.0119 | 0.9832 | 33.5674 | |
| 2.00 | 20.9928 | 0.0000 | 1.0000 | 34.9641 |
를 1.15에서 1.30으로, 0.15밖에 안 올렸는데 평균 간선 수가 3.4에서 15.6으로 뛴다. 이런 걸 상전이(phase transition)라 한다. 물이 99°C에서 101°C가 되는 것과 같다.
가장 결정적인 그림 — 정확히 일 때 (The Decisive Picture)
그림 67(다)의 분포를 숫자로 보자. 에 대한 확률이다.
| 간선 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 확률 | .05231 | .14867 | .20121 | .18299 | .13068 | .08052 | .04611 | .02572 | .01450 | .00860 | .00554 |
| 간선 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 확률 | .00375 | .00277 | .00234 | .00233 | .00266 | .00231 | .00261 | .00397 | .00796 | .02012 | .05231 |
그리고 가운데가 텅 비었다: . 확률의 89%가 양 끝 아니면 그 근처에 있다.
"평균을 맞추면 되지 않나?" — 안 된다 ("Can't We Just Match the Mean?" No)
퇴화를 처음 보면 이렇게 생각하기 쉽다. "를 잘 조절해서 평균 간선 수를 원하는 값(밀도 0.5, 즉 10.5개)에 맞추면 되지 않나?" 실제로 맞출 수 있다. 에 대해 로 두면 정확히 가 된다. 그런데 그때의 분포가 그림 67(라)다.
, , 그런데 .
이 모형에서 망을 100개 뽑으면 47개는 거의 텅 빈 망, 40개는 거의 꽉 찬 망이고, "평균처럼 생긴 망"은 세 개 나온다. 평균 10.5는 아무도 살지 않는 주소다.
7. 왜 무너지는가 — 임계값 공식 (Why It Collapses: A Threshold Formula)
이제 손으로 이유를 유도한다. ERGM은 각 망 에 라는 "점수"를 준다. 극단 두 개만 보자.
| 망 | 간선 수 | 삼각형 수 | 지수 |
|---|---|---|---|
| 빈 망 | 0 | 0 | |
| 완전망 |
완전망이 빈 망을 이기기 시작하는 지점은 두 지수가 같아지는 곳이다.
여기서 이므로
| 일 때 | ||||
|---|---|---|---|---|
| 7 | 21 | 35 | 1.67 | 1.2000 |
| 10 | 45 | 120 | 2.67 | 0.7500 |
| 20 | 190 | 1,140 | 6.00 | 0.3333 |
| 34 (가라테) | 561 | 5,984 | 10.67 | 0.1875 |
| 100 | 4,950 | 161,700 | 32.67 | 0.0612 |
에서 이면 . 6절에서 컴퓨터가 찾아 준 그 값이다. 손으로 나온다. ✓
두 번째 이유 — 에 상한이 없다 (A Second Reason: The Change Statistic Is Unbounded)
같은 얘기를 변화 통계량 쪽에서 봐도 된다. 의 범위는
이고, 이 값이 1씩 오를 때마다 로그오즈가 씩 똑같이 오른다. 공통 친구가 0명에서 1명이 될 때나 30명에서 31명이 될 때나 보상이 같다. 그런데 상식적으로 이 둘은 전혀 다른 사건이다.
triangle 항에는 없다.
10절의 gwesp는 정확히 이 한 가지를 고친 것이다.
8. R 검증 ① — 가라테에 triangle을 넣어 보면 (Verification I: The Failure)
말이 아니라 실제로 돌려 본다. 가라테 망(, 간선 78, 삼각형 45)이다. CLAUDE.md에 적힌 대로 데이터 오류를 먼저 복원했다.
kel <- as.matrix(read.table(sna_path("karate_net.txt")))
gk <- add_edges(simplify(graph_from_edgelist(kel, directed=FALSE)), c(9,31))
Ak <- as.matrix(as_adjacency_matrix(gk)); diag(Ak) <- 0
nwk <- network(Ak, directed=FALSE)
ergm(nwk ~ edges + triangle)
## Starting maximum pseudolikelihood estimation (MPLE):
## Starting Monte Carlo maximum likelihood estimation (MCMLE):
## Iteration 1 of at most 60:
## Iteration 2 of at most 60:
## Post-burnin sample is constant; returning.
## Error: Unconstrained MCMC sampling did not mix at all.
## Optimization cannot continue.
"Post-burnin sample is constant"는 MCMC가 완전망(또는 빈 망)에 빠져서 한 발짝도 못 움직인다는 뜻이다. 6절의 이봉 분포가 실제로 일어난 것이다.
MPLE는 답을 준다 — 그게 함정이다 (MPLE Gives an Answer, and That Is the Trap)
의사가능도(MPLE)만 쓰면 오류 없이 숫자가 나온다. 5-3에서 배운, 쌍 독립인 척하고 푸는 그 로지스틱 회귀다.
ergm(nwk ~ edges + triangle, estimate="MPLE")
| 항 | 추정값 | 표준오차 | ||
|---|---|---|---|---|
edges | −2.6352326 | 0.2040094 | −12.917 | 3.60e−38 |
triangle | 0.6876855 | 0.1170432 | 5.875 | 4.22e−09 |
! "매우 유의하다"고 보고하고 싶어진다. 그런데 7절 공식에 넣어 보자.
가라테는 이고, edges만 넣은 모형의 이므로
9. 정의 ② ESP 분포 (Definition II: Edgewise Shared Partners)
고치려면 먼저 재는 법을 바꿔야 한다. 삼각형을 개수 하나로 세는 대신, 간선 하나하나가 공유 파트너를 몇 개 갖는지를 분포로 적는다.
ESP = Edgewise Shared Partner. "간선별 공유 파트너 분포"다. 두 가지 항등식이 따라온다.
가라테로 확인한다.
summary(nwk ~ esp(0:10))
| (공유 파트너 수) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 합 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| (그런 간선의 수) | 11 | 35 | 14 | 11 | 3 | 2 | 0 | 1 | 0 | 0 | 1 | 78 ✓ |
| 0 | 35 | 28 | 33 | 12 | 10 | 0 | 7 | 0 | 0 | 10 | 135 |
합 78 = 간선 수 ✓, 가중합 135 = = 3 × 삼각형 수 ✓.
edges만으로는 삼각형이 턱없이 모자란다.
(다) gwesp를 넣으면 관측값이 분포 한가운데 들어온다. (라) FMH도 마찬가지.그림 69(가)에서 읽을 것: 이 35개로 가장 많고, 큰 로 갈수록 급격히 줄어든다.
공유 파트너가 10명인 간선도 하나 있긴 하다(1번 사범과 34번 관장을 잇는 그 간선).
triangle 항은 이 하나를 다른 간선의 10배로 대접한다.
바로 이 대접이 폭주를 만든다.
10. 정의 ③ gwesp — 기하가중 (Definition III: GWESP)
ESP 분포에 한계 체감하는 가중치를 씌운 것이 GWESP (Geometrically Weighted Edgewise Shared Partner, 기하가중 간선별 공유 파트너)다.
보기 나쁘니 로 줄여 쓰자. 이다.
triangle은 로 주는 셈이었다(그래서 ).
gwesp는 가 커질수록 점수를 덜 준다.
왜 이 이상한 꼴인가 — 등비급수 (Why This Odd Form: A Geometric Series)
를 전개해 보면 정체가 드러난다. 등비급수 공식 이고, 이므로 . 따라서
이 형태에서 세 가지가 바로 보인다.
- (항이 없다), — 가 무엇이든 항상 정확히 1. (확인: .)
- — 늘어나는 몫이 배씩 줄어든다. 이것이 브레이크다.
- — 천장이 있다. 공유 파트너가 몇 명이든 한 간선이 받는 점수는 를 못 넘는다.
11. 손 계산 ② — 한계 체감 (Diminishing Returns by Hand)
로 손 계산해 보자. 이므로
| 전개 | 직전보다 얼마나 늘었나 | ||
|---|---|---|---|
| 0 | (항 없음) | 0.0000000 | — |
| 1 | 1.0000000 | ← 첫 파트너는 만점 | |
| 2 | 1.3934693 | ||
| 3 | 1.5482875 | ||
| 4 | 1.6092036 | ||
| 5 | 1.6331723 | ||
| 6 | 1.6426032 | ||
| 1.6487213 | 천장 |
triangle과의 유일하고 결정적인 차이다.
는 브레이크의 세기 (α Is the Strength of the Brake)
triangle은 직선(빨강), gwesp는 눕는 곡선.
(나) 의 한계 증분. (다) 와 의 관계.| 천장 | 증분 | 증분 | 증분 | 성격 | ||
|---|---|---|---|---|---|---|
| 0.25 | 0.2211992 | 1.2840254 | 0.2211992 | 0.0489291 | 0.0108231 | 브레이크 강함 |
| 0.50 | 0.3934693 | 1.6487213 | 0.3934693 | 0.1548181 | 0.0609162 | 흔히 쓰는 값 |
| 1.00 | 0.6321206 | 2.7182818 | 0.6321206 | 0.3995764 | 0.2525805 | 약함 |
| 2.00 | 0.8646647 | 7.3890561 | 0.8646647 | 0.7476451 | 0.6464623 | 거의 직선 — 위험 |
가 클수록 가 1에 가까워지고, 증분이 안 줄어든다 = 브레이크가 풀린다
= triangle로 되돌아간다. 13절에서 이 극한을 정확히 확인한다.
12. 변화 통계량 (The GWESP Change Statistic)
ERGM을 돌리려면 결국 가 필요하다. 간선 를 켜면 가 얼마나 바뀌는가? 두 군데가 바뀐다.
- 새 간선 자신이 점수를 받는다. 그 간선의 공유 파트너 수는 이므로 만큼.
- 공통 이웃을 거치는 기존 간선들의 가 1씩 오른다. 라면, 간선 는 이제 라는 공유 파트너를 새로 얻고, 간선 는 를 새로 얻는다. 이때 늘어나는 몫이 바로 11절의 다.
단, 모든 는 간선 를 뺀 망 에서 센다.
triangle에는 없던 부분이다. triangle은
로 끝났다 — 새 간선만 봤다. gwesp는
영향을 받는 이웃 간선까지 챙긴다. 그래서 계산은 복잡하지만,
"이미 빽빽한 곳"에 간선을 하나 더 놓는 이득이 자동으로 깎인다.
손으로 두 쌍 — 6명 학급, (Two Dyads by Hand)
3절의 6명 학급을 그대로 쓴다. . 가 둘 다 1로 똑같은 두 쌍을 골라 비교한다.
쌍 (1,4) — 공통 이웃은 , 즉 .
| 항 | 무엇을 세는가 | 계산 | 값 |
|---|---|---|---|
| 새 간선 | 1.0000000 | ||
| , 간선 (1,3) | 0.3934693 | ||
| , 간선 (4,3) | 1.0000000 | ||
| 합계 | 2.3934693 | ||
쌍 (3,5) — 공통 이웃은 , 즉 .
| 항 | 무엇을 세는가 | 계산 | 값 |
|---|---|---|---|
| 새 간선 | 1.0000000 | ||
| , 간선 (3,4) | 1.0000000 | ||
| , 간선 (5,4) | 1.0000000 | ||
| 합계 | 3.0000000 | ||
차이가 어디서 났는가? 쌍 (1,4)의 경우 간선 (1,3)이 이미 공유 파트너를 한 명(2번) 갖고 있었다. 그래서 두 번째 파트너를 주는 이득이 1이 아니라 으로 깎였다. 쌍 (3,5) 쪽은 간선 (3,4)와 (4,5) 둘 다 아직 아무 파트너가 없어서 각각 만점 1을 받았다.
gwesp는 "이미 삼각형이 빽빽한 자리"를 덜 보상한다. 이게 브레이크가 작동하는 방식이다.
R로 15쌍을 전부 대조하면 이렇다(위 두 줄이 방금 손으로 한 것).
| 쌍 | (1,2) | (1,3) | (1,4) | (1,5) | (1,6) | (2,3) | (2,4) | (2,5) | (2,6) | (3,4) | (3,5) | (3,6) | (4,5) | (4,6) | (5,6) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | |
| 3.000 | 3.000 | 2.393 | 0 | 0 | 3.000 | 2.393 | 0 | 0 | 0 | 3.000 | 0 | 0 | 3.000 | 0 |
이 공식이 맞는지 무식하게 확인했다. 가라테 망에서 무작위로 고른 60개 쌍에 대해, "간선을 실제로 켜고 끄면서 를 다시 계산한 값"과 위 공식을 에서 비교했다. 최대 오차 — 부동소수점 오차다. ✓
13. 두 극한 — 과 (Two Limits)
이므로 이면 , 따라서 . 은 그대로. 즉
가라테: . R로 summary(nwk ~ gwesp(0, fixed=TRUE)) = 67. ✓
"삼각형 안에 들어 있는 간선의 수"를 세는 것이다 — 몇 개짜리인지는 안 따지고.
(가 작을 때)이므로 , 따라서
gwesp는 삼각형 수의 3배가 된다 — 즉 triangle로 되돌아간다.
그러므로 gwesp는 triangle을 포함하는 더 넓은 가족이고,
는 "얼마나 triangle에 가까이 갈 것인가"를 정하는 손잡이다.
| 0 | 0.25 | 0.5 | 0.75 | 1 | 2 | 5 | 10 | 20 | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 가라테 | 67.000 | 75.046 | 82.929 | 90.379 | 97.238 | 117.634 | 133.991 | 134.993 | 134.99999 | 135 |
에서 이미 로 에 붙었다. ✓
(내가 짠 함수와 ergm의 summary(nwk ~ gwesp(α, fixed=TRUE))가 최대 차이로 일치했다.)
14. R 검증 ② — 가라테와 FMH (Verification II)
가라테 — 세 모형 비교 (Karate: Three Models Compared)
fe <- ergm(nwk ~ edges) # 5-2 의 모형
ft <- ergm(nwk ~ edges + triangle) # 8절: 오류로 죽음
fg <- ergm(nwk ~ edges + gwesp(0.5, fixed=TRUE))
| 모형 | 결과 | 계수 | 표준오차 | AIC | ||
|---|---|---|---|---|---|---|
edges | OK | −1.8233078 | 0.1220267 | −14.94 | <1e−50 | 454.404 |
edges + triangle | MCMC did not mix — 적합 실패 | |||||
edges + gwesp(0.5) | OK (7회 반복, 수렴 ) | −3.1235394 | 0.2823889 | −11.06 | 1.94e−28 | 425.611 |
| 0.8265798 | 0.1679974 | 4.92 | 8.65e−07 | |||
AIC가 454.40 → 425.61로 28.79 떨어졌다. 항 하나 추가에 AIC가 2 이상 떨어지면 개선인데 28.79는 큰 폭이다.
모형이 실제로 삼각형을 만드는가 — 모의망 검사 (Does the Model Actually Make Triangles)
5-2에서 배운 방식대로, 적합된 모형에서 망을 200개 뽑아 삼각형 수를 세 본다. 관측값 45가 그 분포 안에 들어가면 잘 맞는 것이다.
| 모형 | 모의 삼각형 평균 | 범위 | 관측 | 판정 | |
|---|---|---|---|---|---|
edges만 | 16.03 | 5 ~ 37 | 45 | +4.52 | 모자란다 — 200개 중 45 이상은 0개 |
edges + gwesp(0.5) | 48.08 | 14 ~ 100 | 45 | −0.18 | 한가운데 — 잘 맞는다 |
간선 수도 확인: gwesp 모형의 모의 간선은 평균 83.82(범위 54~131), 관측 78.
살짝 많지만 분포 안이다. 그림 69(나)(다)가 이 두 히스토그램이다.
를 바꿔 보면 — 브레이크를 풀면 다시 죽는다 (Varying α: Release the Brake and It Dies Again)
edges | (SE) | gwesp | (SE) | AIC | ||
|---|---|---|---|---|---|---|
| 0.25 | −3.2361 | 0.3213 | 1.0415 | 0.2345 | 8.7e−06 | 424.98 |
| 0.50 | −3.1235 | 0.2824 | 0.8266 | 0.1680 | 8.7e−07 | 425.61 |
| 0.75 | −2.9819 | 0.2427 | 0.6419 | 0.1221 | 1.5e−07 | 425.43 |
| 1.00 | "linear dependence … 7481/2752 * edges = gwesp.fixed.1" → did not mix — 실패 | |||||
FMH 1461명 — 5-5의 종합 모형에 gwesp를 얹기 (Adding gwesp to the Full FMH Model)
FMH는 간선 974개, 삼각형 169개, ESP 분포는 (합 974 ✓, 가중합 507 = ✓).
먼저 5-5에서 만든 속성만의 모형이 이 169개를 설명할 수 있는지 본다.
f5 <- ergm(fmh ~ edges + nodematch("Grade") + absdiff("Grade") +
nodematch("Sex") + nodefactor("Sex") + nodematch("Race"))
sapply(simulate(f5, nsim=100), function(z) summary(z ~ triangle))
100번 뽑아서 가장 삼각형이 많았던 망도 5개다. 관측은 169개다.
학년·성별·인종 동질성을 아무리 정교하게 넣어도 전이성은 1%도 못 만든다. "친구의 친구는 친구다"는 속성으로 환원되지 않는, 망 고유의 힘이라는 결정적 증거다.
이제 gwesp(0.25)를 얹는다.
| 항 | 5-5 모형 (속성만) | 5-6 모형 (+ gwesp) | 5-6의 SE | 오즈비 5-5 | 오즈비 5-6 | 해석 |
|---|---|---|---|---|---|---|
edges | −8.142631 | −8.093044 | 0.199089 | — | — | 기준선 |
nodematch.Grade | 1.513057 | 1.146633 | 0.186873 | 4.541 | 3.148 | 24% 줄었다 |
absdiff.Grade | −1.039963 | −0.987356 | 0.125715 | 0.354 | 0.373 | 5% 줄었다 |
nodematch.Sex | 0.858306 | 0.748205 | 0.062954 | 2.359 | 2.113 | 13% 줄었다 |
nodefactor.Sex.M | −0.147661 | −0.065795 | 0.028991 | 0.863 | 0.936 | 55% 줄었다 |
nodematch.Race | 1.190851 | 0.903502 | 0.071621 | 3.290 | 2.468 | 24% 줄었다 |
gwesp.fixed.0.25 | — | 1.773607 | 0.050062 | — | 5.892 | , |
| AIC | 12952.301 | 12049.916 | 902.4 감소 | |||
. 항 하나로 고쳐졌다. (그림 69(라))
gwesp를 넣자
모든 동질성 계수가 줄었다. 특히 인종 동질성의 오즈비는 3.29 → 2.47,
학년 동질성은 4.54 → 3.15로 내려앉았다.왜? 같은 학년끼리 친한 것처럼 보였던 관계 중 상당수는 사실 "같은 학년이라서"가 아니라 "친구의 친구라서" 생긴 것이었기 때문이다. 전이성 항이 그 몫을 가져가면서 동질성이 과대추정이었다는 사실이 드러난 것이다. 5-5에서 본 "기회 구조에 의한 교란"과 같은 종류의 일이 한 번 더 일어났다.
15. 교실 적용 (Classroom Application)
① "우리 반은 동질성이 강해요"라는 보고를 의심하기 (I. Doubt the Claim That Homophily Is Strong)
FMH 표에서 봤듯, 전이성을 넣지 않은 모형은 동질성을 과대평가한다. "남학생은 남학생끼리만 논다"는 결론이 나왔다면, 그게 정말 성별 때문인지 아니면 "이미 친한 무리 안에서 친구가 소개된 것"이 성별과 겹쳐 보이는 건지 분리해야 한다. 전이성 항을 넣기 전의 동질성 수치는 상한선으로만 읽을 것.② 소외 학생 개입 설계 — 가 가르쳐 주는 것 (II. Designing Support for Isolated Students)
12절에서 쌍 (1,4)와 (3,5)를 비교했다. 둘 다 공통 친구가 한 명인데 는 2.393과 3.000으로 달랐다. 차이는 "그 공통 친구를 거치는 기존 관계가 이미 얼마나 빽빽한가"였다.교실 개입으로 옮기면: 이미 촘촘한 무리 안에 한 명을 더 밀어 넣는 것보다, 아직 서로 겹치지 않은 두 아이를 잇는 편이 망 전체를 더 크게 바꾼다. 모둠을 짤 때 "친한 애들 사이에 소외 학생을 끼워 넣기"가 잘 안 되는 이유이기도 하다 — 그 자리에서는 새 관계 하나의 한계 효과가 이미 만큼 깎여 있다.
③ 퇴화가 주는 실무 교훈 — 학급이 클수록 조심 (III. What Degeneracy Teaches: Bigger Classes, More Care)
7절의 를 다시 보자. 24명 반이면 일 때 문턱이 0.27, 34명이면 0.19, 100명(학년 전체)이면 0.06이다. 큰 집단을 분석할수록 "삼각형 효과"를 날것으로 넣으면 안 된다. 학년 전체나 학교 전체를 다룰 때는gwesp가 선택이 아니라 필수다.
④ ESP 분포 자체가 진단 도구다 (IV. The ESP Distribution Is Itself a Diagnostic)
모형을 돌리기 전에summary(nw ~ esp(0:6))만 찍어 봐도 반의 성격이 보인다.
이 크면(FMH는 974개 중 626개, 64%) 짝지어만 있고 무리가 안 만들어진 반이고,
의 꼬리가 길면(가라테는 까지) 아주 응집된 핵심 집단이 있다는 뜻이다.
같은 밀도라도 이 분포가 다르면 완전히 다른 교실이다.
16. 연습문제 (Exercises)
7명 학급의 교우관계가 다음과 같다(무방향, 간선 9개).
- 각 사람의 이웃 집합 를 적고, 간선인 아홉 쌍에 대해 를 구하라.
- 로 삼각형 수를 구하고, 실제 삼각형을 나열해 맞는지 확인하라.
- ESP 분포 를 적고, 과 를 둘 다 검산하라.
- ()일 때 를 손으로 구하라.
- 아직 간선이 아닌 두 쌍 (1,4)와 (2,5)에 대해 와 를 모두 구하고, 두 지표가 두 쌍의 차이를 얼마나 다르게 보는지 비율로 비교하라.
20명 학급에
edges + triangle 모형을 얹으려 한다. 로 잡았다.
- 7절의 공식 로 임계값을 구하라.
- 로 두면 빈 망과 완전망의 지수는 각각 얼마인가? 완전망이 빈 망보다 몇 배 더 그럴듯한가?
- 이 모형에서 망을 뽑으면 무엇이 나오겠는가? 한 문장으로 답하라.
- 같은 로 34명 학급이라면 임계값은? 20명일 때와 비교해 학급이 커질 때 위험이 어느 쪽으로 가는지 설명하라.
17. 해설과 답 (Solutions)
연습 1 해설 (Solution to Exercise 1)
(1) 이웃 집합과 간선의
먼저 인접행렬과 이웃 집합을 만든다.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 차수 | ||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 2 | {2,3} |
| 2 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 3 | {1,3,4} |
| 3 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 3 | {1,2,4} |
| 4 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 3 | {2,3,5} |
| 5 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 3 | {4,6,7} |
| 6 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 2 | {5,7} |
| 7 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 2 | {5,6} |
간선인 아홉 쌍의 교집합을 하나도 빠뜨리지 않고 전개한다.
| 간선 | 교집합 | 왜 그 값인가 | |||
|---|---|---|---|---|---|
| (1,2) | {2,3} | {1,3,4} | {3} | 1 | 3이 둘 다의 친구 |
| (1,3) | {2,3} | {1,2,4} | {2} | 1 | 2가 둘 다의 친구 |
| (2,3) | {1,3,4} | {1,2,4} | {1,4} | 2 | 삼각형 두 개에 동시에 속한 간선 |
| (2,4) | {1,3,4} | {2,3,5} | {3} | 1 | 3만 겹친다 |
| (3,4) | {1,2,4} | {2,3,5} | {2} | 1 | 2만 겹친다 |
| (4,5) | {2,3,5} | {4,6,7} | { } | 0 | 다리(bridge) — 어떤 삼각형에도 안 든다 |
| (5,6) | {4,6,7} | {5,7} | {7} | 1 | 7이 둘 다의 친구 |
| (5,7) | {4,6,7} | {5,6} | {6} | 1 | 6이 둘 다의 친구 |
| (6,7) | {5,7} | {5,6} | {5} | 1 | 5가 둘 다의 친구 |
값의 의미. 간선 (2,3)만 다. 두 삼각형 과 가 이 간선을 공유하기 때문이다. 반대로 (4,5)는 이다 — 왼쪽 무리 와 오른쪽 무리 를 잇는 유일한 다리이고, 다리는 원래 삼각형에 속하지 않는다.
(2) 삼각형 수
, 따라서 .
직접 나열: (1–2, 1–3, 2–3 모두 있음), (2–3, 2–4, 3–4 모두 있음), (5–6, 5–7, 6–7 모두 있음). 세 개. ✓
(3) ESP 분포와 두 검산
| 0 | 1 | 2 | 합 | 근거 | |
|---|---|---|---|---|---|
| 1 | 7 | 1 | 9 | : (4,5) 하나 / : (2,3) 하나 / 나머지 7개 | |
| 0 | 7 | 2 | 9 |
(4)
11절 표에서 , , .
| 의 전개 | ||||
|---|---|---|---|---|
| 0 | 1 | 0.0000000 | 항 없음 | 0.0000000 |
| 1 | 7 | 1.0000000 | 7.0000000 | |
| 2 | 1 | 1.3934693 | 1.3934693 | |
| 합계 | 8.3934693 | |||
summary(nw7 ~ gwesp(0.5, fixed=TRUE)) = 8.39346934 ✓참고로 이면 8(= 9 − ), 면 9(= )다. 8.393은 그 사이 어딘가에 있다.
(5) 두 비간선 쌍의 비교 — 이 문제의 핵심
쌍 (1,4). → . 공통 이웃이 둘이므로 두 번째 합에 네 항이 들어간다.
| 항 | 세는 것 | 교집합 | 계산 | 값 |
|---|---|---|---|---|
| 새 간선 | — | 1.3934693 | ||
| : 간선 (1,2) | {2,3}∩{1,3,4}={3} → 1 | 0.3934693 | ||
| : 간선 (4,2) | {2,3,5}∩{1,3,4}={3} → 1 | 0.3934693 | ||
| : 간선 (1,3) | {2,3}∩{1,2,4}={2} → 1 | 0.3934693 | ||
| : 간선 (4,3) | {2,3,5}∩{1,2,4}={2} → 1 | 0.3934693 | ||
| 합계 | 2.9673467 | |||
쌍 (2,5). → . 공통 이웃이 하나뿐이다.
| 항 | 세는 것 | 교집합 | 계산 | 값 |
|---|---|---|---|---|
| 새 간선 | — | 1.0000000 | ||
| : 간선 (2,4) | {1,3,4}∩{2,3,5}={3} → 1 | 0.3934693 | ||
| : 간선 (5,4) | {4,6,7}∩{2,3,5}={ } → 0 | 1.0000000 | ||
| 합계 | 2.3934693 | |||
| 쌍 | |||
|---|---|---|---|
| (1,4) | 2 | 2 | 2.9673467 |
| (2,5) | 1 | 1 | 2.3934693 |
| 비율 (1,4)/(2,5) | — | 2.000배 | 1.240배 |
triangle은 쌍 (1,4)를 (2,5)의 두 배로 대접하지만, gwesp는 1.24배로만 본다.
값의 의미. . 왜 이렇게 눌렸는가?
쌍 (1,4)의 공통 이웃 2와 3을 거치는 네 간선 (1,2),(4,2),(1,3),(4,3)이 모두 이미 이었다.
그래서 네 항 전부 만점 1이 아니라 으로 깎였다.
반면 (2,5) 쪽의 간선 (5,4)는 이라 만점 1을 그대로 받았다.
이미 삼각형이 있는 자리에 삼각형을 더 얹는 것은 값이 싸다는 것이 gwesp의 원리다.
2번과 5번을 이으면? 5번은 반대편 무리 의 사람이다. 두 무리를 잇는 다리가 (4,5) 하나뿐이었는데 두 번째 다리가 생긴다.
담임이 개입할 자리는 (1,4)가 아니라 (2,5)다.
triangle은 (1,4)를 두 배로 추천하지만, gwesp는 그 격차를 1.24배로 줄여
"둘이 사실 비슷하다"고 말해 준다. 이것만으로도 모형이 훨씬 상식적이다.
연습 2 해설 (Solution to Exercise 2)
(1) 임계값
이므로 , .
(2) 두 극단의 지수
의 완전망은 간선 개, 삼각형 개다.
| 망 | 지수 전개 | 지수 | ||
|---|---|---|---|---|
| 빈 망 | 0 | 0 | 0 | |
| 완전망 | 190 | 1140 | +95 |
는 임계값 0.4167을 겨우 0.083 넘었을 뿐인데 이렇게 된다.
값의 의미. 이 배수는 감이 안 올 정도로 크다. 지구 나이(46억 년)를 초로 세면 초다. 은 그것의 배다. 실질적으로 완전망 말고는 아무것도 나오지 않는다는 뜻이다.
(3) 표본을 뽑으면
(4) 34명이면
| 뜻 | |||
|---|---|---|---|
| 20 | 18 | 0.4167 | 여기까지는 견딘다 |
| 34 | 32 | 0.2344 | 20명 때의 56% 수준 |
왜 그런가. 이 커지면 완전망의 삼각형 수 이 간선 수 보다 훨씬 빨리 늘기 때문이다(그림 66(다)). 비율이 이므로, 이면 삼각형이 간선의 6배, 면 10.7배, 이면 32.7배다. 로 얻는 이득이 로 치르는 대가보다 점점 더 커진다.
gwesp가 필수가 된다.
오늘 5절에서 를 곱으로 못 쪼갠다는 것을 봤다. 그러면 실제로 ergm은 어떻게 계수를 구한 것인가? 답은 MCMC다 — 다 더할 수 없으니 망을 무작위로 걸어 다니며 표본을 뽑아 근사한다. 그런데 그 걸음이 제대로 걸어졌는지 어떻게 아는가? 8절의 "did not mix"는 어떻게 진단하는가? 5-7에서는
mcmc.diagnostics()로 그 걸음을 눈으로 보고, gof()로
"이 모형이 만드는 망이 진짜 우리 반을 닮았는가"를 차수 분포·ESP 분포·거리 분포로 채점한다.
오늘 손으로 한 모의망 검사(, , )를 자동으로 해 주는 도구다.