단원 2-4Eigenvector Centrality and PageRank
고유벡터 중심성과 페이지랭크
- 오늘의 질문 (Today's Question)
- 순환 정의를 방정식으로 (Turning a Circular Definition into an Equation)
- 손 계산 ① 거듭제곱법 (Hand Calculation: Power Iteration)
- 손 계산 ② 대칭성으로 정확한 답 구하기 (Exact Solution via Symmetry)
- 값 읽기 — 연결정도가 같은데 점수가 다르다 (Reading the Values)
- 은 무엇을 재는가 (What the Leading Eigenvalue Measures)
- 고유벡터 중심성이 무너지는 곳 (Where Eigenvector Centrality Breaks)
- 페이지랭크 — 표를 나누어 준다 (PageRank: Splitting the Vote)
- 손 계산 ③ 페이지랭크 첫 걸음 (Hand Calculation: PageRank Step 1)
- S4가 페이지랭크 꼴찌인 이유 (Why S4 Ranks Last)
- 무방향 네트워크에서 페이지랭크 ≈ 연결정도 (On Undirected Graphs, PageRank ≈ Degree)
- 중심화 — 그리고 별이 1이 아닌 이유 (Centralization: Why the Star Is Not 1)
- R로 검증 (Verification in R)
- 다섯 지표 종합과 교실 적용 (All Five Measures; Classroom Application)
- 연습문제 (Exercises)
- 해설과 답 (Solutions)
1. 오늘의 질문 (Today's Question)
지금까지 세 지표는 모두 개수를 셌다.
| 단원 | 지표 | 무엇을 세었나 |
|---|---|---|
| 2-1 | 연결정도 | 내 친구가 몇 명인가 |
| 2-2 | 근접 | 모두까지 걸음 수가 몇 걸음인가 |
| 2-3 | 매개 | 최단경로가 나를 몇 번 지나는가 |
세 지표 모두 친구를 한 명 한 명 똑같이 취급한다. S1의 친구 두 명(S2, S3)과 S4의 친구 두 명(S3, S5)은 연결정도로 보면 똑같이 "2명"이다.
그런데 교실에서 우리가 실제로 하는 판단은 다르다. "쟤는 친구가 둘밖에 없지만, 그 둘이 반에서 제일 영향력 있는 애들이야." 이 문장을 숫자로 만들려면 질문을 바꿔야 한다.
오늘의 질문. 친구의 수가 아니라 친구의 중요도를 더하면 어떻게 되는가? 그런데 "친구의 중요도"를 알려면 그 친구의 친구의 중요도를 알아야 하고 … 이 순환을 어떻게 끊는가?
오늘 배울 두 지표는 이 순환 문제를 서로 다른 방식으로 푼다. 그리고 같은 학생 S4에게 정반대 판정을 내린다.
2. 순환 정의를 방정식으로 (Turning a Circular Definition into an Equation)
2-1. 말로 쓴 정의 (Definition in Words)
"중요한 친구를 둔 학생이 중요하다." 이 문장을 그대로 식으로 옮기면
오른쪽은 "의 이웃들의 점수를 전부 더한 값"이다. 가 0이면 그 항은 사라지므로, 결국 이웃의 점수만 더해진다. (비례)를 등호로 바꾸려면 비례상수가 필요하다. 그 상수를 라 쓰면
이 식을 개 전부 모아 한 줄로 쓰면 고윳값 방정식이 된다.
순환이 끊긴 지점. "를 알아야 를 안다"는 순환이, "를 만족하는 를 찾아라"는 풀 수 있는 문제로 바뀌었다. 순환 정의는 모순이 아니라 방정식이었던 것이다.
2-2. 식의 각 부분이 하는 일 (What Each Part of the Equation Does)
| 부분 | 읽는 법 | 왜 필요한가 |
|---|---|---|
| 와 가 친구면 1, 아니면 0 | 친구가 아닌 학생의 점수는 0을 곱해 자동으로 빠진다 | |
| 친구 의 점수 | 여기가 핵심 — 1이 아니라 를 더한다. 자리에 전부 1을 넣으면 그냥 연결정도가 된다 | |
| 이웃 전부에 대해 합 | 친구가 많을수록 유리한 성질은 그대로 남는다 | |
| 전체를 줄이는 비율 | 이게 없으면 더할수록 점수가 무한히 커진다. 가 점수의 인플레이션율 |
2-3. 와 는 여러 개다 — 어느 것을 쓰는가 (Many Eigenpairs: Which One to Use)
행렬은 고윳값을 7개 가진다. 우리 의 7개는 (§13에서 검증)
이 중 가장 큰 것 을 쓴다. 이유는 두 가지다.
| 이유 | 내용 |
|---|---|
| 부호 | 중심성 점수는 음수이면 해석이 불가능하다("영향력이 −0.3"?). 페론–프로베니우스 정리(Perron–Frobenius): 연결된 네트워크에서 가장 큰 고윳값에 딸린 고유벡터만 성분이 전부 양수다. 나머지 6개는 반드시 음수 성분을 포함한다 |
| 유일성 | 같은 정리에 의해 은 중복되지 않는다. 위 목록에서 은 3개나 겹치지만 은 하나뿐이다 → 답이 하나로 정해진다 |
연결되어 있어야 한다. 페론–프로베니우스 정리는 네트워크가 연결되어 있을 때 성립한다.
단원 2-2 §9의 고립 학생 S8이 있으면 여기서도 문제가 생긴다 — 다만 근접 중심성처럼
전원 0이 되는 것이 아니라, 큰 조각만 점수를 받고 작은 조각은 전부 0이 되는 방식으로 망가진다.
역시 components()를 먼저 확인해야 한다.
2-4. 크기 맞추기 — 정규화 (Normalization)
의 해는 상수배만큼 자유롭다. 가 답이면 도, 도 답이다. 그래서 크기를 정하는 약속이 필요한데, 패키지마다 약속이 다르다(§13의 함정). 이 노트는 igraph 방식인 최댓값 = 1을 쓴다.
3. 손 계산 ① 거듭제곱법 (Hand Calculation: Power Iteration)
고윳값 방정식을 푸는 가장 손쉬운 방법은 거듭제곱법이다. 아무 벡터에서 출발해 를 계속 곱하면 저절로 답에 가까워진다. 출발점은 "모두 똑같이 1점"으로 잡는다.
3-1. 첫 걸음 — 0인 항까지 전부 (First Step, Every Term Included)
. 의 1행은 이다.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 합 | |
|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | — | |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | — | |
| 곱 | 2 |
일곱 명 모두 같은 방식으로 계산하면, 이 전부 1이므로 합은 1의 개수 즉 행합이 된다.
첫 걸음은 연결정도다. 에 모두-1 벡터를 곱하면 행합, 곧 연결정도(단원 1-4)다. 즉 거듭제곱법은 연결정도에서 출발해 점점 고쳐 나가는 과정이다. 연결정도는 고유벡터 중심성의 0번째 근사인 셈이다.
3-2. 둘째 걸음 — 세 명 전개 (Second Step: Three Students Expanded)
이제 이 전부 1이 아니므로 친구가 누구냐가 처음으로 반영된다.
| 전개 (0인 항 포함) | 왜 그 값인가 | |||
|---|---|---|---|---|
| S1 | 5 | 친구 S2(2점) + S3(3점) | ||
| S3 | 6 | 친구 셋이 모두 2점 — 수는 많지만 질이 낮다 | ||
| S4 | 6 | 친구는 둘뿐인데 둘 다 3점 — S3를 따라잡았다 |
단 두 걸음 만에 S4가 S3를 따라잡았다. 연결정도로는 S4(2)가 S3(3)보다 낮았지만, 에서는 둘 다 6점이다. 친구 수의 열세를 친구 질로 메운 것이다. 계속 곱하면 어떻게 되는지 보자.
3-3. 열 걸음 전부 (All Ten Iterations)
각 줄 오른쪽은 최댓값으로 나눈 값(=그 시점의 근사)이다.
| S1 | S2 | S3 | S4 | S5 | S6 | S7 | 합 | 합의 비 | S4 (최대=1) | S1 (최대=1) | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 7 | — | 1.0000 | 1.0000 |
| 1 | 2 | 2 | 3 | 2 | 3 | 2 | 2 | 16 | 2.2857 | 0.6667 | 0.6667 |
| 2 | 5 | 5 | 6 | 6 | 6 | 5 | 5 | 38 | 2.3750 | 1.0000 | 0.8333 |
| 3 | 11 | 11 | 16 | 12 | 16 | 11 | 11 | 88 | 2.3158 | 0.7500 | 0.6875 |
| 4 | 27 | 27 | 34 | 32 | 34 | 27 | 27 | 208 | 2.3636 | 0.9412 | 0.7941 |
| 5 | 61 | 61 | 86 | 68 | 86 | 61 | 61 | 484 | 2.3269 | 0.7907 | 0.7093 |
| 6 | 147 | 147 | 190 | 172 | 190 | 147 | 147 | 1140 | 2.3554 | 0.9053 | 0.7737 |
| 7 | 337 | 337 | 466 | 380 | 466 | 337 | 337 | 2660 | 2.3333 | 0.8155 | 0.7232 |
| 8 | 803 | 803 | 1054 | 932 | 1054 | 803 | 803 | 6252 | 2.3504 | 0.8843 | 0.7619 |
| 9 | 1857 | 1857 | 2538 | 2108 | 2538 | 1857 | 1857 | 14612 | 2.3372 | 0.8306 | 0.7317 |
| 10 | 4395 | 4395 | 5822 | 5076 | 5822 | 4395 | 4395 | 34300 | 2.3474 | 0.8719 | 0.7549 |
| 정확한 극한값 (§4) | — | 2.342923 | 0.853635 | 0.744644 | |||||||
두 가지가 동시에 수렴한다.
| 수렴하는 것 | 무엇으로 | 의미 |
|---|---|---|
| 비율 벡터 | 고유벡터 — 중심성 점수 | |
| 합의 비 | 고윳값 — 점수의 인플레이션율 |
3-4. 왜 위아래로 흔들리며 수렴하는가 (Why It Oscillates as It Converges)
S4 열을 보면 로 정답 을 번갈아 넘나든다. 곧장 다가가지 않는다.
이유는 다른 고윳값들에 있다. 출발 벡터 을 7개 고유벡터로 분해하면, 계수가 0이 아닌 것은 셋뿐이다(§13에서 검증).
와 짜리는 계수가 정확히 0이다 — 이 네트워크의 좌우 대칭(§4) 때문에 모두-1 벡터와 직교하기 때문이다. 남은 셋 중 다음으로 큰 것이 음수 이라서 오차의 부호가 매 걸음 뒤집힌다. 오차가 줄어드는 속도는
즉 한 걸음마다 오차가 약 77%로만 줄어든다. 10걸음을 가도 로 아직 완전히 도착하지 못한 이유다. 손으로 정확한 값을 얻으려면 §4처럼 방정식을 직접 풀어야 한다.
4. 손 계산 ② 대칭성으로 정확한 답 구하기 (Exact Solution via Symmetry)
4-1. 이 네트워크는 좌우 대칭이다 (The Network Is Left-Right Symmetric)
를 자세히 보면 왼쪽 삼각형 {S1,S2,S3}과 오른쪽 삼각형 {S5,S6,S7}이 거울상이고, S4가 한가운데 있다. 다음과 같이 이름을 바꿔도 네트워크가 그대로다.
게다가 왼쪽 삼각형 안에서 S1과 S2도 서로 바꿔도 똑같다(둘 다 S3와 서로에게만 연결). 답이 유일하므로(§2-3), 점수도 이 대칭을 따라야 한다. 미지수가 7개에서 3개로 줄어든다.
4-2. 세 개의 방정식 — 0인 항까지 전부 (Three Equations, Every Term Included)
의 1행, 3행, 4행만 쓰면 충분하다(나머지는 대칭으로 같은 식).
| 행 | =1 | 2 | 3 | 4 | 5 | 6 | 7 | 합 | |
|---|---|---|---|---|---|---|---|---|---|
4-3. 세 식을 하나로 — 의 3차방정식 (Combining Into a Cubic)
| 단계 | 식 | 어디서 왔나 |
|---|---|---|
| 1 | (i)에서 를 오른쪽으로 넘김 | |
| 2 | (iii)에 1단계 대입 | |
| 3 | (ii)에 1·2단계 대입 | |
| 4 | 양변을 로 나눔 () | |
| 5 | 양변에 를 곱하고 전개 | |
| 6 | 정리 |
이 3차방정식의 세 근이 바로 계수가 0이 아니었던 그 세 고윳값이다(§3-4).
확인. 을 넣으면
✓
(§13에서 polyroot()로 검증)
4-4. 점수 세 개 — 정확한 꼴 (Three Scores in Exact Form)
로 두면(최댓값을 1로 맞추는 것과 같다) 1·2단계에서 곧바로
| 학생 | 기호 | 정확한 꼴 | 값 | 순위 |
|---|---|---|---|---|
| S3, S5 | 1.000000 | 공동 1위 | ||
| S4 | 0.853635 | 3위 | ||
| S1, S2, S6, S7 | 0.744644 | 공동 4위 |
§3-3 표의 극한값과 정확히 일치한다. 손으로 푼 3차방정식이 거듭제곱법 10걸음보다 정확하다.
5. 값 읽기 — 연결정도가 같은데 점수가 다르다 (Reading the Values)
5-1. 이웃합 표 — 정의를 그대로 확인 (Neighbor-Sum Table: Checking the Definition)
정의는 "이웃 점수의 합을 로 나눈 것"이었다. 일곱 명 전부 확인해 보자.
| 학생 | 연결정도 | 이웃 | 이웃 점수의 합 | ||
|---|---|---|---|---|---|
| S1 | 2 | S2(0.7446), S3(1.0000) | 1.744644 | 0.744644 | |
| S2 | 2 | S1(0.7446), S3(1.0000) | 1.744644 | 0.744644 | |
| S3 | 3 | S1(0.7446), S2(0.7446), S4(0.8536) | 2.342923 | 1.000000 | |
| S4 | 2 | S3(1.0000), S5(1.0000) | 2.000000 | 0.853635 | |
| S5 | 3 | S4(0.8536), S6(0.7446), S7(0.7446) | 2.342923 | 1.000000 | |
| S6 | 2 | S5(1.0000), S7(0.7446) | 1.744644 | 0.744644 | |
| S7 | 2 | S5(1.0000), S6(0.7446) | 1.744644 | 0.744644 |
5-2. 오늘의 핵심 비교 — S4 대 S1 (The Key Comparison: S4 vs S1)
둘 다 연결정도 2다. 그런데 점수가 다르다.
| 친구 A | 친구 B | 합 | |||
|---|---|---|---|---|---|
| S4 | S3 = 1.0000 | S5 = 1.0000 | 2.0000 | 0.853635 | |
| S1 | S3 = 1.0000 | S2 = 0.7446 | 1.7446 | 0.744644 | |
| 차이 | 0.2554 | 0.1090 | |||
S4는 연결정도 2로 얻을 수 있는 최고점을 받았다. 이 네트워크에서 한 학생이 가질 수 있는 최고 점수는 1.0인데, S4의 친구는 둘 다 1.0이다 — 이보다 좋은 친구 조합은 존재하지 않는다. 반면 S1의 친구 중 하나(S2)는 0.7446짜리라 합이 모자란다. 친구 수는 같지만 친구의 질이 다르다 — 이것이 고유벡터 중심성이 새로 잡아낸 정보다.
5-3. 지금까지 네 지표의 판정 (What the Four Measures Say So Far)
| 학생 | 순위 | 순위 | 순위 | 순위 | ||||
|---|---|---|---|---|---|---|---|---|
| S1 | 0.3333 | 3 | 0.4000 | 4 | 0.0000 | 4 | 0.7446 | 4 |
| S2 | 0.3333 | 3 | 0.4000 | 4 | 0.0000 | 4 | 0.7446 | 4 |
| S3 | 0.5000 | 1 | 0.5455 | 2 | 0.5333 | 2 | 1.0000 | 1 |
| S4 | 0.3333 | 3 | 0.6000 | 1 | 0.6000 | 1 | 0.8536 | 3 |
| S5 | 0.5000 | 1 | 0.5455 | 2 | 0.5333 | 2 | 1.0000 | 1 |
| S6 | 0.3333 | 3 | 0.4000 | 4 | 0.0000 | 4 | 0.7446 | 4 |
| S7 | 0.3333 | 3 | 0.4000 | 4 | 0.0000 | 4 | 0.7446 | 4 |
고유벡터 중심성은 연결정도와 순위가 같다(S3·S5가 1위). 하지만 동점을 깨뜨렸다 — 연결정도가 2로 똑같던 다섯 명 중 S4만 따로 3위로 떼어 놓았다. 반대로 S4를 1위로 올렸던 근접·매개와는 갈라진다.
6. 은 무엇을 재는가 (What the Leading Eigenvalue Measures)
6-1. 평균 연결정도와 최대 연결정도 사이 (Between Mean and Maximum Degree)
은 아무 숫자가 아니다. 항상 다음 범위에 갇힌다.
그래서 을 "실효 평균 연결정도"로 읽을 수 있다. 평균은 2.29지만, 연결이 많은 학생끼리 서로 붙어 있으면 이 평균보다 위로 올라간다. 우리 네트워크는 2.343으로 평균보다 조금 높다 — 삼각형 두 개 때문이다.
6-2. 은 걷기 개수의 증가율이다 — 단원 1-2·1-3과 만나는 지점 (The Growth Rate of Walk Counts)
§3-3 표의 "합" 열을 다시 보자: 그런데 의 성분은 정의상
즉 길이 짜리 걷기(walk)의 총 개수다. 단원 1-2에서 , 단원 1-3에서 로 셌던 바로 그 수다. R로 를 직접 계산하면 §3-3의 합 열과 완전히 같다(§13에서 검증).
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
|---|---|---|---|---|---|---|---|---|---|
| 16 | 38 | 88 | 208 | 484 | 1140 | 2660 | 6252 | 14612 | |
| 앞 항과의 비 | 2.2857 | 2.3750 | 2.3158 | 2.3636 | 2.3269 | 2.3554 | 2.3333 | 2.3504 | 2.3372 |
세 가지 해석이 한 점에서 만난다.
① = 고윳값 방정식의 비례상수
② = 걷기 개수가 한 걸음마다 늘어나는 배율 (배)
③ = 아주 긴 걷기 중 에서 출발하는 것의 몫
소문이 한 다리 건널 때마다 경로 수가 2.34배로 늘어나고,
그중 어느 학생에게서 출발한 몫이 큰지가 고유벡터 중심성이다.
7. 고유벡터 중심성이 무너지는 곳 (Where Eigenvector Centrality Breaks)
지금까지는 무방향 네트워크였다. 방향이 생기면 상황이 완전히 달라진다. 4명짜리 "정보 전달" 네트워크를 보자. 화살표는 "내가 그 애에게 알려 준다"이다.
7-1. 거듭제곱하면 사라진다 (Powers Drive It to Zero)
를 계속 곱해 보자.
| 0이 아닌 칸 | 전부 0 |
길이 4짜리 걷기가 하나도 없다. 화살표를 거꾸로 갈 수 없으므로 어디서 출발해도 3걸음 안에 막다른 곳()에 닿는다. 따라서 모든 고윳값이 0이다.
igraph는 오류를 내지 않는다.
eigen_centrality(gd, directed=TRUE)$vector는 을 돌려준다.
"가 100점, 나머지 전원 0점"이라는 말이 되는 것처럼 생긴 쓰레기 값이다.
경고도 없다. 유일한 단서는 $value가 0이라는 것 — 이면 그 답은 버려야 한다.
7-2. 방향 네트워크에서 고유벡터 중심성의 근본 문제 (The Core Problem in Directed Networks)
| 문제 | 내용 | 교실에서 |
|---|---|---|
| 들어오는 화살표 0 → 점수 0 | 아무도 나를 지명하지 않으면 | 은 두 명에게 정보를 주는 출처인데 0점 |
| 0이 전염된다 | 0점짜리에게서만 지명받은 학생도 0점, 연쇄적으로 퍼짐 | 는 에게만 지명받아 역시 0점 |
| 막다른 학생이 다 가져간다 | 는 나가는 화살표가 없어 점수를 흡수만 한다 | 듣기만 하고 아무에게도 전하지 않는 학생이 1위 |
구글이 웹페이지 순위를 매길 때 부딪힌 문제가 정확히 이것이다. 웹 링크는 방향이 있고, 나가는 링크가 없는 페이지가 수없이 많다. 이를 고치려고 만든 것이 페이지랭크다.
8. 페이지랭크 — 표를 나누어 준다 (PageRank: Splitting the Vote)
8-1. 정의 (Definition)
는 의 나가는 연결정도(무방향이면 그냥 연결정도), 는 감쇠계수(damping factor)로 관례상 를 쓴다.
8-2. 고유벡터 중심성과 무엇이 다른가 — 두 군데만 바뀌었다 (Two Changes from Eigenvector Centrality)
| 고유벡터 중심성 | 페이지랭크 | 바뀐 이유 | |
|---|---|---|---|
| 이웃이 주는 양 | (통째로) | (나눠서) | 친구가 100명인 인기 학생의 지명 한 개는 값이 싸야 한다. 자기 점수를 친구 수만큼 쪼개서 나눠 준다 |
| 기본 점수 | 없음 | 아무도 지명하지 않아도 최소한 이만큼은 받는다 → §7의 "0점 전염"이 원천 차단된다 | |
| 전체 합 | 약속하기 나름 (§2-4) | 확률로 읽을 수 있다 — "지금 이 학생에게 소문이 있을 확률" |
8-3. 감쇠계수 의 뜻 — 무작위로 돌아다니는 학생 (The Damping Factor: A Randomly Wandering Student)
페이지랭크는 무작위 산책(random walk)으로 읽는 것이 가장 직관적이다. 소문 하나가 교실을 떠돈다고 하자. 매 걸음마다
| 확률 | 무슨 일이 일어나나 | 식의 어느 부분 |
|---|---|---|
| 지금 있는 학생의 친구 중 한 명에게 무작위로 옮겨간다 | ||
| 관계를 무시하고 반 전체 중 아무나에게 순간이동한다 |
충분히 오래 돌아다닌 뒤 각 학생에게 머물 확률이 페이지랭크다. 0.15의 순간이동이 있기 때문에 막다른 학생에게 갇히지 않고, 아무도 지명 안 한 학생도 확률이 0이 되지 않는다.
9. 손 계산 ③ 페이지랭크 첫 걸음 (Hand Calculation: PageRank Step 1)
다시 무방향 로 돌아온다. 모두 같은 확률에서 출발한다.
9-1. 준비 — 각자 친구 한 명에게 얼마씩 주는가 (Setup: How Much Each Passes to a Friend)
각 학생은 자기 점수를 친구 수로 나누어 친구 한 명당 그만큼 보낸다.
| 학생 | 연결정도 | 친구 1명당 보내는 양 | 값 | |
|---|---|---|---|---|
| S1 | 2 | 0.0714286 | ||
| S2 | 2 | 0.0714286 | ||
| S3 | 3 | 0.0476190 | ||
| S4 | 2 | 0.0714286 | ||
| S5 | 3 | 0.0476190 | ||
| S6 | 2 | 0.0714286 | ||
| S7 | 2 | 0.0714286 |
여기서 이미 반전의 씨앗이 보인다. 친구가 많은 S3와 S5가 가장 적게 보낸다(0.0476 vs 0.0714). 고유벡터 중심성에서는 S3, S5가 만점(1.0)을 통째로 보냈다. 완전히 반대다.
기본 점수는 모두 같다.
9-2. — 0인 항까지 전부 (Every Term Included)
의 1행은 이다.
| 곱 | 왜 그 값인가 | |||
|---|---|---|---|---|
| S1 | 0 | 0.0714286 | 0.0000000 | 자기 자신 — 대각선은 0 |
| S2 | 1 | 0.0714286 | 0.0714286 | 친구 S2가 친구 2명에게 반씩 → 나에게 절반 |
| S3 | 1 | 0.0476190 | 0.0476190 | 친구 S3는 친구 3명에게 1/3씩 → 나에게 3분의 1 |
| S4 | 0 | 0.0714286 | 0.0000000 | 친구 아님 |
| S5 | 0 | 0.0476190 | 0.0000000 | 친구 아님 |
| S6 | 0 | 0.0714286 | 0.0000000 | 친구 아님 |
| S7 | 0 | 0.0714286 | 0.0000000 | 친구 아님 |
| 받은 합계 | 0.1190476 | |||
9-3. 와
| 곱 | | | 곱 | |||
|---|---|---|---|---|---|
| S1 | 1 | 0.0714286 | | | 0 | 0.0000000 |
| S2 | 1 | 0.0714286 | | | 0 | 0.0000000 |
| S3 | 0 | 0.0000000 | | | 1 | 0.0476190 |
| S4 | 1 | 0.0714286 | | | 0 | 0.0000000 |
| S5 | 0 | 0.0000000 | | | 1 | 0.0476190 |
| S6 | 0 | 0.0000000 | | | 0 | 0.0000000 |
| S7 | 0 | 0.0000000 | | | 0 | 0.0000000 |
| 합계 | | |
단 한 걸음 만에 S4가 꼴찌로 내려갔다. S4는 친구가 둘뿐인데 그 둘(S3, S5)이 친구가 셋씩이라 각각 1/3만 보내 준다. 반면 S1은 친구 S2에게서 1/2을 받는다. 고유벡터 중심성에서 S4를 3위로 올려 준 바로 그 사실 ("내 친구가 잘나갔다")이 페이지랭크에서는 불리하게 작용한다.
9-4. 수렴 (Convergence)
| S1 | S2 | S3 | S4 | S5 | S6 | S7 | 합 | |
|---|---|---|---|---|---|---|---|---|
| 0 | 0.142857 | 0.142857 | 0.142857 | 0.142857 | 0.142857 | 0.142857 | 0.142857 | 1 |
| 1 | 0.122619 | 0.122619 | 0.203571 | 0.102381 | 0.203571 | 0.122619 | 0.122619 | 1 |
| 2 | 0.131220 | 0.131220 | 0.169167 | 0.136786 | 0.169167 | 0.131220 | 0.131220 | 1 |
| 3 | 0.125128 | 0.125128 | 0.191100 | 0.117290 | 0.191100 | 0.125128 | 0.125128 | 1 |
| 4 | 0.128753 | 0.128753 | 0.177635 | 0.129718 | 0.177635 | 0.128753 | 0.128753 | 1 |
| 5 | 0.126478 | 0.126478 | 0.185999 | 0.122089 | 0.185999 | 0.126478 | 0.126478 | 1 |
| 8 | 0.127550 | 0.127550 | 0.182044 | 0.125712 | 0.182044 | 0.127550 | 0.127550 | 1 |
| 12 | 0.127374 | 0.127374 | 0.182691 | 0.125119 | 0.182691 | 0.127374 | 0.127374 | 1 |
| 15 | 0.127337 | 0.127337 | 0.182830 | 0.124993 | 0.182830 | 0.127337 | 0.127337 | 1 |
| 수렴값 | 0.127344 | 0.127344 | 0.182803 | 0.125017 | 0.182803 | 0.127344 | 0.127344 | 1 |
| 순위 | 3 | 3 | 1 | 7 | 1 | 3 | 3 |
여기서도 §3-3처럼 위아래로 흔들리며 수렴한다(S4: 0.1024 → 0.1368 → 0.1173 → 0.1297 → …). 15걸음이면 소수 넷째 자리까지 맞는다.
10. S4가 페이지랭크 꼴찌인 이유 (Why S4 Ranks Last)
수렴한 값을 정의에 다시 넣어 왜 그 순서인지 확인한다. S4와 S1은 둘 다 연결정도 2인데 결과가 갈렸다.
10-1. S4가 받는 것 (What S4 Receives)
| 주는 학생 | 그 학생의 | 그 학생의 연결정도 | S4에게 보내는 양 |
|---|---|---|---|
| S3 | 0.182803 | 3 | |
| S5 | 0.182803 | 3 | |
| 받은 합계 | 0.1218687 | ||
10-2. S1이 받는 것 (What S1 Receives)
| 주는 학생 | 그 학생의 | 그 학생의 연결정도 | S1에게 보내는 양 |
|---|---|---|---|
| S2 | 0.127344 | 2 | |
| S3 | 0.182803 | 3 | |
| 받은 합계 | 0.1246063 | ||
10-3. 차이는 어디서 나왔나 (Where the Difference Comes From)
| 기여 ① | 기여 ② | 합 | |
|---|---|---|---|
| S1 | S2에게서 0.0636720 | S3에게서 0.0609343 | 0.1246063 |
| S4 | S3에게서 0.0609343 | S5에게서 0.0609343 | 0.1218687 |
| 차이 | 0.0027377 | 0 | 0.0027376 |
차이의 정체는 딱 하나다. S1의 친구 S2는 연결정도 2라서 절반씩 주고, S4의 친구 S3·S5는 연결정도 3이라 3분의 1씩 준다. S2의 점수(0.1273)가 S3의 점수(0.1828)보다 낮은데도, 나누는 수가 작아서 결국 S1이 더 많이 받는다: .
10-4. 같은 학생, 정반대 판정 (Same Student, Opposite Verdicts)
| 지표 | S4 값 | 순위 | 이유 |
|---|---|---|---|
| 연결정도 | 0.3333 | 공동 3위 | 친구가 2명 |
| 근접 | 0.6000 | 1위 | 모두에게서 가장 가깝다 (단원 2-2) |
| 매개 | 0.6000 | 1위 | 모든 최단경로가 나를 지난다 (단원 2-3) |
| 고유벡터 | 0.8536 | 3위 | 친구 둘 다 만점이라 유리 |
| 페이지랭크 | 0.1250 | 7위 (꼴찌) | 친구 둘 다 바빠서 나에게 오는 몫이 작다 |
교실 해석 — 같은 학생을 다섯 가지로 읽기. S4는 두 무리를 잇는 다리 학생이다.
- 근접·매개 1위 — 학급 전체에 무언가를 퍼뜨리거나 전달해야 할 때 S4가 최적이다. "반 전체에 빨리 알려야 한다", "두 무리를 섞어야 한다"면 S4가 답이다
- 고유벡터 3위 — S4와 친한 두 명이 각 무리의 중심이므로, S4가 영향력 있는 사람과 통해 있다는 뜻이다
- 페이지랭크 꼴찌 — 하지만 그 두 명은 각자 자기 무리를 챙기느라 바쁘다. 소문이 무작위로 떠돌 때 S4에게 도달할 확률이 가장 낮다. 정보가 저절로 흘러오지 않는 자리라는 뜻 — 담임이 먼저 챙겨야 하는 학생이다
모순이 아니다. "정보를 흘려보내기 좋은 자리"(매개)와 "정보가 흘러들어오기 좋은 자리"(페이지랭크)는 다른 자리다. S4는 앞은 최고, 뒤는 최악이다.
11. 무방향 네트워크에서 페이지랭크 ≈ 연결정도 (On Undirected Graphs, PageRank ≈ Degree)
페이지랭크 값을 연결정도의 몫과 나란히 놓아 보자.
| 학생 | () | 차이 | ||
|---|---|---|---|---|
| S1, S2, S6, S7 | 2 | 0.125000 | 0.127344 | +0.002344 |
| S3, S5 | 3 | 0.187500 | 0.182803 | −0.004697 |
| S4 | 2 | 0.125000 | 0.125017 | +0.000017 |
거의 같다. 그리고 를 1에 가깝게 올리면 정확히 같아진다.
| 0.5 | 0.7 | 0.85 | 0.9 | 0.95 | 0.99 | 0.999 | |
|---|---|---|---|---|---|---|---|
| 0.01755 | 0.00982 | 0.00470 | 0.00309 | 0.00153 | 0.00030 | 0.00003 |
정리 (무방향·연결 네트워크). 무작위 산책의 정상분포는 정확히
이다. 페이지랭크는 여기에 순간이동 를 섞은 것이므로,
이면 연결정도 몫으로 수렴한다.
따라서 무방향 교우관계 네트워크에서 페이지랭크는 연결정도에 거의 새 정보를 더하지 않는다.
순위가 뒤집히는 것은 S4처럼 값이 종이 한 장 차이(0.125000 vs 0.125017)로 갈리는 경우뿐이다 —
이런 순위 차이를 크게 해석하면 안 된다.
페이지랭크의 진짜 쓸모는 방향 네트워크(누가 누구를 지명했는가, 누가 누구에게 물어보는가)에 있다.
단원 2-6의 Knoke 자금·정보 네트워크가 그런 예다.
12. 중심화 — 그리고 별이 1이 아닌 이유 (Centralization: Why the Star Is Not 1)
Freeman 중심화 공식은 지금까지와 같다(단원 2-1 §7).
12-1. 우리 네트워크 (Our Network)
| 학생 | ||
|---|---|---|
| S1 | 0.744644 | 0.255356 |
| S2 | 0.744644 | 0.255356 |
| S3 | 1.000000 | 0.000000 |
| S4 | 0.853635 | 0.146365 |
| S5 | 1.000000 | 0.000000 |
| S6 | 0.744644 | 0.255356 |
| S7 | 0.744644 | 0.255356 |
| 합계 | 1.167788 | |
12-2. 함정 — 별 모양이 1이 아니다 (The Pitfall: The Star Is Not 1)
지금까지 세 지표는 모두 별 모양에서 정확히 1이었다. 고유벡터는 아니다.
| 네트워크 (n=7) | 고유벡터 값 | 중심화 | |
|---|---|---|---|
| 완전 그래프 | 전원 1.000 | 0 | 0.0000 |
| 고리(ring) | 전원 1.000 | 0 | 0.0000 |
| 우리 | 0.745 … 1 … 0.854 | 1.1678 | 0.2336 |
| 경로(path, 일렬) | 0.383, 0.707, 0.924, 1, 0.924, 0.707, 0.383 | 1.9727 | 0.3945 |
| + 꼬리 3개 | 1, 0.786×3, 0.306×3 | 2.7269 | 0.5454 |
| 삼각형 + 꼬리 4개 | 1, 0.595×2, 0.373×4 | 3.3187 | 0.6637 |
| 별 모양(star) | 1, 0.408×6 | 3.5505 | 0.7101 ← 1이 아님 |
고유벡터 중심화는 다른 세 지표와 같은 자에 놓고 비교할 수 없다. igraph가 쓰는 분모 는 실제로 도달 가능한 최댓값이 아니다. 별 모양조차 0.7101에서 멈춘다 — 별의 잎사귀들은 서로 연결되지 않아도 허브를 통해 씩 점수를 받기 때문이다. 그러므로 0.2336(고유벡터)이 0.4222(매개)보다 작다고 해서 "매개가 더 집중되어 있다"고 말할 수 없다. 같은 지표끼리, 다른 학급과만 비교할 것.
12-3. 네 중심화 값 (같은 네트워크) (Four Centralization Values)
| 지표 | 중심화 | 별에서의 값 | 같은 자인가 |
|---|---|---|---|
| 연결정도 (2-1) | 0.1667 | 1 | 예 |
| 근접 (2-2) | 0.3333 | 1 | 예 |
| 매개 (2-3) | 0.4222 | 1 | 예 |
| 고유벡터 (2-4) | 0.2336 | 0.7101 | 아니오 |
13. R로 검증 (Verification in R)
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")
# --- 고윳값 7개 ---
eigen(U)$values
# 2.342923 2.000000 0.470683 -1.000000 -1.000000 -1.000000 -1.813607
# --- 고유벡터 중심성 (최대=1 정규화) ---
eigen_centrality(g)$vector
# 0.744644 0.744644 1.000000 0.853635 1.000000 0.744644 0.744644
eigen_centrality(g)$value
# 2.34292308278 ← lambda_1
# --- 3차방정식이 맞는지 (§4-3) ---
polyroot(c(2, -4, -1, 1)) # 2 - 4L - L^2 + L^3
# 0.4706834 -1.8136065 2.3429231
1 / (2.3429231 - 1) # 0.7446443 = a
2 / 2.3429231 # 0.8536345 = c
# --- 거듭제곱법 = 걷기 개수 (§6-2) ---
x <- rep(1, 7); for (k in 1:5) { x <- as.vector(U %*% x); cat(k, sum(x), "\n") }
# 1 16 / 2 38 / 3 88 / 4 208 / 5 484
M <- diag(7); for (k in 1:5) { M <- M %*% U; cat(k, sum(M), "\n") }
# 1 16 / 2 38 / 3 88 / 4 208 / 5 484 ← 같다
# --- 페이지랭크 ---
page_rank(g)$vector # damping 기본값 0.85
# 0.127344 0.127344 0.182803 0.125017 0.182803 0.127344 0.127344
sum(page_rank(g)$vector) # 1
igraph::degree(g) / sum(igraph::degree(g))
# 0.125 0.125 0.1875 0.125 0.1875 0.125 0.125 ← d→1의 극한
# --- 중심화 ---
centr_eigen(g)$centralization # 0.2335577
centr_eigen(g)$theoretical_max # 5 (= n-2)
centr_eigen(make_star(7, mode="undirected"))$centralization
# 0.7101021 ← 별인데도 1이 아니다 (§12-2)
13-1. 함정 ① — sna::evcent는 다른 자를 쓴다 (Pitfall I: sna::evcent Uses a Different Scale)
library(sna)
sna::evcent(U, gmode = "graph")
# 0.334805 0.334805 0.449618 0.383809 0.449618 0.334805 0.334805
값이 전혀 다르다. sna는 벡터 길이를 1로 맞추고(), igraph는 최댓값을 1로 맞춘다. 서로 상수배 관계이므로 순위는 같지만 값은 다르다.
두 값의 비 자체도 의미가 있다 — 최댓값 대 최솟값의 비는 §4에서 구한 이므로
두 패키지 값을 같은 표에 섞어 쓰면 안 된다. 단원 2-3 §10의
sna::betweenness(rescale=TRUE) 함정과 같은 종류다.
13-2. 함정 ② — 방향 네트워크에서 조용히 틀린 답 (Pitfall II: Silently Wrong in Directed Networks)
Dm <- matrix(0, 4, 4, dimnames = list(paste0("T",1:4), paste0("T",1:4)))
Dm["T1","T2"] <- 1; Dm["T1","T3"] <- 1; Dm["T2","T3"] <- 1; Dm["T3","T4"] <- 1
gd <- graph_from_adjacency_matrix(Dm, mode = "directed")
eigen_centrality(gd, directed = TRUE)$vector
# 0 0 0 1 ← 경고 없이 나오는 쓰레기 값
eigen_centrality(gd, directed = TRUE)$value
# 0 ← 이것이 유일한 단서. lambda_1 = 0이면 버릴 것
page_rank(gd)$vector
# 0.120452 0.171644 0.317542 0.390362 ← 전원 양수, 정상 동작
점검 순서.
① igraph::components(g)$no로 연결 여부 확인 (단원 2-2 §11)
→ ② 방향 네트워크면 eigen_centrality()$value가 0인지 확인
→ ③ 0이거나 방향 네트워크라면 페이지랭크를 쓸 것.
13-3. 함정 ③ — 이름 가림(masking)은 여기서도 (Pitfall III: Name Masking Again)
environmentName(environment(evcent)) # "sna"
degree, closeness, betweenness, components에 이어
evcent도 sna가 가린다. 항상 igraph:: / sna::를 붙일 것.
(다만 eigen_centrality와 page_rank는 igraph에만 있어 충돌하지 않는다.)
14. 다섯 지표 종합과 교실 적용 (All Five Measures; Classroom Application)
| 학생 | 순위 | 순위 | 순위 | 순위 | 순위 | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| S1 | 0.3333 | 3 | 0.4000 | 4 | 0.0000 | 4 | 0.7446 | 4 | 0.1273 | 3 |
| S2 | 0.3333 | 3 | 0.4000 | 4 | 0.0000 | 4 | 0.7446 | 4 | 0.1273 | 3 |
| S3 | 0.5000 | 1 | 0.5455 | 2 | 0.5333 | 2 | 1.0000 | 1 | 0.1828 | 1 |
| S4 | 0.3333 | 3 | 0.6000 | 1 | 0.6000 | 1 | 0.8536 | 3 | 0.1250 | 7 |
| S5 | 0.5000 | 1 | 0.5455 | 2 | 0.5333 | 2 | 1.0000 | 1 | 0.1828 | 1 |
| S6 | 0.3333 | 3 | 0.4000 | 4 | 0.0000 | 4 | 0.7446 | 4 | 0.1273 | 3 |
| S7 | 0.3333 | 3 | 0.4000 | 4 | 0.0000 | 4 | 0.7446 | 4 | 0.1273 | 3 |
학생 7명에 대해 다섯 지표가 세 종류의 1위를 내놓았다: S3·S5(연결정도·고유벡터·페이지랭크), S4(근접·매개).
교실 적용 다섯 가지
- "친구 수는 적지만 잘나가는 애랑 친하다"를 숫자로. 고유벡터 중심성은 연결정도가 같은 학생들의 동점을 깨뜨린다. 우리 반에서 연결정도 2인 학생 다섯 명 중 S4만 따로 3위로 떨어져 나왔다. "누구와 친한가"가 처음으로 점수에 반영된 것이다
- 페이지랭크는 "정보가 나에게 흘러올 확률"이다. 매개 중심성이 내보내기에 좋은 자리를 재는 반면, 페이지랭크는 받아들이기에 좋은 자리를 잰다. S4는 앞이 1위, 뒤가 꼴찌 — 안내 사항이 저절로 흘러가지 않는 학생이다
- 인기 학생의 지명은 값이 싸다. 페이지랭크의 는 "친구 30명인 아이가 나를 좋아한다"보다 "친구 2명인 아이가 나를 좋아한다"를 더 쳐준다. 교우관계 설문에서 몇 명을 적었는지가 그 지명의 무게를 바꾼다는 뜻이다
- 무방향 설문이면 페이지랭크를 굳이 쓰지 않아도 된다. (§11) "서로 친한 사이"로 만든 대칭 행렬에서는 페이지랭크가 연결정도와 거의 같다. 일방 지명을 그대로 살린 방향 네트워크에서만 새 정보를 준다
- 지표를 고르는 기준은 "무엇을 할 것인가"다. 전달자를 뽑는다 → 매개·근접 / 여론 주도자를 찾는다 → 고유벡터 ·페이지랭크 / 인기 조사 → 연결정도. 다섯 개를 함께 표로 놓고 순위가 갈리는 학생을 눈여겨볼 것
15. 연습문제 (Exercises)
연습문제 1. 단원 2-1~2-3에서 계속 썼던 개입을 다시 한다. S4와 S6을 새로 친구로 만들었다(간선 S4–S6 추가). 연결정도는 가 된다.
- 에서 출발해 을 손으로 계산하라. 최소한 의 S3와 S4는 0인 항까지 전부 전개할 것.
- 정확한 답은 , 이다. 연결정도가 똑같이 3인 네 학생 S3, S4, S5, S6의 점수가 로 크게 갈렸다. 이웃합으로 그 이유를 설명하라.
- S3는 연결정도가 3으로 그대로인데 점수가 로 떨어졌다. 다리를 하나 더했을 뿐인데 왜 떨어졌는가?
먼저 풀고 §16 해설과 맞춰 볼 것.
연습문제 2. 이번에는 S3을 허브로 만든다(간선 S3–S5, S3–S6, S3–S7 추가). 연결정도는 이 된다.
- 과 를 손으로 계산하라. 의 S3는 0인 항까지 전부 전개할 것.
- 페이지랭크는 이고 S4가 또 꼴찌다. S4와 S1은 둘 다 연결정도 2인데 왜 갈렸는지, 받는 양을 직접 계산해서 보이라.
- 이 허브 네트워크의 고유벡터 중심화는 0.4889다. 단원 2-1~2-3에서 구한 세 중심화(연결정도 0.6667, 근접 0.7761, 매개 0.5889)와 나란히 놓고, "이 학급은 중심화가 높다"고 말할 수 있는지 판단하라.
먼저 풀고 §16 해설과 맞춰 볼 것.
16. 해설과 답 (Solutions)
16-1. 연습문제 1 — S4–S6 추가 (Exercise 1: Adding S4–S6)
① 무엇을 곱하는가
바뀐 인접행렬. 새로 1이 된 칸을 표시했다.
② 전개 —
이 전부 1이므로 은 행합, 곧 연결정도다.
③ 전개 — , 0인 항까지 전부
| =1 | 2 | 3 | 4 | 5 | 6 | 7 | 왜 그 값인가 | ||
|---|---|---|---|---|---|---|---|---|---|
| S1 | 5 | S2(2) + S3(3) | |||||||
| S2 | 5 | S1(2) + S3(3) | |||||||
| S3 | 7 | S1(2)+S2(2)+S4(3) — 친구 셋 중 둘이 2점짜리 | |||||||
| S4 | 9 | S3(3)+S5(3)+S6(3) — 친구 셋이 모두 3점 | |||||||
| S5 | 8 | S4(3)+S6(3)+S7(2) | |||||||
| S6 | 8 | S4(3)+S5(3)+S7(2) | |||||||
| S7 | 6 | S5(3) + S6(3) |
④ 전개 —
| 이웃의 | 합 | |
|---|---|---|
| S1 | S2(5) + S3(7) | 12 |
| S2 | S1(5) + S3(7) | 12 |
| S3 | S1(5) + S2(5) + S4(9) | 19 |
| S4 | S3(7) + S5(8) + S6(8) | 23 |
| S5 | S4(9) + S6(8) + S7(6) | 23 |
| S6 | S4(9) + S5(8) + S7(6) | 23 |
| S7 | S5(8) + S6(8) | 16 |
답 (1)
최댓값으로 나누면 의 비율은 — 정답 쪽으로 가고 있다. 에서 이미 S4가 단독 선두(9)였다는 점이 눈에 띈다.
⑤ (2)의 답 — 연결정도 3인 네 명이 갈린 이유
정확한 답 , 로 이웃합을 확인한다.
| 학생 | 연결정도 | 이웃과 그 점수 | 이웃합 | ||
|---|---|---|---|---|---|
| S3 | 3 | S1(0.3691), S2(0.3691), S4(0.9711) | 1.709275 | 0.6309 | |
| S4 | 3 | S3(0.6309), S5(1.0000), S6(1.0000) | 2.630898 | 0.9711 | |
| S5 | 3 | S4(0.9711), S6(1.0000), S7(0.7382) | 2.709275 | 1.0000 | |
| S6 | 3 | S4(0.9711), S5(1.0000), S7(0.7382) | 2.709275 | 1.0000 |
덤으로 S1과 S7도 확인해 두면 재미있다.
| 학생 | 이웃과 그 점수 | 이웃합 | |
|---|---|---|---|
| S1 | S2(0.3691), S3(0.6309) | 1.000000 (정확히 1) | 0.3691 |
| S7 | S5(1.0000), S6(1.0000) | 2.000000 | 0.7382 |
답 (2)
네 명 모두 친구가 셋이지만, 친구의 점수 합이 로 다르다.
- S5, S6 (1.0000) — 서로가 서로의 친구이고, 둘 다 S4(0.9711)와도 붙어 있다. 고득점자 셋이 뭉친 삼각형 {S4, S5, S6}의 일원이다
- S4 (0.9711) — 친구 셋 중 둘(S5, S6)이 만점이지만 하나(S3)가 0.6309라 살짝 모자란다
- S3 (0.6309) — 친구 셋 중 둘(S1, S2)이 0.3691짜리 최하위다. 혼자 잘난 친구 S4(0.9711)를 두었지만 나머지 둘이 점수를 끌어내린다
핵심. 연결정도는 으로 완전 동점이지만 고유벡터 중심성은 에서 까지 1.6배 차이로 벌린다. "친구가 몇 명인가"만으로는 보이지 않던 차이다.
⑥ (3)의 답 — S3의 점수가 떨어진 이유
| 개입 전 | 개입 후 | 변화 | |
|---|---|---|---|
| S3의 연결정도 | 3 | 3 | 변화 없음 |
| S3의 이웃 | S1, S2, S4 | S1, S2, S4 (그대로) | 변화 없음 |
| S1의 점수 | 0.7446 | 0.3691 | −50% |
| S2의 점수 | 0.7446 | 0.3691 | −50% |
| S4의 점수 | 0.8536 | 0.9711 | +14% |
| S3의 이웃합 | 2.3429 | 1.7093 | −27% |
| 2.3429 | 2.7093 | +16% | |
| S3의 점수 | 1.0000 | 0.6309 | −37% |
답 (3)
S3 자신은 아무것도 잃지 않았다. 친구 수도 그대로고 친구 명단도 그대로다. 떨어진 이유는 순전히 주변이 바뀌었기 때문이다. 두 가지가 동시에 일어났다.
- 이웃의 값이 떨어졌다. 새 삼각형 {S4, S5, S6}이 생기면서 네트워크의 무게중심이 오른쪽으로 이동했다. 왼쪽 삼각형에 갇힌 S1, S2는 0.7446 → 0.3691로 반토막 났고, S3의 이웃합도 함께 내려갔다
- 기준()이 올라갔다. 간선이 하나 늘어 걷기 개수의 증가율이 2.343 → 2.709로 커졌다. 나누는 수가 커졌으니 몫은 더 작아진다
고유벡터 중심성은 순전히 상대적인 점수다. 연결정도·매개 중심성과 결정적으로 다른 점이 이것이다 — 내가 가만히 있어도 남들이 움직이면 내 점수가 바뀐다.
교실 해석. S4와 S6을 붙여 준 개입은 지금까지 이렇게 평가되었다: 연결정도 중심화 0.1667 → 0.1(성공), 근접 중심성 6명 상승(성공), 매개 중심성은 S5의 과부하만 덜고 진짜 병목 S4는 그대로(부분 성공). 여기에 네 번째 평가가 붙는다 — S1, S2가 영향력에서 완전히 소외되었다(0.7446 → 0.3691). 새 다리는 오른쪽에 무게중심을 만들었고, 왼쪽 삼각형에만 속한 두 학생은 아무 일도 하지 않았는데 학급 여론에서 밀려났다. 한 곳을 이어 주면 다른 곳이 변방이 된다 — 개입은 항상 전체를 다시 봐야 한다.
16-2. 연습문제 2 — 허브 S3 (Exercise 2: Hub S3)
① 무엇을 곱하는가
연결정도:
② 전개 — 과
을 0인 항까지 전부:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 합 | |
|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 1 | 1 | 1 | 1 | — | |
| 2 | 2 | 6 | 2 | 4 | 3 | 3 | — | |
| 곱 | 16 |
| 이웃의 | 왜 그 값인가 | ||
|---|---|---|---|
| S1 | S2(2) + S3(6) | 8 | 허브 S3 하나로 8점 — 허브와 붙어 있는 이득 |
| S2 | S1(2) + S3(6) | 8 | S1과 동일 |
| S3 | S1(2)+S2(2)+S4(2)+S5(4)+S6(3)+S7(3) | 16 | 여섯 명 전부에게서 받는다 |
| S4 | S3(6) + S5(4) | 10 | 친구는 둘뿐인데 둘 다 고득점 |
| S5 | S3(6)+S4(2)+S6(3)+S7(3) | 14 | 허브와 붙어 있고 자기도 친구 4명 |
| S6 | S3(6)+S5(4)+S7(3) | 13 | 허브 + 준허브 S5 |
| S7 | S3(6)+S5(4)+S6(3) | 13 | S6과 동일 |
답 (1)
참고로 , 정확한 답은 , 다. 검산: S3의 이웃합 → ✓
③ (2)의 답 — S4가 또 꼴찌인 이유
각 학생이 친구 한 명에게 보내는 양부터 구한다(수렴한 기준).
| 학생 | 연결정도 | 친구 1명당 보내는 양 | |
|---|---|---|---|
| S1 | 0.101522 | 2 | |
| S2 | 0.101522 | 2 | |
| S3 | 0.260800 | 6 | |
| S5 | 0.174394 | 4 |
이제 S1과 S4가 받는 양을 각각 계산한다.
| 주는 학생 ① | 주는 학생 ② | 받은 합계 | ||||
|---|---|---|---|---|---|---|
| S1 | S2 (연결정도 2) → 0.050761 | S3 (연결정도 6) → 0.043467 | 0.094228 | 0.080094 | +0.021429 | 0.101522 |
| S4 | S3 (연결정도 6) → 0.043467 | S5 (연결정도 4) → 0.043599 | 0.087066 | 0.074005 | +0.021429 | 0.095434 |
답 (2)
둘 다 연결정도 2지만 친구가 얼마나 바쁜가가 다르다.
- S1은 친구 중 하나(S2)가 연결정도 2라서 자기 점수의 절반을 통째로 준다 → 0.050761
- S4는 친구가 S3(연결정도 6)와 S5(연결정도 4) — 둘 다 점수를 여러 조각으로 쪼갠다. S3는 점수가 0.2608로 S2의 2.6배나 되지만 6등분하므로 한 조각은 0.043467에 불과하다
차이는 , 여기에 를 곱하면
✓
고유벡터 중심성과는 정반대다. 고유벡터에서 S4는 0.5142로 S1(0.3913)보다 높다 —
"허브와 친하다"가 유리하게 작용했다. 페이지랭크에서는 같은 사실이 "허브는 바빠서 나에게 오는 몫이 작다"로
뒤집혀 꼴찌가 된다.
교실 해석. S4는 반장 S3과 친하다. "영향력 있는 애와 통해 있다"는 점에서는 유리하지만(고유벡터 3위 → 이 시나리오에서도 S1보다 위), 반장은 여섯 명을 상대하느라 바쁘다. 소문·정보가 실제로 S4에게 흘러들 확률은 학급에서 가장 낮다(페이지랭크 7위). "저 학생은 반장이랑 친하니까 알아서 다 알겠지"라는 판단이 틀리는 자리다.
④ (3)의 답 — 네 중심화를 나란히
| 지표 | 기본 | 연습문제 1 (S4–S6) | 연습문제 2 (허브 S3) | 별에서의 값 |
|---|---|---|---|---|
| 연결정도 | 0.1667 | 0.1000 | 0.6667 | 1 |
| 근접 | 0.3333 | 0.3857 | 0.7761 | 1 |
| 매개 | 0.4222 | 0.4667 | 0.5889 | 1 |
| 고유벡터 | 0.2336 | 0.3843 | 0.4889 | 0.7101 |
답 (3)
말할 수 없다. 이유가 두 겹이다.
- 지표마다 값이 다르다. 허브 네트워크에서 네 값이 로 흩어진다. 어느 하나가 "이 학급의 중심화"를 대표하지 못한다. 단원 2-2 §7에서 이미 확인한 문제다
- 고유벡터 중심화는 아예 다른 자다. (§12-2) 앞의 세 지표는 별 모양에서 1에 닿지만 고유벡터는 0.7101에서 멈춘다. 즉 고유벡터의 0.4889는 "만점 1점 중 0.49"가 아니라 "실질 상한 0.71 중 0.49"다. 0.4889 < 0.5889라고 해서 "고유벡터 기준으로 덜 집중되어 있다"고 읽으면 틀린다. 같은 자에 놓으면 로 오히려 매개(0.5889)보다 높다
보고하는 법. "이 학급은 중심화가 높다"가 아니라 "연결정도 기준 중심화가 0.67로, 기본 네트워크(0.17)의 4배다"처럼 ① 어떤 지표인지 ② 무엇과 비교한 것인지를 반드시 함께 밝힌다. 고유벡터 중심화는 다른 학급의 고유벡터 중심화와만 비교한다.
16-3. 오늘의 한 줄 요약 (One-Line Summary)
고유벡터 중심성 — 이웃의 점수를 통째로 더한다.
"중요한 친구를 두면 나도 중요하다."
페이지랭크 — 이웃의 점수를 친구 수로 나누어 더한다.
"중요한 친구가 바쁘면 나에게 오는 몫은 작다."
두 식의 차이는 분모 하나뿐인데, 같은 학생 S4에게 3위와 7위라는 정반대 판정을 내린다.
다음 단원 — 2-5: 가중 네트워크의 중심성 (tnet, 조절). 지금까지 다섯 지표는 모두 간선을 있다/없다로만 보았다. 단원 1-8에서 만든 가중 네트워크 (친밀도 4, 2, 1, …)를 꺼내 "친구 수와 친밀도 합 중 무엇을 볼 것인가"를 하나로 조절하는 법을 배운다. 연결정도 와 강도 를 로 섞는다.