단원 2-3Betweenness Centrality
매개 중심성 — 최단경로를 몇 번 지나는가
- 오늘의 질문 (Today's Question)
- 정의 — 최단경로 위의 통행료 (Definition)
- 준비 — 21개 쌍의 최단경로가 모두 유일하다 (All Geodesics Are Unique)
- 손 계산 ① S4 — 15개 쌍 전부 (Hand Calculation: S4)
- 손 계산 ② S3와 S1 (Hand Calculation: S3 and S1)
- 일곱 명 전부와 정규화 (All Seven & Normalization)
- 검산 — 거리행렬로 다시 확인 (Cross-check with D)
- 세 지표의 대결 (Three Measures Compared)
- 매개 중심화 (Betweenness Centralization)
- R 검증과 함정 (R Verification & Traps)
- 교실 적용 (Classroom Application)
- 연습문제 (Exercises)
- 연습문제 해설과 답 (Solutions)
1. 오늘의 질문 (Today's Question)
단원 2-1과 2-2에서 같은 7명 네트워크에 두 가지 답이 나왔다. 연결정도는 S3·S5를 1위로, 근접은 S4를 1위(0.6)로 뽑았다. 그런데 근접 중심성이 준 답에는 불만이 남았다 — S4(0.6)와 S3(0.5455)의 차이가 0.0545밖에 안 된다.
우리가 알고 있는 사실은 훨씬 극적이다(단원 2-1 §5):
S4가 빠지면 학급이 3명 · 3명으로 정확히 두 조각이 난다. 왼쪽 모둠 {S1,S2,S3}과 오른쪽 모둠 {S5,S6,S7} 사이의 모든 왕래가 S4 한 명을 지난다.
이 "반드시 나를 거쳐야 한다"는 사실을 숫자로 세는 지표가 오늘의 매개 중심성이다. 질문은 이렇게 바뀐다:
"두 학생이 서로에게 가장 빠른 길로 말을 전할 때, 내 자리를 지나가는 일이 몇 번이나 생기는가?"
2. 정의 — 최단경로 위의 통행료 (Definition)
기호. 와 두 학생에 대해
- = 에서 로 가는 최단경로의 개수
- = 그중 를 지나는 최단경로의 개수
정의 (매개 중심성).
세 부분을 하나씩 뜯어 읽는다.
| 부분 | 읽는 법 | 왜 그렇게 하는가 |
|---|---|---|
| 같은 쌍을 한 번만 센다 | 무방향이므로 와 는 같은 쌍이다 | |
| 나 자신이 출발점이나 도착점인 쌍은 뺀다 | "내가 남을 중개한다"를 재는 것이지 내 통신량을 재는 게 아니다 | |
| 최단경로가 여러 개면 나눠 갖는다 | 우회로가 있으면 내 중개 권력이 그만큼 약해진다 |
분수 부분을 예로 보자. 어떤 쌍 에 대해
| 상황 | 기여 | 뜻 | ||
|---|---|---|---|---|
| 내가 유일한 통로 | 1 | 1 | 1 | 독점 — 나를 반드시 거친다 |
| 최단길이 둘, 내가 그중 하나 | 2 | 1 | 0.5 | 절반 — 우회로가 하나 있다 |
| 최단길이 둘, 내가 둘 다에 있음 | 2 | 2 | 1 | 독점 — 길이 갈라져도 내 자리는 거친다 |
| 내 자리를 안 지난다 | 1 | 0 | 0 | 이 쌍에서 나는 없어도 그만 |
즉 는 "내가 받는 통행료의 총합"이다. 최댓값은 모든 쌍에서 1을 받을 때, 즉 내가 빠진 모든 쌍의 개수다.
정규화. 를 뺀 나머지 명 중에서 두 명을 고르는 경우의 수가 최댓값이다:
이면 — 우리는 쌍 15개를 세면 된다.
연결정도·근접과 결정적으로 다른 점. 와 는 절대로 0이 될 수 없다(연결이 되어 있는 한 이웃도 있고 거리도 유한하다). 그런데 는 0이 아주 흔하다. "아무도 나를 거쳐 가지 않는다"는 학생이 학급에 다수일 수 있다 — 실제로 우리 예제에서 7명 중 4명이 0이다(§6).
3. 준비 — 21개 쌍의 최단경로가 모두 유일하다 (All Geodesics Are Unique)
손으로 계산하기 전에 부터 확인한다. 다행히 이 네트워크는 아주 깨끗하다.
| 쌍 | 최단경로 | 쌍 | 최단경로 | ||||
|---|---|---|---|---|---|---|---|
| S1–S2 | 1 | 1 | S1-S2 | S2–S7 | 4 | 1 | S2-S3-S4-S5-S7 |
| S1–S3 | 1 | 1 | S1-S3 | S3–S4 | 1 | 1 | S3-S4 |
| S1–S4 | 2 | 1 | S1-S3-S4 | S3–S5 | 2 | 1 | S3-S4-S5 |
| S1–S5 | 3 | 1 | S1-S3-S4-S5 | S3–S6 | 3 | 1 | S3-S4-S5-S6 |
| S1–S6 | 4 | 1 | S1-S3-S4-S5-S6 | S3–S7 | 3 | 1 | S3-S4-S5-S7 |
| S1–S7 | 4 | 1 | S1-S3-S4-S5-S7 | S4–S5 | 1 | 1 | S4-S5 |
| S2–S3 | 1 | 1 | S2-S3 | S4–S6 | 2 | 1 | S4-S5-S6 |
| S2–S4 | 2 | 1 | S2-S3-S4 | S4–S7 | 2 | 1 | S4-S5-S7 |
| S2–S5 | 3 | 1 | S2-S3-S4-S5 | S5–S6 | 1 | 1 | S5-S6 |
| S2–S6 | 4 | 1 | S2-S3-S4-S5-S6 | S5–S7 | 1 | 1 | S5-S7 |
| S6–S7 | 1 | 1 | S6-S7 | ||||
21개 쌍 전부 이다. 최단경로가 하나뿐이므로 분수가 전혀 나오지 않는다 — 는 항상 0 아니면 1이다. 그래서 오늘의 손 계산은 "지나간다/안 지나간다"를 세는 일로 단순해진다.
왜 유일한가. 이 네트워크에는 짝수 길이 순환이 없다. 삼각형(길이 3) 두 개와 사슬뿐이라 "같은 길이의 다른 길"이 만들어지지 않는다. 단원 2-3 연습 1에서는 이 성질이 깨지고 실제로 가 등장한다 — 그때 분수를 제대로 다룬다.
4. 손 계산 ① S4 — 15개 쌍 전부 (Hand Calculation: S4)
S4를 뺀 6명 에서 두 명을 고르는 15개 쌍을 하나도 빠뜨리지 않고 검사한다.
| # | 쌍 | 유일한 최단경로 | 기여 | 왜 그 값인가 | ||
|---|---|---|---|---|---|---|
| 1 | S1–S2 | S1-S2 | 1 | 0 | 0 | 같은 삼각형 안 — 직접 연결 |
| 2 | S1–S3 | S1-S3 | 1 | 0 | 0 | 직접 연결 |
| 3 | S1–S5 | S1-S3-S4-S5 | 1 | 1 | 1 | 왼쪽 → 오른쪽 — S4를 통과 |
| 4 | S1–S6 | S1-S3-S4-S5-S6 | 1 | 1 | 1 | 왼쪽 → 오른쪽 — S4를 통과 |
| 5 | S1–S7 | S1-S3-S4-S5-S7 | 1 | 1 | 1 | 왼쪽 → 오른쪽 — S4를 통과 |
| 6 | S2–S3 | S2-S3 | 1 | 0 | 0 | 직접 연결 |
| 7 | S2–S5 | S2-S3-S4-S5 | 1 | 1 | 1 | 왼쪽 → 오른쪽 — S4를 통과 |
| 8 | S2–S6 | S2-S3-S4-S5-S6 | 1 | 1 | 1 | 왼쪽 → 오른쪽 — S4를 통과 |
| 9 | S2–S7 | S2-S3-S4-S5-S7 | 1 | 1 | 1 | 왼쪽 → 오른쪽 — S4를 통과 |
| 10 | S3–S5 | S3-S4-S5 | 1 | 1 | 1 | 왼쪽 → 오른쪽 — S4를 통과 |
| 11 | S3–S6 | S3-S4-S5-S6 | 1 | 1 | 1 | 왼쪽 → 오른쪽 — S4를 통과 |
| 12 | S3–S7 | S3-S4-S5-S7 | 1 | 1 | 1 | 왼쪽 → 오른쪽 — S4를 통과 |
| 13 | S5–S6 | S5-S6 | 1 | 0 | 0 | 같은 삼각형 안 — 직접 연결 |
| 14 | S5–S7 | S5-S7 | 1 | 0 | 0 | 직접 연결 |
| 15 | S6–S7 | S6-S7 | 1 | 0 | 0 | 직접 연결 |
| 합계 | 9 | |||||
합을 항별로 전부 쓰면:
9라는 수의 구조가 보인다. 기여가 1인 쌍은 정확히 "왼쪽 {S1,S2,S3} 한 명 × 오른쪽 {S5,S6,S7} 한 명" 꼴이다.
그리고 이것은 단원 2-1 §5에서 확인한 "S4를 지우면 3·3으로 갈라진다"와 같은 숫자다. 절단점의 매개 중심성 = 갈라지는 두 조각 크기의 곱이다 — S4의 구조적 역할이 드디어 정확한 숫자가 되었다.
5. 손 계산 ② S3와 S1 (Hand Calculation: S3 and S1)
5-1. S3 — 왼쪽 삼각형의 문지기 (The Gatekeeper of the Left Triangle)
S3을 뺀 6명 의 15개 쌍:
| # | 쌍 | 최단경로 | 기여 | # | 쌍 | 최단경로 | 기여 |
|---|---|---|---|---|---|---|---|
| 1 | S1–S2 | S1-S2 | 0 | 9 | S2–S7 | S2-S3-S4-S5-S7 | 1 |
| 2 | S1–S4 | S1-S3-S4 | 1 | 10 | S4–S5 | S4-S5 | 0 |
| 3 | S1–S5 | S1-S3-S4-S5 | 1 | 11 | S4–S6 | S4-S5-S6 | 0 |
| 4 | S1–S6 | S1-S3-S4-S5-S6 | 1 | 12 | S4–S7 | S4-S5-S7 | 0 |
| 5 | S1–S7 | S1-S3-S4-S5-S7 | 1 | 13 | S5–S6 | S5-S6 | 0 |
| 6 | S2–S4 | S2-S3-S4 | 1 | 14 | S5–S7 | S5-S7 | 0 |
| 7 | S2–S5 | S2-S3-S4-S5 | 1 | 15 | S6–S7 | S6-S7 | 0 |
| 8 | S2–S6 | S2-S3-S4-S5-S6 | 1 | 합 8 | |||
여기서도 구조가 보인다. 기여가 1인 쌍은 한 명 × 한 명이다:
단원 2-1 §5에서 S3을 지우면 2·4로 갈라진다고 확인한 바로 그 숫자다.
S3도 절단점이다 — 그런데 S4보다 값이 작다. S3을 지우면 2명·4명, S4를 지우면 3·3으로 갈라진다. 곱하면 이고 다. 같은 넓이의 울타리로 가장 넓은 땅을 만드는 것은 정사각형이라는 것과 같은 이치로, 절단점은 학급을 정확히 반으로 가를 때 매개 중심성이 가장 높다. "몇 명을 끊느냐"가 아니라 "얼마나 고르게 끊느냐"가 중요하다.
5-2. S1 — 삼각형 안쪽 (전부 0) (Inside the Triangle: All Zeros)
S1을 뺀 15개 쌍을 전부 검사하면 단 하나도 S1을 지나지 않는다.
| # | 쌍 | 최단경로 | 기여 | # | 쌍 | 최단경로 | 기여 |
|---|---|---|---|---|---|---|---|
| 1 | S2–S3 | S2-S3 | 0 | 9 | S3–S7 | S3-S4-S5-S7 | 0 |
| 2 | S2–S4 | S2-S3-S4 | 0 | 10 | S4–S5 | S4-S5 | 0 |
| 3 | S2–S5 | S2-S3-S4-S5 | 0 | 11 | S4–S6 | S4-S5-S6 | 0 |
| 4 | S2–S6 | S2-S3-S4-S5-S6 | 0 | 12 | S4–S7 | S4-S5-S7 | 0 |
| 5 | S2–S7 | S2-S3-S4-S5-S7 | 0 | 13 | S5–S6 | S5-S6 | 0 |
| 6 | S3–S4 | S3-S4 | 0 | 14 | S5–S7 | S5-S7 | 0 |
| 7 | S3–S5 | S3-S4-S5 | 0 | 15 | S6–S7 | S6-S7 | 0 |
| 8 | S3–S6 | S3-S4-S5-S6 | 0 | 합 0 | |||
왜 0인가. S1의 이웃은 S2와 S3 둘뿐인데, 그 둘은 서로 직접 이어져 있다. 그래서 "S2에서 S3으로 갈 때 S1을 경유한다"는 일이 절대 없다. S1은 삼각형 안에 갇혀 있어서 바깥으로 나가는 유일한 문이 S3인데, S1 자신은 그 문의 안쪽에 있다. 이웃들이 서로 다 아는 사이라면 나는 중개할 것이 없다 — 이것이 매개 중심성 0의 의미다.
6. 일곱 명 전부와 정규화 (All Seven & Normalization)
S2·S6·S7도 같은 방식으로 계산하면 모두 0이고(S5는 S3과 대칭이라 8), S5는 오른쪽 삼각형의 문지기로 이다.
| 학생 | 지우면 갈라지는 크기 | 곱 | 소수 | 순위 | ||
|---|---|---|---|---|---|---|
| S1 | 0 | 안 갈라짐 (6명 하나로) | — | 0.0000 | 4위 | |
| S2 | 0 | 안 갈라짐 | — | 0.0000 | 4위 | |
| S3 | 8 | 2 · 4 | 8 | 0.5333 | 2위 | |
| S4 | 9 | 3 · 3 | 9 | 0.6000 | 1위 | |
| S5 | 8 | 4 · 2 | 8 | 0.5333 | 2위 | |
| S6 | 0 | 안 갈라짐 | — | 0.0000 | 4위 | |
| S7 | 0 | 안 갈라짐 | — | 0.0000 | 4위 | |
| 합 | 25 | |||||
절단점 세 명이 정확히 매개 중심성 상위 세 명이다.
단원 2-1 §5에서 articulation_points(g)가 S3, S4, S5를 돌려주었는데,
매개 중심성이 0이 아닌 학생도 정확히 그 셋이다.
절단점이면 반드시 이다 —
갈라지는 두 조각 사이의 모든 왕래가 나를 지나야 하니 당연하다.
다만 역은 성립하지 않는다. 인데 절단점이 아닌 경우는 얼마든지 있다 (우회로가 있어서 없어도 안 갈라지지만, 최단경로는 나를 지나는 경우). 연습 1에서 정확히 그런 학생이 등장한다.
7. 검산 — 거리행렬로 다시 확인 (Cross-check with D)
15개 쌍씩 7번을 세었으니 실수했을 가능성이 있다. 전혀 다른 경로로 검산해 보자.
착상. 최단경로가 모두 유일할 때, 길이 인 경로의 중간 지점 개수는 이다 (S1-S3-S4-S5는 길이 3, 중간이 S3·S4 두 개). 그 쌍은 중간에 있는 학생들에게 1씩 통행료를 준다. 따라서 모든 학생의 통행료를 다 더하면:
단원 2-2 §3에서 거리 총합 46, 쌍의 개수 을 이미 구했다. 거리별로 나눠 쓰면:
| 거리 | 쌍의 개수 | 중간 지점 | 기여 = 개수 × | 해당 쌍 |
|---|---|---|---|---|
| 1 | 8 | 0 | 직접 연결된 8쌍 — 중개자 없음 | |
| 2 | 5 | 1 | S1S4, S2S4, S3S5, S4S6, S4S7 | |
| 3 | 4 | 2 | S1S5, S2S5, S3S6, S3S7 | |
| 4 | 4 | 3 | S1S6, S1S7, S2S6, S2S7 | |
| 합 | 21 | 25 | = 거리 총합 46 − 쌍 21 |
두 경로가 만났다. 쌍을 하나씩 세어 얻은 25와 거리행렬에서 바로 계산한 25가 일치한다. 손 계산이 옳다는 독립적 증거다. (주의: 이 검산은 모든 최단경로가 유일할 때만 성립한다. 경로가 여러 개면 통행료가 쪼개져서 합이 달라진다.)
8. 세 지표의 대결 (Three Measures Compared)
2단계에서 지금까지 구한 세 지표를 같은 표에 놓는다. 오늘의 핵심 장면이다.
| 학생 | 순위 | 순위 | 순위 | 한 줄 해석 | |||
|---|---|---|---|---|---|---|---|
| S4 | .3333 | 3위 | .6000 | 1위 | .6000 | 1위 | 친구는 가장 적은데 없으면 안 되는 학생 |
| S3 | .5000 | 1위 | .5455 | 2위 | .5333 | 2위 | 인기도 있고 중개도 하는 모범적 위치 |
| S5 | .5000 | 1위 | .5455 | 2위 | .5333 | 2위 | S3과 완전 대칭 |
| S1 | .3333 | 3위 | .4000 | 4위 | .0000 | 4위 | 삼각형 안쪽 — 중개 역할 전무 |
| S2 | .3333 | 3위 | .4000 | 4위 | .0000 | 4위 | S1과 동일 |
| S6 | .3333 | 3위 | .4000 | 4위 | .0000 | 4위 | S1·S2와 동일 |
| S7 | .3333 | 3위 | .4000 | 4위 | .0000 | 4위 | S1·S2와 동일 |
세 지표를 읽는 법.
| 지표 | 묻는 질문 | 보는 범위 | 이 학급의 답 |
|---|---|---|---|
| 연결정도 | "내 옆에 몇 명 있나" | 거리 1까지 — 국소 | S3, S5 (인기) |
| 근접 | "내가 전체에 얼마나 가깝나" | 모든 거리 — 전역 | S4 (빠른 전파) |
| 매개 | "남들이 나를 얼마나 거치나" | 모든 쌍 — 구조 | S4 (없으면 안 됨) |
근접과 매개가 둘 다 S4를 1위로 뽑았지만 성격이 다르다. 근접에서 S4와 S3의 차이는 0.6 vs 0.5455 — 겨우 10% 차이였다. 매개에서도 0.6 vs 0.5333이지만, 하위 네 명이 전부 0이라 분포가 완전히 다르다. 매개 중심성은 "있는 사람"과 "없는 사람"을 갈라 놓는 지표다.
9. 매개 중심화 (Betweenness Centralization)
Freeman 중심화 틀을 세 번째로 적용한다 — 1등과의 격차의 합 ÷ 별 그래프의 값. 이번에는 정규화하지 않은 로 계산한다(교재와 igraph의 관례).
9-1. 분모 유도 — 별 그래프 (Deriving the Denominator: The Star Graph)
| 역할 | 중개하는 쌍 | ||
|---|---|---|---|
| 허브 (1명) | 잎끼리의 모든 쌍 — 잎 두 명은 반드시 허브를 거친다 | 0 | |
| 잎 (6명) | 없음 — 잎을 거쳐 갈 일이 없다 | 0 | 15 |
일반화하면 허브의 이고 잎이 명이므로
9-2. 우리 학급의 값 (The Value for Our Class)
(S4)다. 일곱 항 전부 전개한다.
| S1 | S2 | S3 | S4 | S5 | S6 | S7 | 합 | |
|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 8 | 9 | 8 | 0 | 0 | 25 | |
| 9 | 9 | 1 | 0 | 1 | 9 | 9 | 38 |
세 중심화를 나란히 놓으면 놀랍다 — 같은 학급, 같은 데이터다.
| 중심화 | 분자 | 분모 | 값 | 읽는 법 |
|---|---|---|---|---|
| 연결정도 | 5 | 30 | 0.1667 | 인기는 매우 고르게 퍼져 있다 |
| 근접 | 10/11 | 30/11 | 0.3333 | 접근성은 조금 쏠려 있다 |
| 매개 | 38 | 90 | 0.4222 | 중개 권력은 크게 쏠려 있다 |
0.17 → 0.33 → 0.42로 계속 올라간다. "우리 반은 평등한가?"라는 질문에 친구 수로 보면 매우 평등하고, 정보 통제력으로 보면 상당히 불평등하다는 답이다. 겉으로는 아무도 특별히 인기 있지 않은데, 정보의 흐름은 세 명(S3·S4·S5)이 완전히 장악하고 있다. 이것이 연결정도만 봐서는 절대 보이지 않는 학급의 실상이다.
9-3. 네 그래프의 눈금 (A Scale from Four Graphs)
| 그래프 | 매개 중심화 | 해석 | ||
|---|---|---|---|---|
| 완전 그래프 | 0 0 0 0 0 0 0 | 0 | 0 | 전원이 직접 연결 — 중개할 것이 없다 |
| 고리(ring) | 3 3 3 3 3 3 3 | 0 | 0 | 전원이 똑같이 중개 — 완벽히 평등 |
| 우리 학급 | 0 0 8 9 8 0 0 | 38 | 0.4222 | 세 명이 중개 독점 |
| 별(star) | 15 0 0 0 0 0 0 | 90 | 1 | 한 명이 모든 중개 독점 |
단원 2-1의 함정이 여기서도 반복된다. 완전 그래프와 고리 그래프가 둘 다 중심화 0인데, 는 전자가 전부 0, 후자가 전부 3이다. 중심화가 0이라는 말은 "모두가 똑같다"일 뿐 "모두가 0이다"가 아니다. 중심화 값 하나만 보고하면 안 된다 — 개인 값의 분포(최댓값·0인 사람 수)를 반드시 함께 볼 것.
10. R 검증과 함정 (R Verification & Traps)
library(igraph)
nm <- paste0("S", 1:7)
U <- matrix(0, 7, 7, dimnames = list(nm, nm))
el <- rbind(c("S1","S2"), c("S1","S3"), c("S2","S3"), c("S3","S4"),
c("S4","S5"), c("S5","S6"), c("S5","S7"), c("S6","S7"))
for (i in 1:nrow(el)) { U[el[i,1], el[i,2]] <- 1; U[el[i,2], el[i,1]] <- 1 }
g <- graph_from_adjacency_matrix(U, mode = "undirected")
# ① 매개 중심성
igraph::betweenness(g) # 0 0 8 9 8 0 0 ← 손 계산과 일치 ✓
igraph::betweenness(g, normalized = TRUE) # 0 0 .5333 .6 .5333 0 0
igraph::betweenness(g) / 15 # 같은 값 (분모 (n-1)(n-2)/2 = 15)
# ② 최단경로가 정말 전부 유일한가 (§3)
sna::geodist(U)$counts # 전부 1 — 모든 쌍의 최단경로가 하나뿐 ✓
all_shortest_paths(g, from = "S1", to = "S7")$res # 경로 1개: S1 S3 S4 S5 S7
# ③ §7의 검산 — 거리행렬에서 곧바로
D <- distances(g)
sum(D[upper.tri(D)]) # 46 거리 총합
sum(D[upper.tri(D)]) - choose(7, 2) # 25 = sum(betweenness) ✓
sum(igraph::betweenness(g)) # 25
# ④ 매개 중심화
b <- igraph::betweenness(g)
sum(max(b) - b) # 38
(7-1)^2 * (7-2) / 2 # 90
sum(max(b) - b) / 90 # 0.4222222
centr_betw(g)$centralization # 0.4222222 ✓ 일치
centr_betw(g)$theoretical_max # 90 ✓ 분모 확인
# ⑤ 절단점과의 관계 (§6)
names(articulation_points(g)) # "S5" "S4" "S3" = b > 0 인 학생과 정확히 일치
igraph::components(delete_vertices(g, "S4"))$csize # 3 3 → 3*3 = 9 = b_S4 ✓
igraph::components(delete_vertices(g, "S3"))$csize # 2 4 → 2*4 = 8 = b_S3 ✓
igraph::components(delete_vertices(g, "S5"))$csize # 4 2 → 4*2 = 8 = b_S5 ✓
함정 ① — sna::betweenness(rescale=TRUE)는 igraph의 정규화와 다른 뜻이다.
sna::betweenness(U, gmode = "graph") # 0 0 8 9 8 0 0 ← 원값은 같다 ✓
sna::betweenness(U, gmode = "graph", rescale = TRUE) # 0 0 .32 .36 .32 0 0
igraph::betweenness(g, normalized = TRUE) # 0 0 .5333 .6 .5333 0 0
| 함수 | 무엇으로 나누는가 | S4의 값 | 뜻 |
|---|---|---|---|
igraph normalized=TRUE | 가능한 최댓값 | "S4는 이론상 최대의 60%를 중개한다" | |
sna rescale=TRUE | 모두의 합 | "학급 전체 중개량의 36%가 S4 몫이다" |
둘 다 유용하지만 절대 섞어 쓰면 안 된다.
rescale=TRUE는 합이 항상 1이 되므로(0.32+0.36+0.32 = 1.0)
"점유율"로 읽어야 하고, 학급 간 비교에는 igraph 쪽이 맞다.
보고할 때 어느 분모를 썼는지 반드시 밝힐 것.
함정 ② — sna가 betweenness도 가린다.
단원 1-7의 components·degree, 단원 2-2의 closeness에 이어 네 번째다.
library(igraph); library(sna)
environmentName(environment(betweenness)) # "sna" ← sna 것이 먼저 잡힌다
environmentName(environment(closeness)) # "sna"
betweenness(g) # 에러 또는 엉뚱한 결과
igraph::betweenness(g) # 이렇게 써야 안전 ✓
습관으로 굳힐 것: 두 패키지를 함께 불러왔다면
중심성 함수는 예외 없이 igraph:: 또는 sna::를 붙여 쓴다.
참고 — 방향 네트워크에서는 분모가 두 배다. 방향이 있으면 와 가 다른 쌍이므로 가능한 쌍이 개(2로 안 나눈다)가 된다. 단원 2-6에서 Knoke 데이터(방향 네트워크)를 다룰 때 이 차이가 실제로 나타난다.
11. 교실 적용 (Classroom Application)
① 매개 중심성은 "전학 가면 위험한 학생"을 짚어 준다. 학기 중 전학·장기 결석·모둠 재편이 예정되어 있다면 연결정도가 아니라 매개 중심성을 봐야 한다. 우리 예제에서 인기 1위 S3이 빠져도 학급은 2·4로 갈라지지만, 친구가 가장 적은 S4가 빠지면 3·3으로 정확히 두 동강 난다. 담임의 눈에 가장 안 띄는 학생이 구조적으로 가장 중요할 수 있다.
② 매개 중심성이 0인 학생이 많은 것은 정상이다 — 나쁜 신호가 아니다. 우리 학급도 7명 중 4명이 0이다. 은 "친구가 없다"가 아니라 "내 친구들끼리도 이미 서로 안다"는 뜻이다(§5-2). 오히려 촘촘한 모둠 안에 잘 소속되어 있다는 긍정적 신호일 수 있다. 을 소외 지표로 오해하지 말 것 — 소외는 연결정도와 근접 중심성으로 본다.
③ 매개 중심성이 높은 학생은 부담을 진다. S4는 왼쪽·오른쪽 모둠 사이의 모든 소통을 혼자 감당한다. 현실에서 이런 학생은 양쪽에서 정보 전달을 요구받고, 양쪽 모둠 갈등 상황에서 중간에 끼어 곤란해지기 쉽다. "중요한 위치 = 좋은 위치"가 아니다. 중개 부담이 한 명에게 쏠려 있으면 다리를 하나 더 놓아 주는 것이 개입 방향이다 (연습 1에서 그 효과를 계산한다).
④ 학급 진단에는 세 지표를 함께 본다. §8의 표가 진단표의 표준 형태다. 지표 하나로는 늘 반쪽이다:
- 낮음 + 낮음 + → 진짜 주변부 학생. 개입 1순위
- 낮음 + 높음 + 높음 → 다리 학생(S4형). 부담 점검
- 높음 + → 모둠 안의 인기 학생. 모둠 밖과는 단절
- 높음 + 높음 → 진짜 학급 리더(S3·S5형)
⑤ 매개 중심화 0.42는 "중개 권력의 집중"을 경고한다. 연결정도 중심화 0.17만 보고 "우리 반은 평등하다"고 결론지었다면 틀렸다. 친구 관계는 고르게 퍼져 있는데 정보의 통로는 세 명이 쥐고 있다. 소문의 확산, 모둠 간 오해, 담임 전달 사항의 왜곡이 모두 이 세 명을 통해 일어난다는 뜻이다. 학급 전체 지표는 반드시 세 종류를 다 계산해 비교해야 한다.
12. 연습문제 (Exercises)
문제 1. 세 단원 연속으로 다룬 S4–S6 관계 추가를 매개 중심성으로 본다. ① 이 변화로 최단경로가 두 개가 되는 쌍이 생긴다. 어떤 쌍인지 찾고 두 경로를 모두 쓰시오. ② S5의 매개 중심성을 15개 쌍 전부 전개해 구하시오 (분수 가 실제로 필요하다). ③ 일곱 명의 를 모두 구하고, 이전 과 비교하시오. S5에게 무슨 일이 일어났는가? ④ 매개 중심화를 구하시오. 단원 2-1 연습 1에서 연결정도 중심화는 0.1667에서 0.1로 내려갔다. 매개 중심화는 어떻게 되는가? 왜 그런가?
문제 2. 허브 시나리오(S3–S5, S3–S6, S3–S7 추가)를 매개 중심성으로 본다. ① S3의 매개 중심성을 구하시오(15개 쌍 전부). ② S4의 매개 중심성은 얼마인가? 15개 쌍을 전부 확인하시오. ③ 단원 2-1 연습 2에서 S4의 연결정도는 2로 그대로였고, 단원 2-2 연습 2에서 근접 중심성도 0.6으로 그대로였다. 매개 중심성은 어떻게 되었는가? 세 지표 중 무엇이 S4의 처지 변화를 가장 정확히 잡아냈는가? ④ 매개 중심화를 구하시오.
먼저 스스로 풀고 §13 해설과 맞춰 볼 것.
13. 연습문제 해설과 답 (Solutions)
13-1. 문제 1 — 다리를 하나 더 놓으면 누가 권력을 잃는가 (Who Loses Power)
바뀐 인접행렬(빨간 두 칸):
① 최단경로가 두 개가 되는 쌍. S4–S5–S6–S4가 삼각형을 이루므로 S4에서 오른쪽으로 가는 길이 둘로 갈라진다. S7에 닿는 쌍에서 이 갈림이 살아남는다:
| 쌍 | 최단경로 1 | 최단경로 2 | ||
|---|---|---|---|---|
| S4–S7 | 2 | 2 | S4-S5-S7 | S4-S6-S7 |
| S3–S7 | 3 | 2 | S3-S4-S5-S7 | S3-S4-S6-S7 |
| S1–S7 | 4 | 2 | S1-S3-S4-S5-S7 | S1-S3-S4-S6-S7 |
| S2–S7 | 4 | 2 | S2-S3-S4-S5-S7 | S2-S3-S4-S6-S7 |
답 ① S4–S7, S3–S7, S1–S7, S2–S7의 네 쌍에서 최단경로가 2개다. 공통점은 도착점이 모두 S7이라는 것 — S7에 가려면 S5를 거치거나 S6을 거치거나, 어느 쪽이든 같은 걸음 수이기 때문이다. (S6에 가는 쌍은 왜 안 갈라지는가? S4-S6이 직접 연결이라 유일하다.)
② S5의 15개 쌍 전부.
| # | 쌍 | 최단경로 전부 | 기여 | 왜 그 값인가 | ||
|---|---|---|---|---|---|---|
| 1 | S1–S2 | S1-S2 | 1 | 0 | 0 | 직접 연결 |
| 2 | S1–S3 | S1-S3 | 1 | 0 | 0 | 직접 연결 |
| 3 | S1–S4 | S1-S3-S4 | 1 | 0 | 0 | S3만 거친다 |
| 4 | S1–S6 | S1-S3-S4-S6 | 1 | 0 | 0 | 이제 S4에서 S6으로 직행 — S5 불필요 |
| 5 | S1–S7 | S1-S3-S4-S5-S7 | S1-S3-S4-S6-S7 | 2 | 1 | 둘 중 하나만 S5를 지난다 | |
| 6 | S2–S3 | S2-S3 | 1 | 0 | 0 | 직접 연결 |
| 7 | S2–S4 | S2-S3-S4 | 1 | 0 | 0 | S3만 거친다 |
| 8 | S2–S6 | S2-S3-S4-S6 | 1 | 0 | 0 | S4→S6 직행 — S5 불필요 |
| 9 | S2–S7 | S2-S3-S4-S5-S7 | S2-S3-S4-S6-S7 | 2 | 1 | 절반만 S5를 지난다 | |
| 10 | S3–S4 | S3-S4 | 1 | 0 | 0 | 직접 연결 |
| 11 | S3–S6 | S3-S4-S6 | 1 | 0 | 0 | S4→S6 직행 — S5 불필요 |
| 12 | S3–S7 | S3-S4-S5-S7 | S3-S4-S6-S7 | 2 | 1 | 절반만 S5를 지난다 | |
| 13 | S4–S6 | S4-S6 | 1 | 0 | 0 | 새로 생긴 직접 연결 |
| 14 | S4–S7 | S4-S5-S7 | S4-S6-S7 | 2 | 1 | 절반만 S5를 지난다 | |
| 15 | S6–S7 | S6-S7 | 1 | 0 | 0 | 직접 연결 |
| 합계 | 2 | |||||
③ 일곱 명 전부. S6은 S5와 완전히 대칭이므로 같은 논리로 2다.
| 학생 | 이전 | 이후 | 변화 | 이후 | 이유 |
|---|---|---|---|---|---|
| S1 | 0 | 0 | — | 0 | 여전히 삼각형 안쪽 |
| S2 | 0 | 0 | — | 0 | 여전히 삼각형 안쪽 |
| S3 | 8 | 8 | — | 0.5333 | {S1,S2}가 바깥으로 나가는 유일한 문 — 그대로 |
| S4 | 9 | 9 | — | 0.6000 | 여전히 절단점. 새 다리도 S4가 쥐고 있다 |
| S5 | 8 | 2 | −6 | 0.1333 | 독점 상실 — S6이 우회로가 되었다 |
| S6 | 0 | 2 | +2 | 0.1333 | 새 다리를 얻어 중개자로 데뷔 |
| S7 | 0 | 0 | — | 0 | 여전히 삼각형 안쪽 |
| 합 | 25 | 21 | −4 | ||
답 ③ . S5에게 일어난 일: 8에서 2로 폭락(−75%)했다. S5는 관계를 하나도 잃지 않았는데(연결정도 3 그대로) 중개 권력만 사라졌다. 이전에는 오른쪽 모둠으로 들어가는 문이 S5뿐이었지만, 이제 S6이라는 대체 통로가 생겨 네 쌍에서 권력을 반씩 나눠 갖게 되었다.
그리고 S5는 절단점에서도 탈락했다.
articulation_points()가 이제 S4, S3 둘만 돌려준다.
S5를 지워도 S4-S6-S7이 남아 학급이 갈라지지 않는다.
반면 S6은 이면서도 절단점이 아니다 —
§6에서 예고한 "이지만 절단점은 아닌" 경우가 바로 이것이다.
④ 매개 중심화. 그대로다.
| S1 | S2 | S3 | S4 | S5 | S6 | S7 | 합 | |
|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 8 | 9 | 2 | 2 | 0 | 21 | |
| 9 | 9 | 1 | 0 | 7 | 7 | 9 | 42 |
답 ④ 매개 중심화는 0.4222에서 0.4667로 올라갔다 — 같은 개입에서 연결정도 중심화는 0.1667 → 0.1로 내려갔는데 정반대다.
| 지표 | 이전 | 이후 | 방향 | 읽는 법 |
|---|---|---|---|---|
| 밀도 | 0.3810 | 0.4286 | ↑ | 관계가 늘었다 |
| 연결정도 중심화 | 0.1667 | 0.1000 | ↓ | 인기가 더 고르게 |
| 근접 중심성 (S4) | 0.6 | 0.6667 | ↑ | 전체가 더 가까워졌다 |
| 매개 중심화 | 0.4222 | 0.4667 | ↑ | 중개 권력은 더 쏠렸다 |
왜 그런가. 중심화는 1등과의 격차의 합이다. 1등 S4는 9로 그대로인데 2등이던 S5가 8에서 2로 떨어졌으니, S5와 1등의 격차가 로 6이나 벌어졌다. S6이 0에서 2로 올라 격차를 2 줄였지만(9→7), 순손실은 다. 2등을 끌어내리는 것도 "1등에게 쏠림"으로 계산된다는 뜻이다.
13-2. 문제 2 — 허브가 생기면 다리 학생은 (When a Hub Appears)
바뀐 인접행렬(S3의 행·열에 세 칸씩):
① S3의 15개 쌍. S3이 전원과 직접 연결되므로 어떤 쌍이든 S3을 거치면 2걸음이다.
| # | 쌍 | 최단경로 전부 | 기여 | 왜 그 값인가 | ||
|---|---|---|---|---|---|---|
| 1 | S1–S2 | S1-S2 | 1 | 0 | 0 | 직접 연결 |
| 2 | S1–S4 | S1-S3-S4 | 1 | 1 | 1 | S1이 바깥으로 나가는 유일한 문 |
| 3 | S1–S5 | S1-S3-S5 | 1 | 1 | 1 | 같은 이유 |
| 4 | S1–S6 | S1-S3-S6 | 1 | 1 | 1 | 같은 이유 |
| 5 | S1–S7 | S1-S3-S7 | 1 | 1 | 1 | 같은 이유 |
| 6 | S2–S4 | S2-S3-S4 | 1 | 1 | 1 | S2도 마찬가지 |
| 7 | S2–S5 | S2-S3-S5 | 1 | 1 | 1 | 같은 이유 |
| 8 | S2–S6 | S2-S3-S6 | 1 | 1 | 1 | 같은 이유 |
| 9 | S2–S7 | S2-S3-S7 | 1 | 1 | 1 | 같은 이유 |
| 10 | S4–S5 | S4-S5 | 1 | 0 | 0 | 직접 연결 |
| 11 | S4–S6 | S4-S5-S6 | S4-S3-S6 | 2 | 1 | S5 경유와 S3 경유가 동률 | |
| 12 | S4–S7 | S4-S5-S7 | S4-S3-S7 | 2 | 1 | 같은 이유 | |
| 13 | S5–S6 | S5-S6 | 1 | 0 | 0 | 직접 연결 |
| 14 | S5–S7 | S5-S7 | 1 | 0 | 0 | 직접 연결 |
| 15 | S6–S7 | S6-S7 | 1 | 0 | 0 | 직접 연결 |
| 합계 | 9 | |||||
② S4의 15개 쌍 — 전부 0이다.
| # | 쌍 | 최단경로 | 기여 | # | 쌍 | 최단경로 | 기여 |
|---|---|---|---|---|---|---|---|
| 1 | S1–S2 | S1-S2 | 0 | 9 | S2–S7 | S2-S3-S7 | 0 |
| 2 | S1–S3 | S1-S3 | 0 | 10 | S3–S5 | S3-S5 | 0 |
| 3 | S1–S5 | S1-S3-S5 | 0 | 11 | S3–S6 | S3-S6 | 0 |
| 4 | S1–S6 | S1-S3-S6 | 0 | 12 | S3–S7 | S3-S7 | 0 |
| 5 | S1–S7 | S1-S3-S7 | 0 | 13 | S5–S6 | S5-S6 | 0 |
| 6 | S2–S3 | S2-S3 | 0 | 14 | S5–S7 | S5-S7 | 0 |
| 7 | S2–S5 | S2-S3-S5 | 0 | 15 | S6–S7 | S6-S7 | 0 |
| 8 | S2–S6 | S2-S3-S6 | 0 | 합 0 | |||
답 ①② , .
S4의 매개 중심성이 9에서 0으로 완전히 사라졌다. 15개 쌍 중 단 하나도 S4를 지나지 않는다. 이유는 명확하다 — S4의 이웃은 S3과 S5 둘뿐인데, 이제 S3과 S5가 직접 연결되어 있다. S1의 사례(§5-2)와 정확히 같은 구조다: 내 이웃들이 서로 아는 사이가 되면 나는 중개할 것이 없어진다. S4는 1위(9)에서 꼴찌(0)가 되었다.
답 ③ 매개 중심성이 S4의 처지 변화를 압도적으로 정확하게 잡아냈다.
| 지표 | 이전 값 | 이후 값 | 값 변화 | 순위 변화 | 진단 |
|---|---|---|---|---|---|
| 연결정도 | 0.3333 | 0.3333 | 0% | 최하위 → 최하위 | 아무것도 못 잡음 |
| 근접 | 0.6000 | 0.6000 | 0% | 1위 → 공동 최하위 | 순위로만 잡음 |
| 매개 | 0.6000 | 0.0000 | −100% | 1위 → 꼴찌 | 값으로 정확히 잡음 |
세 지표가 같은 사건을 세 가지로 보고한다. 연결정도는 "변화 없음"이라 하고, 근접은 "값은 같은데 순위가 떨어졌다"고 하고, 매개는 "가진 것을 전부 잃었다"고 한다. S4가 실제로 잃은 것은 "없으면 안 되는 자리"였으므로 매개의 진단이 맞다. 구조적 역할의 변화를 재려면 매개 중심성을 봐야 한다.
④ 매개 중심화. (S3)다.
| S1 | S2 | S3 | S4 | S5 | S6 | S7 | 합 | |
|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 9 | 0 | 1 | 0 | 0 | 10 | |
| 9 | 9 | 0 | 9 | 8 | 9 | 9 | 53 |
답 ④ 매개 중심화 0.4222 → 0.5889. 세 중심화를 모두 모으면:
| 중심화 | 원래 | 허브 시나리오 | 배율 |
|---|---|---|---|
| 연결정도 | 0.1667 | 0.6667 | ×4.0 |
| 근접 | 0.3333 | 0.7761 | ×2.33 |
| 매개 | 0.4222 | 0.5889 | ×1.39 |
세 중심화가 모두 올라갔다 — 이번에는 모든 지표가 같은 방향을 가리킨다.
그리고 articulation_points()는 이제 S3 하나만 돌려준다.
원래 셋(S3·S4·S5)이던 절단점이 한 명으로 줄었다 —
학급 전체가 S3 한 명에게 완전히 의존하게 되었다는 뜻이다.
배율에 속지 말 것. 연결정도의 배율(×4.0)이 가장 커 보이지만 이는 원래 값이 0.1667로 매우 낮았던 탓이다. 절대값으로 보면 근접 0.7761이 가장 높고, 그다음이 연결정도 0.6667, 매개 0.5889다. 셋 중 어느 것도 "이 학급의 중심화"를 혼자 대표하지 못한다 — 항상 어떤 중심성 기준인지 밝히고 세 개를 함께 보고할 것(단원 2-2 §7).
# 문제 1 — S4-S6 추가
U1 <- U; U1["S4","S6"] <- 1; U1["S6","S4"] <- 1
g1 <- graph_from_adjacency_matrix(U1, mode = "undirected")
igraph::betweenness(g1) # 0 0 8 9 2 2 0 ← S5가 8에서 2로
round(igraph::betweenness(g1)/15, 4) # 0 0 .5333 .6 .1333 .1333 0
sum(max(igraph::betweenness(g1)) - igraph::betweenness(g1)) # 42
centr_betw(g1)$centralization # 0.4666667 ← 올라갔다
names(articulation_points(g1)) # "S4" "S3" ← S5가 빠졌다
# 최단경로가 2개인 쌍 확인
length(all_shortest_paths(g1, "S4", "S7")$res) # 2
length(all_shortest_paths(g1, "S4", "S6")$res) # 1
sna::geodist(U1)$counts # S7 열/행에 2가 나타난다
# 문제 2 — S3를 허브로
U2 <- U
for (v in c("S5","S6","S7")) { U2["S3",v] <- 1; U2[v,"S3"] <- 1 }
g2 <- graph_from_adjacency_matrix(U2, mode = "undirected")
igraph::betweenness(g2) # 0 0 9 0 1 0 0 ← S4가 0으로
round(igraph::betweenness(g2)/15, 4) # 0 0 .6 0 .0667 0 0
centr_betw(g2)$centralization # 0.5888889
names(articulation_points(g2)) # "S3" ← 절단점이 하나만 남았다
# S4가 정말 아무 경로에도 없는지
all_shortest_paths(g2, "S1", "S5")$res # S1 S3 S5 ← S4를 안 지난다
오늘의 요약. 매개 중심성 — 최단경로 위에서 받는 통행료다. 우리 학급은 21개 쌍의 최단경로가 전부 유일해서 계산이 깨끗하다: , . 절단점의 매개 중심성 = 갈라지는 두 조각 크기의 곱이라 S4는 , S3·S5는 이다. 검산: ✓. 매개 중심화 로 연결정도(0.1667)·근접(0.3333)보다 훨씬 높다 — 친구 관계는 평등한데 정보 통로는 세 명이 장악하고 있다는 뜻이다.
다음 단원 — 2-4: 고유벡터 중심성과 페이지랭크.
지금까지의 세 지표는 모두 "몇 명"을 세었다.
네 번째 지표는 질문을 바꾼다 — "내 친구가 얼마나 중요한가".
중요한 친구를 둔 학생이 중요해지는 순환 정의를 고윳값 방정식
로 푼다.
단원 1-2의 와 appendix 스크립트의 고윳값이 여기서 만난다.
· 이 문서: notes/12_단원2-3_매개_중심성_최단경로_통행료.html