단원 1-8Undirected & Weighted Networks
무방향·가중 네트워크의 행렬 표현
- 오늘의 질문 (Today's Question)
- 새 예제 — 7명 무방향 네트워크 (A New 7-Student Network)
- 무방향 행렬의 네 가지 성질 (Four Properties)
- 손 계산 — 연결정도·엣지 수·밀도 (Degree, Edges, Density)
- 무방향에서 (The Diagonal of the Square)
- 대각선과 삼각형 (Triangles)
- 가중 네트워크와 강도 (Weighted Networks & Strength)
- 가중치의 방향 함정 — 강도 vs 비용 (Strength vs Cost)
- R 검증 (Verification in R)
- 교실 해석 (Classroom Interpretation)
- 연습문제 (Exercises)
- 연습문제 해설과 답 (Solutions)
1. 오늘의 질문 (Today's Question)
단원 1-1부터 1-7까지 우리는 0/1 값을 가진 방향 네트워크만 다뤘다. 오늘은 두 가지 제약을 각각 풀어 본다.
| 제약 | 지금까지 | 오늘 확장 | 설문 문항의 예 |
|---|---|---|---|
| 방향 | 있음 () | 없음 () | "같이 놀고 싶은 친구" → "모둠 활동을 함께 한 친구" |
| 값 | 0 또는 1 | 0 이상의 수 (강도) | "친구다/아니다" → "지난 한 달간 몇 번 함께 활동했나" |
왜 지금 확장하는가. 2단계에서 배울 중심성은 대부분 무방향 네트워크에서 정의가 가장 깔끔하다. 그리고 오늘 만드는 7명 네트워크에는 "두 무리를 잇는 다리 학생"이 일부러 심어져 있다 — 이 학생 하나로 연결정도·근접·매개·고유벡터 중심성이 서로 다른 답을 내는 것을 2단계에서 보게 된다.
2. 새 예제 — 7명 무방향 네트워크 (A New 7-Student Network)
7명 학급에서 "이번 학기 모둠 활동을 함께 한 친구"를 조사했다. 함께 활동한 것은 사실이므로 방향이 없다 — S1이 S2와 함께했다면 S2도 S1과 함께한 것이다. 결과는 관계 8쌍이다.
엣지리스트(edge list) — 관계를 쌍으로 나열한 형식:
| 번호 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| 쌍 | S1–S2 | S1–S3 | S2–S3 | S3–S4 | S4–S5 | S5–S6 | S5–S7 | S6–S7 |
이것을 인접행렬로 옮긴다. 한 쌍이 두 칸을 채운다는 것이 방향 네트워크와의 결정적 차이다 (S1–S2 한 쌍 → 과 ):
구조를 미리 읽어 두자. 두 개의 삼각형이 있고, 그 사이에 S4 하나가 끼어 있다. S4를 빼면 학급이 두 조각으로 쪼개진다 (단원 1-7의 컴포넌트가 1개 → 2개). 이런 정점을 절단점(cut vertex) 또는 다리 역할이라고 부른다. 그런데 S4의 연결정도는 2로 가장 낮은 편이다 — "연결이 적은 학생이 가장 중요한 자리에 있을 수 있다"는 것이 2단계의 핵심 교훈이 된다.
3. 무방향 행렬의 네 가지 성질 (Four Properties)
| 성질 | 식 | 확인 |
|---|---|---|
| ① 대칭 (symmetric) | , 즉 | 위 행렬을 대각선 기준으로 접으면 겹친다 |
| ② 대각선 0 | 자기와 모둠하지 않는다 (단원 1-1의 관례 그대로) | |
| ③ 행합 = 열합 = 연결정도 | 외향·내향의 구분이 사라진다 — 연결정도가 하나뿐 | |
| ④ 악수 정리 (handshake) | 한 쌍이 두 칸을 채우므로 전체 합이 엣지 수의 2배 |
방향 네트워크와 다른 점 정리. 단원 1-4에서는 였다 (지명 하나가 한 칸을 채우므로). 무방향은 다. 계수 2를 어디에 붙이는지가 밀도 공식의 분모 차이(단원 1-5: vs )와 정확히 같은 이유에서 나온다 — 쌍 하나를 몇 번 세는가.
4. 손 계산 — 연결정도·엣지 수·밀도 (Degree, Edges, Density)
4-1. 연결정도 (Degree)
각 행의 일곱 항을 전부 더한다. 무방향이므로 열합을 따로 구할 필요가 없다.
| 학생 | 전개 (일곱 항) | 이웃 | |
|---|---|---|---|
| S1 | 2 | S2, S3 | |
| S2 | 2 | S1, S3 | |
| S3 | 3 | S1, S2, S4 | |
| S4 | 2 | S3, S5 | |
| S5 | 3 | S4, S6, S7 | |
| S6 | 2 | S5, S7 | |
| S7 | 2 | S5, S6 | |
| 합 | 16 | ||
4-2. 엣지 수 (Number of Edges)
세 방법으로 구해 서로 맞춰 본다:
| 방법 | 계산 | 결과 |
|---|---|---|
| 악수 정리 | 8 | |
| 행렬 전체 합 ÷ 2 | 8 | |
| 상삼각만 세기 | — 대각선 위쪽만 | 8 |
세 번째 방법이 무방향 네트워크의 표준 요령이다. 대각선 위쪽 21칸에서 1을 세면 → 8개. 엣지리스트의 8쌍과 정확히 일치한다 ✓
4-3. 밀도와 평균 연결정도 (Density & Mean Degree)
단원 1-5의 무방향 공식 그대로. 가능한 쌍의 수는
단원 1-5에서 확인한 관계 로도 검산한다:
5. 무방향에서 (The Diagonal of the Square)
단원 1-3에서 방향 네트워크의 는 상호 지명의 수였다. 무방향에서는 모든 관계가 상호이므로, 이 값이 그대로 연결정도가 된다. S3에 대해 다섯 항 대신 일곱 항을 전부 전개해 확인한다:
| 곱 | 뜻 | |||
|---|---|---|---|---|
| 1 | 1 | 1 | 1 | S3→S1→S3 — S1에게 갔다 그대로 돌아옴 |
| 2 | 1 | 1 | 1 | S3→S2→S3 |
| 3 | 0 | 0 | 0 | 자기 자신 — |
| 4 | 1 | 1 | 1 | S3→S4→S3 |
| 5 | 0 | 0 | 0 | S3–S5 관계 없음 |
| 6 | 0 | 0 | 0 | 관계 없음 |
| 7 | 0 | 0 | 0 | 관계 없음 |
| 합 | 3 | ✓ | ||
왜 항상 같은가. 무방향이므로 이고, 값이 0/1이므로 다. 따라서 이웃 하나마다 "갔다가 그대로 돌아오는" 2걸음 걷기가 정확히 1개씩 생긴다는 뜻이다. 도 자동으로 성립한다.
참고로 전체는 다음과 같다. 대각선이 연결정도 와 일치한다:
에 주목. S3과 S4는 직접 이웃인데도 2걸음 걷기가 0이다. 공통 이웃이 없기 때문이다 — S3의 이웃은 {S1,S2,S4}, S4의 이웃은 {S3,S5}로 겹치는 사람이 없다. "직접 연결"과 "공통 친구"는 전혀 다른 정보다. 의 비대각 칸이 공통 이웃 수라는 것은 단원 1-2의 결론과 같지만, 무방향에서는 그 값이 곧 "둘이 함께 아는 친구가 몇 명인가"라는 아주 직관적인 뜻이 된다.
6. 대각선과 삼각형 (Triangles)
단원 1-3에서 무방향 삼각형 수는 이었다. 계산한 의 대각선은
| 학생 | ÷ 2 = 삼각형 수 | 어떤 삼각형인가 | |
|---|---|---|---|
| S1 | 2 | 1 | S1–S2–S3 |
| S2 | 2 | 1 | S1–S2–S3 |
| S3 | 2 | 1 | S1–S2–S3 |
| S4 | 0 | 0 | 없음 — 이웃 S3과 S5가 서로 모른다 |
| S5 | 2 | 1 | S5–S6–S7 |
| S6 | 2 | 1 | S5–S6–S7 |
| S7 | 2 | 1 | S5–S6–S7 |
| 합 | 12 | 개의 삼각형 | |
왜 개인은 ÷2, 전체는 ÷6인가. 한 삼각형은 각 참여자에게 시계 방향·반시계 방향 두 개의 3걸음 순환을 만든다 → 개인 값은 삼각형 수의 2배 (÷2). 전체 대각합은 세 명 각자에게서 2번씩 세므로 삼각형 하나가 6번 세어진다 (÷6).
S4의 0이 오늘의 발견이다. S4는 삼각형에 하나도 속하지 않는다 — 그의 두 이웃 S3, S5는 서로 아무 관계가 없다. 이런 위치를 구조적 공백(structural hole)에 걸쳐 있다고 하며, 정보 중개자의 전형적 자리다.
7. 가중 네트워크와 강도 (Weighted Networks & Strength)
같은 학급에서 "함께 활동한 횟수"를 더 물었다. 0/1이 아니라 1~4의 수가 들어간다.
| 쌍 | S1–S2 | S1–S3 | S2–S3 | S3–S4 | S4–S5 | S5–S6 | S5–S7 | S6–S7 |
|---|---|---|---|---|---|---|---|---|
| 가중치 | 4 | 2 | 1 | 1 | 1 | 3 | 2 | 2 |
정의. 가중 네트워크에서 연결정도를 대신하는 지표는 강도(strength)다:
일곱 항을 전부 전개한다:
| 학생 | 전개 | = 평균 관계 강도 | ||
|---|---|---|---|---|
| S1 | 6 | 2 | 3.0 | |
| S2 | 5 | 2 | 2.5 | |
| S3 | 4 | 3 | 1.33 | |
| S4 | 2 | 2 | 1.0 | |
| S5 | 6 | 3 | 2.0 | |
| S6 | 5 | 2 | 2.5 | |
| S7 | 4 | 2 | 2.0 | |
| 합 | 32 | 16 |
검산. 악수 정리의 가중 버전은 다. 가중치 합은 이고 ✓
연결정도와 강도는 순위가 다르다. 로는 S3, S5가 3으로 공동 1위지만, 로는 S1, S5가 6으로 공동 1위다. S3은 친구가 3명이지만 관계가 모두 얇아(2,1,1) 강도가 4에 그치고, S1은 친구가 2명뿐인데 그중 하나가 4라서 강도가 6이다. "친구 수"와 "관계의 총량"은 다른 질문이며, 어느 쪽을 볼지는 연구 목적이 정한다.
8. 가중치의 방향 함정 — 강도 vs 비용 (Strength vs Cost)
여기가 가중 네트워크에서 가장 많이 틀리는 지점이다. 가중치에는 정반대 두 해석이 있다.
| 해석 | 값이 크면 | 거리 계산에서 | 예 |
|---|---|---|---|
| 강도 (strength / tie value) | 더 가깝다 | 그대로 쓰면 틀린다 → 역수 등으로 변환 | 함께 활동한 횟수, 친밀도 점수 |
| 비용 (cost / length) | 더 멀다 | 그대로 쓴다 | 이동 시간, 통신 지연, 요금 |
igraph의 distances(g, weights=...)는 가중치를 항상 "비용"으로 본다.
즉 값이 클수록 멀다고 계산한다. 우리 는 "함께 활동한 횟수" = 강도이므로
그대로 넣으면 친할수록 멀다는 거꾸로 된 결과가 나온다.
8-1. 실제로 무슨 일이 벌어지는가 — (What Actually Happens)
S1과 S2는 가중치 4로 학급에서 가장 강한 관계다. 두 해석으로 각각 최단거리를 손 계산한다. S1에서 S2로 가는 길은 두 가지뿐이다.
| 경로 | 걸음 | 비용 해석 ( 그대로) | 강도 해석 () |
|---|---|---|---|
| S1–S2 직접 | 1 | ||
| S1–S3–S2 우회 | 2 | ||
| 최소 | 3 — 우회가 더 짧다(S1→S3→S2) | 0.25 — 직접 연결(S1→S2) | |
비용 해석의 결과가 왜 이상한가. "가장 친한 짝을 건너뛰고 제3자를 거쳐 가는 것이 더 가깝다"는 결론이 나온다. 관계 강도 데이터에서는 말이 되지 않는다. 반면 역수를 취하면 강한 관계가 짧은 거리가 되어 직접 연결이 최단이 된다 — 이것이 타당한 답이다.
8-2. 변환 방법과 주의 (Conversion Methods and Caveats)
| 변환 | 식 | 특징 |
|---|---|---|
| 역수 (inverse) | 가장 흔한 방법. tnet·igraph 예제의 표준 | |
| 최대값에서 빼기 | 간격을 유지하고 싶을 때. 이므로 | |
| 이진화 (dichotomize) | if | 가중치를 버리고 0/1로 — 문턱 선택이 결과를 좌우 |
가중 거리와 무가중 거리를 같은 표에 놓고 비교하지 말 것. 로 계산한 과 무가중 (걸음 수)는 단위가 다른 값이다 — 앞은 "저항의 합", 뒤는 "사람 수". 크기를 비교하는 대신 순위나 어느 경로가 선택되었는지를 비교해야 한다.
9. R 검증 (Verification in R)
library(igraph)
# 엣지리스트로 입력하는 방법 (행렬보다 타이핑이 적다)
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"))
g <- graph_from_edgelist(el, directed = FALSE)
U <- as_adjacency_matrix(g, sparse = FALSE)
all(U == t(U)) # TRUE ← 대칭
rowSums(U) # 2 2 3 2 3 2 2
all(rowSums(U) == colSums(U)) # TRUE
sum(U) / 2 # 8 ← 악수 정리
sum(U[upper.tri(U)]) # 8 ← 상삼각만 세기
edge_density(g) # 0.3809524 = 8/21
mean(rowSums(U)) # 2.285714 = 16/7
U2 <- U %*% U; U3 <- U2 %*% U
diag(U2) # 2 2 3 2 3 2 2 ← 연결정도와 동일 (§5)
diag(U3) # 2 2 2 0 2 2 2 ← S4만 0 (§6)
sum(diag(U3)) / 6 # 2 ← 삼각형 2개
count_triangles(g) # 1 1 1 0 1 1 1 ← diag(U3)/2와 동일
mean_distance(g) # 2.190476 diameter(g) → 4
가중 네트워크:
# mode="undirected", weighted=TRUE 두 인자가 함께 필요하다
gw <- graph_from_adjacency_matrix(W, mode = "undirected", weighted = TRUE)
E(gw)$weight # 4 2 1 1 1 3 2 2
strength(gw) # 6 5 4 2 6 5 4 ← rowSums(W)와 동일
sum(strength(gw)) # 32 = 2 * sum(E(gw)$weight)
# 가중치를 '비용'으로 쓴 경우 — 잘못된 해석
distances(gw)["S1", "S2"] # 3
shortest_paths(gw, "S1", "S2")$vpath[[1]] # S1 S3 S2 ← 우회!
# 가중치를 '강도'로 쓴 경우 — 역수 변환 후
gi <- gw; E(gi)$weight <- 1 / E(gw)$weight
distances(gi)["S1", "S2"] # 0.25
shortest_paths(gi, "S1", "S2")$vpath[[1]] # S1 S2 ← 직접 ✓
distances(gi)["S1", "S7"] # 3
shortest_paths(gi, "S1", "S7")$vpath[[1]] # S1 S3 S4 S5 S7
weighted=TRUE를 빼면 가중치가 조용히 사라진다.
graph_from_adjacency_matrix(W, mode="undirected")만 쓰면
0이 아닌 값을 모두 1로 취급해(또는 값만큼 중복 엣지를 만들어) 가중치 정보를 잃는다.
또한 distances()는 그래프에 weight 속성이 있으면
말없이 그것을 쓴다 — 걸음 수를 원하면 distances(gw, weights = NA)로 명시해야 한다.
10. 교실 해석 (Classroom Interpretation)
① 문항이 방향을 결정한다. "함께 활동한 친구"는 사실이라 무방향이고, "같이 놀고 싶은 친구"는 희망이라 방향이 있다. 무방향 데이터에서는 짝사랑·일방 지명을 아예 볼 수 없으므로, 소외 학생을 찾는 것이 목적이라면 방향이 있는 문항을 써야 한다. 반대로 관계의 실재를 확인하려면 무방향 문항이 신뢰도가 높다.
② S4는 "연결은 적지만 자리는 중요한" 학생이다. 연결정도 2(최저 tie), 삼각형 0, 강도 2(최저) — 어떤 개별 지표로도 눈에 띄지 않는다. 그런데 S4를 빼면 학급이 두 조각이 된다. 지표 하나로 학생을 판단하면 이런 학생을 놓친다. 2단계에서 매개 중심성이 S4를 1위로 뽑아내는 것을 확인할 것이다. → 단원 2-3
③ 삼각형이 0인 학생은 "친구들끼리 서로 모르는" 학생이다. S4의 두 이웃 S3, S5는 서로 아무 관계가 없다. 이런 학생은 정보를 양쪽에 옮기는 이점을 갖는 동시에, 어느 무리에도 안정적으로 속하지 못하는 위험도 안는다. 반면 S1, S2, S3은 서로 삼각형을 이루므로 관계가 서로를 지지한다. 모둠 편성 때 "이 학생의 친구들끼리도 친한가"를 함께 보는 근거가 된다.
④ 강도를 재는 문항은 조심스럽게 설계해야 한다. "몇 번 함께 활동했나"는 학생이 기억으로 답하므로 오차가 크고, 활동 기회가 많은 모둠에 속한 학생의 값이 자동으로 커진다. S1의 강도 6은 "S2와 매우 친함"일 수도 있고 "S2와 같은 모둠이 오래 유지됨"일 수도 있다 — 구조가 만든 값인지 관계가 만든 값인지 구분해야 한다.
⑤ 가중치 방향 함정의 교실 버전. "친할수록 값이 크다"는 데이터를 그대로 최단거리 계산에 넣으면 가장 친한 짝이 가장 먼 사이로 계산된다(§8-1의 ). 소식 확산 속도나 접근성을 논할 때 이 실수를 하면 결론이 완전히 뒤집히므로, 분석 보고서에는 항상 "가중치를 강도로 보았고 로 변환했다"를 명시해야 한다.
11. 연습문제 (Exercises)
문제 1. S4와 S6이 새로 모둠 활동을 함께 했다고 하자( 추가). 다음을 각각 손으로 구하시오. ① 새 연결정도 일곱 개와 그 합 ② 엣지 수와 밀도 ③ 새 에서 변하는 학생 세 명과 각자의 삼각형 수, 그리고 전체 삼각형 수 ④ 평균 측지거리 (힌트: 거리행렬에서 줄어드는 칸은 S6·S7이 왼쪽 삼각형에 가까워지는 칸들이다. 원래 상삼각 거리 합은 46이었다.)
문제 2. 가중 네트워크 에서 ① S3과 S5는 연결정도가 둘 다 3인데 강도는 4와 6이다. 이 차이가 무엇을 뜻하는지 각자의 관계 세 개를 나열해 설명하시오. ② S1()과 S5() 중 "관계에 쓰는 시간이 더 집중되어 있는" 학생은 누구이며 어떤 계산으로 그렇게 말할 수 있는가? ③ 만약 학급 안내를 빨리 퍼뜨리는 것이 목표라면 와 중 어느 쪽을 봐야 하는가? 그리고 §8의 함정과 어떻게 연결되는가?
먼저 스스로 풀고 §12 해설과 맞춰 볼 것.
12. 연습문제 해설과 답 (Solutions)
12-1. 문제 1 — S4–S6 관계를 추가하면 (Adding a Second Bridge)
① 연결정도. 한 쌍이 두 칸을 채우므로 두 학생의 연결정도가 각각 1 늘어난다. 바뀐 행만 다시 전개한다:
| 학생 | 전개 | 새 | 변화 |
|---|---|---|---|
| S1 | 2 | — | |
| S2 | 2 | — | |
| S3 | 3 | — | |
| S4 | 3 | 2 → 3 | |
| S5 | 3 | — | |
| S6 | 3 | 2 → 3 | |
| S7 | 2 | — | |
| 합 | 18 | 16 → 18 () |
② 엣지 수와 밀도.
분모 21은 학생 수가 그대로이므로 변하지 않는다(단원 1-5 §7). 검산: , ✓
③ 삼각형. 새 선 S4–S6이 만드는 삼각형을 먼저 찾는다. S4의 이웃 {S3, S5, S6}과 S6의 이웃 {S4, S5, S7}의 공통 원소는 S5 하나다 → 새 삼각형 S4–S5–S6 1개. 따라서 S4, S5, S6 세 명의 값만 바뀐다:
| 학생 | 이전 | 새 값 | ÷2 = 삼각형 수 | 어떤 삼각형인가 |
|---|---|---|---|---|
| S1 | 2 | 2 | 1 | S1–S2–S3 |
| S2 | 2 | 2 | 1 | S1–S2–S3 |
| S3 | 2 | 2 | 1 | S1–S2–S3 |
| S4 | 0 | 2 | 1 | S4–S5–S6 — 처음으로 삼각형에 속함 |
| S5 | 2 | 4 | 2 | S5–S6–S7, S4–S5–S6 |
| S6 | 2 | 4 | 2 | S5–S6–S7, S4–S5–S6 |
| S7 | 2 | 2 | 1 | S5–S6–S7 |
| 합 | 12 | 18 | 개 (2개 → 3개) | |
④ 평균 측지거리. 새 선으로 짧아지는 칸만 찾아 46에서 뺀다. S6이 S4에 1걸음으로 붙었으므로, 왼쪽(S1,S2,S3)에서 S6·S7로 가는 길이 짧아진다:
| 칸 | 이전 | 새 값 | 새 경로 | 감소 |
|---|---|---|---|---|
| 4 | 3 | S1–S3–S4–S6 | −1 | |
| 4 | 3 | S2–S3–S4–S6 | −1 | |
| 3 | 2 | S3–S4–S6 | −1 | |
| 2 | 1 | S4–S6 (직접) | −1 | |
| S7로 가는 칸은? : 이전 4, 새 경로 S1–S3–S4–S6–S7도 4 → 변화 없음 | 0 | |||
| 합계 감소 | −4 | |||
답 ① , 합 18 ② , 밀도 ③ 변하는 학생은 S4(0→2), S5(2→4), S6(2→4); 삼각형 수는 각각 1, 2, 2; 전체 삼각형 2개 → 3개 ④ 평균 측지거리 (이전 2.1905에서 감소)
지름은 그대로 4다. S1·S2에서 S7까지가 여전히 4걸음이기 때문이다. "밀도·평균거리·삼각형은 모두 개선됐는데 지름은 안 움직였다" — 요약 지표 하나만 보면 변화의 성격을 오해한다는 것을 다시 확인할 수 있다.
12-2. 문제 2 — 연결정도와 강도의 차이 (Degree vs Strength)
① S3과 S5. 각자의 관계 세 개를 값과 함께 나열한다:
| 학생 | 관계 1 | 관계 2 | 관계 3 | 평균 강도 | ||
|---|---|---|---|---|---|---|
| S3 | S1 (2) | S2 (1) | S4 (1) | 3 | 4 | |
| S5 | S4 (1) | S6 (3) | S7 (2) | 3 | 6 |
답 ① 친구 수는 같지만 관계의 두께가 다르다. S3의 세 관계는 (2,1,1)로 모두 얇고, S5의 세 관계는 (1,3,2)로 더 두껍다. 는 "몇 명과 이어졌나"를 재고, 는 "얼마나 많이 이어졌나"를 잰다. S3은 넓지만 얕은 관계, S5는 같은 넓이에 더 두꺼운 관계를 가진 학생이다.
② S1과 S5. 강도는 둘 다 6인데 연결정도가 2와 3이다. 나눠 보면:
| 학생 | 관계 | 가장 두꺼운 관계가 차지하는 비율 | |||
|---|---|---|---|---|---|
| S1 | S2 (4), S3 (2) | 2 | 6 | 3.0 | |
| S5 | S4 (1), S6 (3), S7 (2) | 3 | 6 | 2.0 |
답 ② S1이다. 근거는 두 가지 계산이다: (ㄱ) 관계당 평균 강도 가 S1은 3.0, S5는 2.0으로 S1이 크다. (ㄴ) 가장 두꺼운 관계 하나가 전체 강도에서 차지하는 비율이 S1은 66.7%(S2에게), S5는 50%(S6에게)로 S1이 더 쏠려 있다. 즉 S1은 같은 관계 총량을 더 적은 사람에게 집중해 쓰고 있다.
③ 안내를 빨리 퍼뜨리려면.
답 ③ 연결정도 를 봐야 한다. 소식은 사람 수만큼 퍼지지, 함께 활동한 횟수만큼 퍼지지 않는다. S1에게 말하면 2명에게 닿고, S5나 S3에게 말하면 3명에게 닿는다 — 강도가 같은 6이어도 도달 인원은 S5가 더 많다.
§8과의 연결. 여기서 강도를 그대로 "빠르기"로 쓰고 싶은 유혹이 §8의 함정과 같은 뿌리다. 강도가 큰 것은 "깊다"는 뜻이고 "넓다"는 뜻이 아니다. 확산 속도를 논할 때 강도를 쓰려면 반드시 같은 변환을 거쳐 "저항이 작다 = 빠르다"로 방향을 맞춘 뒤 써야 한다. 정리하면 — 넓이는 , 깊이는 , 빠르기는 변환된 기반 거리로 재는 것이 안전하다.
# 문제 1
Ux <- U; Ux["S4","S6"] <- 1; Ux["S6","S4"] <- 1
rowSums(Ux) # 2 2 3 3 3 3 2 합 18
sum(Ux)/2 # 9
sum(Ux)/2/21 # 0.4285714
diag(Ux %*% Ux %*% Ux) # 2 2 2 2 4 4 2
sum(diag(Ux %*% Ux %*% Ux))/6 # 3 ← 삼각형 3개
gx <- graph_from_adjacency_matrix(Ux, mode="undirected")
mean_distance(gx) # 2 ← 42/21
diameter(gx) # 4 ← 그대로
count_triangles(gx) # 1 1 1 1 2 2 1
# 문제 2
igraph::degree(gw) # 2 2 3 2 3 2 2
strength(gw) # 6 5 4 2 6 5 4
round(strength(gw) / igraph::degree(gw), 2)
# S1 S2 S3 S4 S5 S6 S7
# 3.00 2.50 1.33 1.00 2.00 2.50 2.00 ← S1이 가장 크다
W["S1", ] / strength(gw)["S1"] # S2에게 0.667, S3에게 0.333
다음 단원 — 1-9: 실전 — Knoke 데이터 입력과 기초 지표 종합.
교재의 실제 데이터(10개 조직의 정보 교환 네트워크)를 파일에서 읽어
1-1~1-8에서 배운 지표를 한 번에 적용해 본다. 1단계의 마무리다.
· 이 문서: notes/08_단원1-8_무방향_가중_네트워크.html