단원 4-6The Barabasi-Albert Model
허브는 어디서 오는가 — 성장과 선호적 연결
4-5에서 우리는 "허브가 있다"를 측정하는 법을 배웠다. 가라테의 분산/평균은 3.28, BA 그래프는 5.29, 무작위는 1.02였다.
그런데 왜 그런 분포가 생기는지는 아직 모른다. 오늘은 딱 두 가지 규칙 — 새 사람이 들어온다(성장), 이미 인기 있는 쪽으로 붙는다(선호적 연결) — 만으로 인 거듭제곱 분포가 필연적으로 나온다는 것을 손으로 유도한다.
그리고 그 두 규칙 중 어느 쪽이 진짜 원인인지를 통제 실험으로 가른다.
- 오늘의 질문: 허브는 어디서 오는가 (Where Do Hubs Come From?)
- 정의 — 성장과 선호적 연결 (Growth and Preferential Attachment)
- 손 계산 ① 일곱 명이 들어오는 동안 (Hand Simulation: Seven Arrivals)
- 손 계산 ② 왜 먼저 온 사람이 이기는가 (First-Mover Advantage)
- 손 계산 ③ 차수 분포를 재귀로 (Exact Degree Distribution by Recursion)
- 왜 인가 — CCDF로 확인 (Why Gamma Equals 3)
- R 검증 ① 모의가 정확식을 따라가는가 (Simulation vs Exact Formula)
- R 검증 ② 성장만으로는 부족하다 (Growth Alone Is Not Enough)
- 함정 ① igraph의 zero.appeal (The zero.appeal Trap)
- 함정 ② 정확한 식조차 을 안 준다 (Even the Exact Formula Misses)
- BA가 못 맞히는 축 — 삼각형이 없다 (What BA Gets Wrong: No Triangles)
- 가라테와 FMH를 BA와 대조 (Karate and FMH against BA)
- 교실 적용 (Classroom Application)
- 연습문제 (Exercises)
- 해설과 답 (Solutions)
1. 오늘의 질문: 허브는 어디서 오는가 (Where Do Hubs Come From?)
지금까지 만난 모형은 전부 정적이었다. 는 명을 한꺼번에 세워 놓고 동전을 던졌고, 와츠–스트로가츠는 완성된 고리를 놓고 간선을 재배선했다. 둘 다 사람 수가 처음부터 정해져 있다.
그런데 실제 교실은 그렇지 않다. 3월 2일에 서른 명이 동시에 서로를 알게 되는 게 아니라, 관계가 하나씩 시간에 걸쳐 생긴다. 전학생은 4월에 들어온다. 동아리는 5월에 만들어진다.
바라바시와 알버트(1999)의 주장은 이것이다 — 차수 분포가 거듭제곱이 되는 이유는 그래프가 어떻게 생겼는지가 아니라 어떻게 자랐는지에 있다.
가라테의 분산/평균 3.277, 최대 차수 17(평균의 3.7배), 무작위 200회 중 그만큼 쏠린 경우 0회. 쏠림이 있다는 것은 확인했다. 원인은 아직 모른다.
오늘 답할 질문 세 개:
① 어떤 규칙이 쏠림을 만드는가? ② 그 규칙에서 는 몇이 나오는가? ③ 규칙 중 어느 것이 진짜 원인인가?
2. 정의 — 성장과 선호적 연결 (Growth and Preferential Attachment)
BA 모형은 규칙이 두 개뿐이다.
규칙 ① 성장 (Growth)
시각 마다 정점 한 개가 새로 들어온다. 들어올 때 간선 개를 들고 온다. 따라서 시각 에 정점은 개, 간선은 대략 개, 차수 합은 이다.
규칙 ② 선호적 연결 (Preferential Attachment)
새 정점이 상대를 고를 때, 정점 를 고를 확률은 의 현재 차수에 비례한다.
이게 전부다. "친구가 많은 애한테 더 붙는다" — 흔히 부익부(rich-get-richer), 머튼의 용어로는 마태 효과(Matthew effect)라 부른다.
이고 정점 2개·간선 1개에서 시작한다고 하자. 정점 가 들어오려는 순간 그래프에는 정점 개, 간선 개가 있다. 따라서 이면 2, 면 4, 면 6… 매 시각 정확히 2씩 늘어난다. (간선 하나가 양 끝의 차수를 1씩 올리므로.)
확률의 합이 1인지 확인하는 것도 매번 해 두자. — 자동으로 1이다. 손 계산 표에서 이 열을 검산에 쓴다.
3. 손 계산 ① 일곱 명이 들어오는 동안 (Hand Simulation: Seven Arrivals)
, 시작은 정점 1–2가 연결된 상태(차수 1, 1). 정점 3부터 7까지 다섯 명을 넣어 본다. 매 시각 모든 정점의 를 하나도 빼놓지 않고 쓴다.
— 차수 합 2 (Degree Sum 2)
| 정점 | 차수 | 소수 | |
|---|---|---|---|
| 1 | 1 | 0.5000 | |
| 2 | 1 | 0.5000 | |
| 합 | 2 | 1.0000 ✓ |
뽑힌 상대: 1번. 새 차수 → 1번=2, 2번=1, 3번=1.
— 차수 합 4 (Degree Sum 4)
| 정점 | 차수 | 소수 | |
|---|---|---|---|
| 1 | 2 | 0.5000 | |
| 2 | 1 | 0.2500 | |
| 3 | 1 | 0.2500 | |
| 합 | 4 | 1.0000 ✓ |
뽑힌 상대: 1번. 새 차수 → 1번=3, 나머지 1.
— 차수 합 6 (Degree Sum 6)
| 정점 | 차수 | 소수 | |
|---|---|---|---|
| 1 | 3 | 0.5000 | |
| 2 | 1 | 0.1667 | |
| 3 | 1 | 0.1667 | |
| 4 | 1 | 0.1667 | |
| 합 | 6 | 1.0000 ✓ |
뽑힌 상대: 1번. 새 차수 → 1번=4, 나머지 1.
— 차수 합 8 (Degree Sum 8)
| 정점 | 차수 | 소수 | |
|---|---|---|---|
| 1 | 4 | 0.5000 | |
| 2 | 1 | 0.1250 | |
| 3 | 1 | 0.1250 | |
| 4 | 1 | 0.1250 | |
| 5 | 1 | 0.1250 | |
| 합 | 8 | 1.0000 ✓ |
뽑힌 상대: 4번 — 확률 짜리 사건이 실제로 일어났다. 새 차수 → 1번=4, 4번=2, 나머지 1.
— 차수 합 10 (Degree Sum 10)
| 정점 | 차수 | 소수 | |
|---|---|---|---|
| 1 | 4 | 0.4000 | |
| 2 | 1 | 0.1000 | |
| 3 | 1 | 0.1000 | |
| 4 | 2 | 0.2000 | |
| 5 | 1 | 0.1000 | |
| 6 | 1 | 0.1000 | |
| 합 | 10 | 1.0000 ✓ |
뽑힌 상대: 5번. 최종 차수 → (4, 1, 1, 2, 2, 1, 1).
① 차수 합 → 간선 6개 ✓
② 정점 7개, 간선 6개 → 이면 결과는 항상 나무(tree)다. 순환이 있을 수 없다 (새 정점은 늘 하나의 기존 정점에만 붙으니까). 이 사실은 §11에서 다시 쓴다.
③ 1번의 차수 4는 전체 차수 합 12의 33.3%. 7명 중 한 명이 연결의 3분의 1을 갖는다.
에서 1번의 확률은 0.5였는데 0.125짜리 4번이 뽑혔다. 에서도 1번이 아니라 5번이었다. 선호적 연결은 유리함을 줄 뿐 승리를 보장하지 않는다. §4에서 이 산포가 얼마나 큰지 숫자로 본다.
4. 손 계산 ② 왜 먼저 온 사람이 이기는가 (First-Mover Advantage)
표를 보면 1번이 계속 유리했다. 그 유리함을 식으로 뽑아 보자. 차수를 연속량으로 취급하는 연속 근사(continuum approximation)를 쓴다.
시각 에서 정점 가 차수를 얻는 속도는 "새 정점이 들고 온 간선 개 각각이 를 고를 확률"이다.
이 약분되어 사라지는 것을 눈여겨보자. 변수를 분리한다.
초기 조건은 "정점 는 자기가 들어온 시각 에 차수 으로 시작한다", 즉 . 따라서 이고
지수가 라는 것이 핵심이다. 이 지수를 라 부른다.
손으로 읽어 보기 (Reading It by Hand)
| 묻는 것 | 계산 | 답 |
|---|---|---|
| 일 때 1번의 기대 차수 () | 100 | |
| 100번째로 들어온 사람은 | 10 | |
| 마지막(10000번)에 들어온 사람은 | 1 | |
| 1번 대 마지막 사람의 비 | 100배 | |
| 34명 학급이라면 1번 대 34번 | 5.83배 |
즉 차수의 격차는 실력 차이가 아니라 도착 시각의 제곱근 차이다. 모두가 똑같은 규칙을 따르는데도 그렇다.
| 평균 차수 | 중앙값 | 최댓값 | 이론 | 평균/이론 | |
|---|---|---|---|---|---|
| 1 | 107.9 | 89 | 413 | 100.0 | 1.079 |
| 2 | 118.7 | 99.5 | 534 | 70.7 | 1.679 |
| 5 | 54.7 | 42.5 | 303 | 44.7 | 1.223 |
| 10 | 33.3 | 22 | 215 | 31.6 | 1.053 |
| 50 | 13.5 | 9 | 95 | 14.1 | 0.954 |
| 100 | 9.6 | 6 | 69 | 10.0 | 0.957 |
| 500 | 4.26 | 3 | 27 | 4.47 | 0.952 |
| 1000 | 3.12 | 2 | 18 | 3.16 | 0.987 |
| 2500 | 1.96 | 1.5 | 8 | 2.00 | 0.981 |
| 5000 | 1.42 | 1 | 5 | 1.41 | 1.001 |
| 10000 | 1.00 | 1 | 1 | 1.00 | 1.000 |
한 줄만 이론에서 크게 벗어난다(1.679). 이유는 모형 탓이 아니라 시작 상태 탓이다 — 정점 1과 2는 처음부터 서로 연결된 채 동시에 존재하므로 실제로는 둘 다 이다. 회색 점선이 2번에 대해 을 요구하는 것이 잘못이다.
최소 1 · 1사분위 41 · 중앙값 89 · 3사분위 152.5 · 최대 413
1번이 최고 차수가 될 확률은 40.8%에 그친다. 어떤 판에서는 1번이 차수 1로 끝났다. 반면 관측한 11개 정점 중 인 넷 중 하나가 최고인 비율은 99.75%다.
읽는 법: "누가" 허브가 될지는 예측할 수 없지만, "언제 들어온 사람"이 될지는 거의 확실하다.
5. 손 계산 ③ 차수 분포를 재귀로 (Exact Degree Distribution by Recursion)
이제 분포 전체를 구한다. 로 놓자. 를 "시각 에 차수가 정확히 인 정점의 수"라 하자.
주방정식 (Master Equation)
정점 이 들어와 간선 하나를 붙일 때 무슨 일이 일어나는지 세 가지로 나눠 센다.
| 사건 | 확률 또는 개수 | 에 미치는 영향 |
|---|---|---|
| 차수 인 정점이 뽑혀 가 된다 | ||
| 차수 인 정점이 뽑혀 이 된다 | ||
| 새 정점 자신이 차수 1로 등장 | 1개 (단, 일 때만) |
분자가 인 이유: 차수 인 정점이 개 있고 각각이 확률 로 뽑히므로 "차수 인 누군가가 뽑힐" 기댓값은 다. 분모 는 §2에서 센 차수 합이다.
정상 해 (Stationary Solution)
"분포의 모양은 굳어지고 인원만 비례해서 늘어난다"고 가정한다. 즉 . 대입하면
양변에서 를 빼고 를 약분하면 가 완전히 사라진다 — 이게 정상 해가 존재한다는 증거다.
일 때 (The Case k = 1)
차수 0인 정점은 없으므로 . 대입하면
일 때 — 재귀식 (The Recursion)
4-5의 푸아송 재귀 와 나란히 놓고 보자. 푸아송은 비가 에 반비례해서 빠르게 0으로 떨어지지만, BA는 비가 로 1에 가까워진다(에서 0.75, 에서 0.971). 꼬리가 안 끊기는 이유가 여기 있다.
전부 전개하기 (Expanding Every Term)
| 비 | 재귀 전개 | 분수 | 소수 | 닫힌식 | |
|---|---|---|---|---|---|
| 1 | — | 0.6666667 | |||
| 2 | 0.1666667 | ||||
| 3 | 0.0666667 | ||||
| 4 | 0.0333333 | ||||
| 5 | 0.0190476 | ||||
| 6 | 0.0119048 | ||||
| 7 | 0.0079365 | ||||
| 8 | 0.0055556 | ||||
| 9 | 0.0040404 | ||||
| 10 | 0.0030303 |
마지막 열이 정확히 일치한다. 즉 재귀의 닫힌 해는
R로 부터 30까지 재귀와 닫힌식을 비교하면 최대 오차가 — 부동소수점 잡음뿐이다.
중간 항이 망원경처럼 상쇄된다. 에서 — R 값과 정확히 일치. 이면 2 ✓
일반 (General m)
같은 계산을 에 대해 하면 에서
은 상수만 바꾼다. 에 대한 의존성 은 그대로다. 이것이 다음 절의 핵심이다.
6. 왜 인가 — CCDF로 확인 (Why Gamma Equals 3)
4-5에서 배운 대로, 로그로그에 그릴 것은 히스토그램이 아니라 CCDF다. BA는 CCDF도 닫힌식으로 나온다.
망원경 항등식 (The Telescoping Identity)
다음을 확인하자. 우변을 통분하면
따라서 의 꼬리 합은 중간 항이 전부 지워지고 첫 항만 남는다.
검산: ✓ (모두가 차수 1 이상이다).
| 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 20 | 30 | |
| 1 | ||||||||||||
| 소수 | 1.000 | .3333 | .1667 | .1000 | .0667 | .0476 | .0278 | .0182 | .0128 | .00735 | .00476 | .00215 |
를 뽑는다 (Extracting γ)
가 커지면 이므로
로그로그에서 기울기는 . 4-5에서 유도한 항등식 를 쓰면
같은 결론을 쪽에서도 확인할 수 있다. 이므로 에서 , 에서 — 천천히 4로 수렴한다. 즉 .
에는 조절할 손잡이가 없다. 을 바꿔도, 을 바꿔도 3이다. 와츠–스트로가츠의 처럼 돌릴 것이 없다. 규칙 두 개를 정하는 순간 지수가 결정된다.
이건 강점이자 약점이다 — 설명력은 크지만 실제 자료의 가 2.1이든 3.8이든 맞출 수가 없다.
7. R 검증 ① 모의가 정확식을 따라가는가 (Simulation vs Exact Formula)
손으로 얻은 를 실제 모의와 맞춰 본다. , , 20회 평균.
d <- igraph::degree(sample_pa(100000, power=1, m=1,
zero.appeal=0, directed=FALSE))
sapply(1:14, function(k) mean(d >= k)) # 모의 CCDF
2/((1:14)*(2:15)) # 이론 CCDF
| 이론 | 모의 CCDF | 모의/이론 | |
|---|---|---|---|
| 1 | 1.000000 | 1.000000 | 1.0000 |
| 2 | 0.333333 | 0.333312 | 0.9999 |
| 3 | 0.166667 | 0.166320 | 0.9979 |
| 4 | 0.100000 | 0.099901 | 0.9990 |
| 5 | 0.066667 | 0.066648 | 0.9997 |
| 6 | 0.047619 | 0.047582 | 0.9992 |
| 7 | 0.035714 | 0.035665 | 0.9986 |
| 8 | 0.027778 | 0.027787 | 1.0003 |
| 9 | 0.022222 | 0.022292 | 1.0031 |
| 10 | 0.018182 | 0.018311 | 1.0071 |
| 12 | 0.012821 | 0.012937 | 1.0090 |
| 14 | 0.009524 | 0.009586 | 1.0065 |
오차가 1% 이내다. 손으로 유도한 식이 맞다.
자체도 재 보자. :
| 이론 | CCDF 회귀 | 최대우도 | 최대 차수 | |
|---|---|---|---|---|
| 1 | 3 | 2.877 | 2.907 | 358 |
| 2 | 3 | 2.952 | 2.887 | 684 |
| 3 | 3 | 2.920 | 2.949 | 685 |
모두 3에 붙지만 조금씩 모자란다(2.88~2.95). 왜 정확히 3이 안 나오는지는 §10에서 다룬다 — 자료 탓이 아니다.
8. R 검증 ② 성장만으로는 부족하다 (Growth Alone Is Not Enough)
규칙이 둘이었다. 어느 쪽이 진짜 원인인가? 통제 실험을 한다 — 성장은 그대로 두고 선호적 연결만 끈다.
d1 <- igraph::degree(sample_pa(5000, power=1, m=1, zero.appeal=0, directed=FALSE)) # 선호적
d0 <- igraph::degree(sample_pa(5000, power=0, m=1, directed=FALSE)) # 균등
손으로: 균등 연결의 분포 (By Hand: The Uniform-Attachment Distribution)
같은 주방정식을 확률만 바꿔 쓴다. 이제 뽑힐 확률이 차수와 무관하므로 분자에서 가 빠진다.
를 넣고 를 약분하면
: . : . 따라서
검산: ✓, ✓. 거듭제곱이 아니라 지수 분포다.
선호적: — 가 커지면 1에 가까워진다(꼬리가 안 끊긴다)
균등: — 와 무관하게 매번 반토막(꼬리가 지수적으로 끊긴다)
성장은 양쪽 다 있다. 차이를 만든 것은 오직 다.
| 지표 | 선호적 (BA) | 균등 (성장만) |
|---|---|---|
| 평균 차수 | 2.000 | 2.000 |
| 최대 차수 | 100 | 14 |
| 차수 분산 | 13.880 | 2.026 |
| 분산/평균 (4-5의 ) | 6.941 | 1.013 |
| 상위 1%(50명) 차수 점유율 | 13.62% | 4.33% |
| 반로그 | 0.712 | 0.995 |
| 로그로그 | 0.962 | 0.936 |
| 반로그 기울기 | — | (이론 ) |
평균 차수가 똑같이 2인데 최대 차수가 100 대 14, 분산/평균이 6.94 대 1.01이다. 균등 연결의 은 4-5에서 본 무작위 그래프의 1.025와 사실상 같다 — 성장만으로는 무작위와 구별되지 않는다.
성장은 필요조건이지 원인이 아니다. 원인은 라는 되먹임이다.
교실로 옮기면: 학급 인원이 늘어서 인기 격차가 생기는 게 아니라, "이미 친구가 많은 아이에게 새 친구가 더 붙는" 구조가 격차를 만든다.
9. 함정 ① igraph의 zero.appeal (The zero.appeal Trap)
zero.appeal=0을 달고 있었던 이유args(sample_pa)
function (n, power = 1, m = NULL, out.dist = NULL, out.seq = NULL,
out.pref = FALSE, zero.appeal = 1, directed = TRUE, ...)
zero.appeal의 기본값이 1이다. 즉 igraph가 실제로 쓰는 확률은
가 아니라 이다. 이건 BA 모형이 아니라
도로고프체프–멘데스–사무킨(DMS) 모형이고, 지수가 달라진다.
왜 이렇게 크게 달라지는가? 일 때 새로 들어온 정점은 차수가 1이다. 을 더하면 그 사람의 몫이 에서 로 두 배가 되는 반면, 차수 100인 허브는 로 1%만 오른다. 보정이 약자에게만 크게 작용해 격차를 눌러 버린다.
zero.appeal=0(초록)만 이론과 겹치고, 기본값 1(빨강)은 부터 아래로 갈라진다.| 이론 | za=0 | 비 | za=1 (기본값) | 비 | |
|---|---|---|---|---|---|
| 2 | 0.333333 | 0.333312 | 0.9999 | 0.399989 | 1.2000 |
| 6 | 0.047619 | 0.047582 | 0.9992 | 0.047653 | 1.0007 |
| 8 | 0.027778 | 0.027787 | 1.0003 | 0.024280 | 0.8741 |
| 10 | 0.018182 | 0.018311 | 1.0071 | 0.013960 | 0.7678 |
| 12 | 0.012821 | 0.012937 | 1.0090 | 0.008770 | 0.6840 |
| 14 | 0.009524 | 0.009586 | 1.0065 | 0.005847 | 0.6139 |
에서는 오히려 많고 부터 적다 — 꼬리를 깎아 바닥으로 옮긴 것이다.
구간의 로그로그 기울기로 보면 이론 , za=0 ,
za=1 로 확실히 다른 직선이다.
선점 효과 지수도 달라진다 (The First-Mover Exponent Changes Too)
일반적으로 이고 다. 이면 §4의 지만, 이면 로 줄어든다.
zero.appeal | 이론 | 실측 기울기 | 1번의 평균 차수 () | |
|---|---|---|---|---|
| 0 | 1 | 118.5 | ||
| 0 | 2 | 162.5 | ||
| 1 | 1 | 40.5 | ||
| 1 | 2 | 100.7 |
같은 sample_pa(10000, power=1, m=1, directed=FALSE) 한 줄에서
1번의 기대 차수가 40.5냐 118.5냐가 갈린다. 거의 3배다.
① 순수 BA를 돌리려면
zero.appeal=0을 반드시 명시한다.② 4-5에서 만난
fit_power_law(..., p.value=TRUE)와 똑같은 종류의 함정이다 —
기본값이 내가 생각한 모형이 아닐 수 있다. 새 함수를 쓸 때는 args()를 한 번 찍어 본다.③ 다만 이 틀린 모형인 것은 아니다. §13에서 보듯 오히려 교실에서는 더 현실적이다. 문제는 "내가 어느 모형을 돌렸는지 모르는 것"이다.
10. 함정 ② 정확한 식조차 을 안 준다 (Even the Exact Formula Misses)
§7에서 모의값이 2.88~2.95로 3에 못 미쳤다. 자료가 부족해서일까? 확인하는 방법이 있다 — 모의를 빼고 이론식 에 직접 자를 대 본다.
| 쓴 구간 | 로그로그 기울기 | 기울기 | 3과의 차이 |
|---|---|---|---|
| 2.8390 | |||
| (가라테 범위) | 2.8526 | ||
| 2.8879 | |||
| 2.9704 | |||
| 2.9970 | |||
| 2.9997 |
이유는 대수다. 이고, 뒤의 보정 항 는 에서 0.909, 에서 0.990이다. 작은 에서는 이 항이 곡선을 눕혀서 기울기를 보다 완만하게 만든다.
4-5에서 가라테의 가 방법에 따라 2.13~2.92로 흔들리는 것을 보고 "척도 없다고 말할 수 없다"고 썼다. 오늘 보니 완벽한 BA 네트워크를 가라테의 차수 범위()에서 재도 가 나온다.
즉 가라테의 2.13~2.92는 "자료가 나빠서"가 아니라 "재는 구간이 짧아서"이기도 하다. 작은 학급에서 를 소수 둘째 자리까지 말하는 것은 어느 쪽이든 의미가 없다.
11. BA가 못 맞히는 축 — 삼각형이 없다 (What BA Gets Wrong: No Triangles)
4-3(무작위)과 4-4(WS)를 채점했던 것과 같은 방식으로 BA를 채점한다. 먼저 군집계수.
| 평균 차수 | 삼각형 수 | BA 군집계수 | 같은 크기 | |
|---|---|---|---|---|
| 1 | 2.000 | 0 | 0.00000 | 0.00090 |
| 2 | 3.999 | 97 | 0.00255 | 0.00112 |
| 3 | 5.998 | 381 | 0.00486 | 0.00120 |
| 4 | 7.996 | 981 | 0.00745 | 0.00200 |
, zero.appeal=0
이면 삼각형이 정확히 0개다. §3에서 확인했듯 결과가 나무이기 때문이다. 여도 ER의 2~4배에 그친다. 실제 가라테는 0.2557, FMH 거대성분은 0.2840 — BA는 50~100배 모자란다.
이유는 4-3에서 가 실패한 것과 구조적으로 같다. 새 정점이 개의 상대를 고를 때 그 상대들끼리 친구인지는 전혀 고려하지 않는다. "내 친구의 친구를 소개받는다"는 장치가 모형 안에 없다.
거리는 오히려 더 잘 맞힌다 (Distance Is Predicted Better)
| BA 평균거리 | BA 지름 | 같은 크기 ER 거리 | ER 지름 | ||
|---|---|---|---|---|---|
| 100 | 3.009 | 5 | 3.427 | 7 | 3.015 |
| 1000 | 4.106 | 7 | 5.108 | 11 | 3.574 |
| 5000 | 4.766 | 8 | 6.219 | 13 | 3.976 |
| 20000 | 5.321 | 9 | 7.262 | 15 | 4.319 |
BA는 무작위 그래프보다도 가깝다. 을 200배 늘리는 동안 BA 거리는 1.77배, ER은 2.12배 늘었다. 허브가 모두에게 공통인 지름길 역할을 하기 때문이다. 이 현상을 초-좁은 세상(ultra-small world)이라 부르고, 이론값은 으로 의 보다 느리게 자란다.
12. 가라테와 FMH를 BA와 대조 (Karate and FMH against BA)
같은 크기의 BA를 200번 만들어 실제 자료가 그 분포의 어디에 놓이는지 본다 (4-3·4-4와 같은 값 방식).
간선 수를 자유롭게 못 정한다. 이 정수이므로 평균 차수가 짝수만 가능하다.
가라테는 평균 차수 4.588 → 면 간선 65개(평균 3.82), 이면 96개(평균 5.65). 실제 78개를 낼 수가 없다. 아래는 로 맞춘 것이므로 BA 쪽이 조금 성긴 그래프다.
가라테 (n=34, m=78)
| 지표 | 실제 | BA 평균 (범위) | 판정 | |
|---|---|---|---|---|
| 최대 차수 | 17 | 14.1 (9~22) | 1.15 | 맞힌다 |
| 차수 분산 | 15.04 | 8.71 (4.45~16.45) | 3.07 | 실제가 더 쏠림 |
| 군집계수 | 0.2557 | 0.1399 (0.0855~0.1917) | 5.31 | 못 맞힌다 |
| 평균 거리 | 2.4082 | 2.4355 (2.246~2.594) | 맞힌다 |
4-3에서 는 최대 차수를 전혀 못 맞혔다(무작위 2000회 중 차수 16 이상 0회). BA는 최대 차수와 거리를 동시에 맞힌 첫 모형이다. 대신 삼각형에서 무너진다.
FMH 거대성분 (n=439, m=573)
| 지표 | 실제 | BA 평균 (범위) | 판정 | |
|---|---|---|---|---|
| 최대 차수 | 8 | 41.0 (19~85) | 정반대로 틀린다 | |
| 차수 분산 | 2.106 | 9.33 (5.27~19.91) | 정반대 | |
| 군집계수 | 0.2840 | 0.0000 (전부 나무) | 계산 불가 | 못 맞힌다 |
| 평균 거리 | 16.877 | 6.18 (4.99~7.34) | 20.60 | 크게 틀린다 |
네 축이 전부 틀렸고, 그중 둘은 방향까지 반대다. BA는 허브를 만들려고 애쓰는데 실제 FMH에는 최대 차수가 8밖에 안 된다(439명 중에!). BA는 거리를 6으로 줄이는데 실제는 16.9다.
· 가라테는 허브가 있고 거리가 짧다 → BA 쪽. 단 삼각형은 BA로 설명 안 됨
· FMH는 허브가 없고 뭉치고 멀다 → 4-4에서 본 대로 격자 쪽. BA는 완전히 틀린 모형
· 어느 쪽도 네 축을 동시에 맞히지 못한다
같은 "학교 자료"인데 필요한 모형이 정반대다. 모형은 자료마다 고르는 것이지 하나로 통일되지 않는다.
13. 교실 적용 (Classroom Application)
① 선점 효과는 실력이 아니라 시각의 문제다 (I. First-Mover Advantage Is About Timing, Not Merit)
. 34명 학급을 BA로 보면 1번과 34번의 기대 차수 비는 배다. 500회 모의에서 실제 비는 4.93배(1번 평균 9.87, 34번 2.00)였고, 최고 차수가 1~5번에서 나온 비율은 95.2%, 30~34번에서 나온 비율은 0%였다.
4월에 전학 온 학생의 교우 관계가 적은 것은 모든 학생이 똑같은 규칙을 따라도 생기는 결과다. 성격 문제로 해석하기 전에 도착 시각을 먼저 확인해야 한다.
같은 이유로 3월 첫 2주가 학년 전체를 좌우한다 — 그때 만들어진 차수 우위가 를 타고 계속 벌어진다.
② 원인은 성장이 아니라 되먹임이다 (II. The Cause Is Feedback, Not Growth)
§8의 통제 실험: 인원이 5000명으로 똑같이 늘어도, 상대를 균등하게 고르면 최대 차수 14·분산/평균 1.01로 무작위와 구별되지 않는다. 선호적으로 고르면 최대 차수 100·분산/평균 6.94다.
"학급이 크니까 소외되는 애가 생긴다"는 설명은 틀렸다. 격차를 만드는 것은 인원이 아니라 "인기 있는 아이에게 새 관계가 더 붙는" 되먹임이다. 개입해야 할 것은 학급 규모가 아니라 짝·모둠이 정해지는 방식이다.
③ 개입 지점: 를 키우면 꼬리가 얇아진다 (III. Where to Intervene: Raising A Thins the Tail)
§9의 zero.appeal은 함정이기만 한 게 아니다.
에서 는 "차수와 무관하게 누구나 갖는 기본 몫"이다.
교사가 자리를 무작위로 배정하거나 모둠을 제비뽑기로 짜는 것이 바로 를 키우는 개입이다.
이 커진다 = 꼬리가 얇아진다 = 쏠림이 완화된다.
| 이론 | 최대 차수 | 차수 분산 | 분산/평균 | 상위 1% 점유율 | |
|---|---|---|---|---|---|
| 0 (순수 BA) | 3.0 | 390 | 17.02 | 8.51 | 13.71% |
| 0.5 | 3.5 | 315 | 9.49 | 4.74 | 10.48% |
| 1 (igraph 기본) | 4.0 | 152 | 6.07 | 3.03 | 8.75% |
| 2 | 5.0 | 49 | 3.81 | 1.91 | 7.10% |
| 4 | 7.0 | 33 | 2.99 | 1.50 | 5.98% |
,
를 0에서 4로 올리면 최대 차수가 390에서 33으로, 가 8.51에서 1.50으로 떨어진다. 는 4-5에서 본 FMH(1.537) 수준, 즉 거의 무작위다.
현실적 해석: 은 "친구가 0명인 학생도 친구 1명인 학생의 절반만큼은 선택될 기회를 갖는다"는 뜻이다. 기회를 균등하게 만드는 것이 아니라 바닥에 최소 몫을 얹는 것만으로 쏠림이 절반 이하로 준다.
단, 이건 모형 안에서의 이야기다. 실제 교실에서 에 해당하는 개입이 얼마나 되는지는 측정해 봐야 한다 — 개입 전후의 를 재는 것이 그 방법이다.
④ 한계도 그대로 말해야 한다 (IV. State the Limits Honestly)
· 삼각형: 실제 0.26, BA 0.14(가라테 크기)~0.00(대규모). 모둠·동아리처럼 "친구의 친구를 소개받는" 경로가 모형에 없다.
· 허브가 없는 학교: FMH는 439명인데 최대 차수 8이다. BA는 41을 예측한다. 학년이 반별로 갈려 있어 되먹임이 반 안에서 끊기기 때문으로 보인다.
· 의 값: BA는 무조건 3이다. 실제 자료가 2.1이면 BA로는 설명이 안 된다.
14. 연습문제 (Exercises)
학급에 학생 3명이 있고 관계는 1–2, 2–3 두 개다. 차수는 .
매 시각 새 학생이 한 명 들어와 친구 한 명을 로 고른다. 뽑힌 상대는 차례로 2번 → 4번 → 2번 → 2번이었다.
(가) 각 시각에 대해 차수 합 와 그 시각에 존재하는 모든 정점의 를 하나도 빼놓지 말고 써라. 매번 확률의 합이 1인지 검산할 것.
(나) 최종 차수 벡터, 차수 합, 간선 수를 구하고, 결과가 나무인지 확인하라. 최대 차수는 전체 차수 합의 몇 %인가?
(다) 2번의 기대 최종 차수를 두 방식으로 계산해 비교하라. ① 선호적 연결일 때 ② 균등 연결()일 때.
힌트: 선호적이면 매 시각 에 를 곱하면 된다.
§15 해설 — 먼저 풀고 맞춰 볼 것.
어떤 학교 1000명의 교우 관계가 짜리 BA로 자랐다고 하자.
(가) 로 의 기대 인원을 구하라. 그 여섯을 더하면 몇 명인가? 나머지는 어디로 갔는가?
(나) 로 친구 20명 이상, 30명 이상인 학생의 기대 인원을 구하라.
(다) 같은 학교가 균등 연결(성장만)로 자랐다면 어떨까? 로 같은 두 값을 구하고 비를 내라. 또 각 모형에서 "기대 인원이 1명이 되는 "를 구하라.
(라) 정확식의 두 점 과 에서 로그로그 기울기를 재고 를 구하라. 정확히 3이 나오는가? 과 으로 바꾸면?
§15 해설 — 먼저 풀고 맞춰 볼 것.
15. 해설과 답 (Solutions)
연습 1-(가) 네 시각의 전부 (Exercise 1(a): Π at All Four Time Steps)
먼저 분모. 시작이 정점 3개·간선 2개이므로 정점 가 들어오려는 순간 간선은 개, 차수 합은 다. , , , .
| 합 | 뽑힌 상대 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 4 | 4 | =.2500 | =.5000 | =.2500 | — | — | — | =1 ✓ | 2번 |
| 5 | 6 | =.1667 | =.5000 | =.1667 | =.1667 | — | — | =1 ✓ | 4번 |
| 6 | 8 | =.1250 | =.3750 | =.1250 | =.2500 | =.1250 | — | =1 ✓ | 2번 |
| 7 | 10 | =.1000 | =.4000 | =.1000 | =.2000 | =.1000 | =.1000 | =1 ✓ | 2번 |
차수가 어떻게 갱신되는지도 한 줄씩:
| 시각 | 1번 | 2번 | 3번 | 4번 | 5번 | 6번 | 7번 | 합 |
|---|---|---|---|---|---|---|---|---|
| 시작 | 1 | 2 | 1 | — | — | — | — | 4 |
| 후 | 1 | 3 | 1 | 1 | — | — | — | 6 |
| 후 | 1 | 3 | 1 | 2 | 1 | — | — | 8 |
| 후 | 1 | 4 | 1 | 2 | 1 | 1 | — | 10 |
| 후 | 1 | 5 | 1 | 2 | 1 | 1 | 1 | 12 |
왜 그런 값인가: 2번은 시작부터 차수 2로 남들의 2배였고, 첫 번째로 또 뽑히면서 가 0.500 → 0.500 → 0.375 → 0.400으로 유지됐다. 분모가 2씩 늘어나는 동안 2번의 분자도 같이 늘었기 때문이다. 반면 1번과 3번은 분자가 1로 고정된 채 분모만 커져 0.250 → 0.167 → 0.125 → 0.100으로 계속 떨어졌다.
연습 1-(나) 최종 상태 (Exercise 1(b): The Final State)
간선 → 나무다 ✓ (이면 항상 그렇다)
최대 차수 →
값의 의미: 일곱 명 중 한 명이 연결의 40% 이상을 갖는다. 완전히 평등하다면 각자 이므로 2.9배다. 겨우 네 걸음 만에 이 정도 격차가 생겼다.
연습 1-(다) 기대 차수 — 두 방식 (Exercise 1(c): Expected Degree, Two Ways)
① 균등 연결. 시각 에 이미 있는 사람이 명이므로 2번이 뽑힐 확률은 . 기댓값은 그냥 더하면 된다.
| 사람 수 | 더할 확률 | 소수 | 누적 | |
|---|---|---|---|---|
| 시작 | — | — | — | 2.0000000 |
| 4 | 3 | 0.3333333 | 2.3333333 | |
| 5 | 4 | 0.2500000 | 2.5833333 | |
| 6 | 5 | 0.2000000 | 2.7833333 | |
| 7 | 6 | 0.1666667 | 2.9500000 |
② 선호적 연결. 이번엔 뽑힐 확률이 로 자기 차수에 비례하므로 더할 수 없다. 대신 — 곱셈이 된다.
| 곱할 인수 | 분수 | 누적 | ||
|---|---|---|---|---|
| 시작 | — | — | — | 2.0000000 |
| 4 | 4 | 2.5000000 | ||
| 5 | 6 | 2.9166667 | ||
| 6 | 8 | 3.2812500 | ||
| 7 | 10 | 3.6093750 |
R로 10만 회 모의: 선호적 3.6043, 균등 2.9515 — 둘 다 이론과 일치 ✓
값의 의미: 균등은 덧셈(고정된 몫을 나눠 받음), 선호적은 곱셈(가진 만큼 불어남)이다. 겨우 네 단계에서 22%지만, 이 곱셈이 단계 쌓이면 §4의 이 된다.
연습 2-(가) 의 기대 인원 (Exercise 2(a): Expected Counts for k = 1 to 6)
| 소수 | 왜 그 값인가 | ||||
|---|---|---|---|---|---|
| 1 | 0.6666667 | 666.67명 | 방금 들어온 사람은 전부 차수 1 | ||
| 2 | 0.1666667 | 166.67명 | 한 번 더 선택받은 사람 | ||
| 3 | 0.0666667 | 66.67명 | |||
| 4 | 0.0333333 | 33.33명 | |||
| 5 | 0.0190476 | 19.05명 | |||
| 6 | 0.0119048 | 11.90명 | |||
| 합 | 964.29명 | 나머지 35.71명 | |||
나머지 35.71명은 차수 7 이상이다. 검산: ✓ 정확히 맞는다.
값의 의미: 1000명 중 3분의 2가 친구 한 명이다. "평균 친구 수 2명"이라는 요약은 이 학교를 전혀 설명하지 못한다 — 4-5에서 배운 대로 평균이 아니라 분포를 봐야 한다.
연습 2-(나)(다) 꼬리 비교 (Exercise 2(b)(c): Comparing the Tails)
| BA | BA 기대 인원 | 균등 | 균등 기대 인원 | 비 | |
|---|---|---|---|---|---|
| 20 | 4.762명 | 0.001907명 | 2497배 | ||
| 30 | 2.151명 | 0.0000019명 | 1,154,561배 |
"기대 인원이 1명이 되는 "는 을 푸는 것이다.
| 모형 | 푸는 식 | 정리 | |
|---|---|---|---|
| BA | 44.2 | ||
| 균등 | 11.0 |
1명이 되는 지점은 BA , 균등 .
R 검산(, 200회): BA는 차수 20 이상 평균 5.42명(이론 4.76), 30 이상 2.56명(이론 2.15), 최대 차수 평균 61.8. 균등은 차수 20 이상이 200회 내내 0명이고 최대 차수 평균 10.7(범위 8~15).
값의 의미: 비가 에 따라 2497배 → 115만 배로 폭발한다. 지수 꼬리는 마다 반토막이지만 거듭제곱 꼬리는 로만 줄기 때문이다. 꼬리 끝으로 갈수록 두 모형의 차이는 비교 자체가 무의미할 만큼 벌어진다.
연습 2-(라) 두 점에서 뽑기 (Exercise 2(d): γ from Two Points)
| 두 점 | 두 값 | 세로 변화 | 가로 변화 | 기울기 | 기울기 |
|---|---|---|---|---|---|
| 2.962929 | |||||
| 2.996113 |
왜 그런가: 는 가 아니다. 이고, 보정 항 가 에서 0.909, 에서 0.990, 에서 0.999다. 작은 에서 이 항이 곡선을 눕혀 기울기를 보다 완만하게 만든다.
값의 의미: 이건 표본 오차가 아니다. 모의도 자료도 없이 순수한 수식에 자를 댄 결과다.
학교 자료에서 로 할 수 있는 말은 "거듭제곱 꼬리인가 지수 꼬리인가" 정도이고, 그것도 4-5에서 본 대로 같은 크기 무작위와 비교해야 비로소 근거가 된다. 소수점 아래를 놓고 모형을 고르는 것은 과잉 해석이다.
다음 단원 4-7 — 모형은 축마다 채점된다
지금까지 세 모형을 봤다. 는 거리를 맞히고 뭉침·허브를 놓쳤고(4-3),
WS는 거리와 뭉침을 동시에 맞히고 허브를 놓쳤고(4-4), BA는 허브와 거리를 맞히고 뭉침을 놓쳤다(오늘).
세 축을 동시에 맞히는 모형은 없는가? 그리고 "맞혔다/틀렸다"를 눈대중이 아니라
하나의 채점판으로 정리하려면 어떻게 해야 하는가 — 다음 시간에 다룬다.