내 친구들은 왜 나보다 친구가 많을까
주변을 둘러보면 내 친구들은 대체로 나보다 아는 사람이 많은 것 같습니다. "내가 사교적이지 못해서일까?" 하고 생각하기 쉽습니다. 하지만 이런 관계망에서는 거의 누구에게나 그렇게 보일 수밖에 없습니다. 사람 수, 인기인 쏠림, 평균 친구 수를 바꿔 가며 확인해 봅니다.
모델은 이렇게 움직입니다
- 사람이 한 명씩 들어옵니다. 처음 몇 명은 서로 모두 친구이고, 이후 들어오는 사람은 기존 사람 몇 명과 친구가 됩니다(평균 친구 수의 절반). 그래서 평균 친구 수는 슬라이더 값 근처에서 정해집니다.
- 누구와 친구가 될지는 인기인 쏠림(허브)이 정합니다. 쏠림이 0%이면 아무나 같은 확률로 고르고, 100%이면 이미 친구가 많은 사람일수록 더 잘 뽑힙니다("인기 있는 사람에게 더 몰린다").
- 각 사람마다 내 친구 수와 내 친구들이 가진 친구 수의 평균을 계산해 비교합니다. 친구들의 평균이 내 친구 수보다 크면 "친구들이 더 많은" 사람입니다.
- 재생하면 사람을 한 명 무작위로 뽑고(검은 고리), 다른 무작위 사람이 말해 준 친구를 한 명 뽑아(금색 점선 고리) 두 평균을 비교하는 표본 추출을 반복합니다.
직접 돌려보기
① 친구 관계망
점은 사람, 선은 친구 관계이고 점이 클수록 친구가 많습니다. 사람을 누르면 그 사람의 친구가 금색으로 표시되고, 아래에 "내 친구 수"와 "친구들의 평균"이 나옵니다. 재생하면 무작위 표본을 뽑아 두 평균이 벌어지는 모습을 보여 줍니다.
② 입체로 본 관계망 3D
같은 관계망을 3차원 공간에 다시 펼쳤습니다. 점이 크고 금빛일수록 친구가 많고, 빛나는 점이 허브입니다. 몇 초마다 무작위로 한 사람(빨간 고리)을 뽑아 그 친구들에게 금색 선을 뻗습니다. 대부분은 친구가 적은 평범한 사람이 뽑히지만, 그 선은 자꾸 빛나는 허브로 이어집니다. "높이 = 친구 수로 보기"를 누르면 친구가 많을수록 위로 올라가, 선이 대부분 위쪽(나보다 친구가 많은 사람)으로 뻗는 것을 볼 수 있습니다.
드래그로 돌리기 · 휠이나 두 손가락으로 확대 · 위 ① 그림에서 사람을 누르면 여기서도 그 사람을 보여 줍니다
③ 내 친구들은 나보다 친구가 많을까
사람마다 "친구들의 평균 친구 수"에서 "내 친구 수"를 뺀 값을 모았어요. 0보다 오른쪽(빨강)이 친구들이 나보다 친구가 더 많은 사람입니다.
④ 사람마다 비교하기
가로는 내 친구 수, 세로는 내 친구들의 평균입니다(숫자가 커질수록 간격이 좁아지는 눈금). 점선 위의 점은 친구들이 더 많은 사람, 아래는 내가 더 많은 사람입니다. 친구가 적은 사람일수록 위쪽으로 많이 벗어납니다.
⑤ 인기인에게 더 몰릴수록
가로는 인기인 쏠림, 세로는 "친구들이 더 많은 사람"의 비율입니다. 선마다 평균 친구 수가 다르고(파랑 4명, 초록 8명, 보라 12명), 점선이 절반입니다.
이 결과가 말하는 것, 말하지 않는 것
말하는 것:
- 허브가 적은 관계망에서도 친구들이 더 많아 보이는 사람이 많지만(71.3%), 허브가 몰린 관계망에선 더 많아져요(85.4%). 친구 수가 사람마다 다르기만 해도 생기는 착시예요.
- 친구 목록을 훑으면 인기 있는 사람은 여러 목록에 한 번씩 나와요. 그래서 내 친구는 평균 5.92명인데, 친구들의 친구는 평균 10.17명으로 보여요.
- 그렇다면 친구들이 더 인기 있어 보일 땐 '사람'이 아니라 '친구 목록'으로 센 평균이란 걸 떠올리면 돼요. 아무나 뽑으면 평균 5.92명, 친구로 소개받은 사람은 10.17명이었어요.
상세 설명
말하는 것: 사람 150명, 평균 친구 6명, 허브 쏠림 80%의 서로 다른 관계망 300개를 만들면 한 사람의 평균 친구 수는 5.92명인데, 그 친구들의 평균 친구 수는 10.17명으로 1.72배였습니다. 사람마다 "친구들의 평균"을 구해 비교하면 82.6%가 친구들이 더 많은 쪽이었고(관계망마다 75.3%~88.7%), 내가 더 많은 사람은 16.8%였습니다. 이유는 인기 있는 사람이 친구 목록마다 한 번씩 등장하기 때문입니다. 관계망 하나에서 친구 수 상위 10%(15명)가 모든 친구 목록 칸의 29.6%를 차지했습니다. 한 사람을 무작위로 뽑으면 평균 5.92명이지만 그 사람이 말해 준 친구를 뽑으면 평균 10.17명이었습니다. 허브 쏠림이 0%일 때도 71.3%, 100%일 때는 85.4%가 친구들이 더 많았고(평균 친구 6명), 쏠림이 클수록 격차가 커졌습니다. 친구 관계를 단순히 아무나 연결해도 이 결과는 사라지지 않았습니다. 사람마다 친구 수가 다르기만 하면 생깁니다.
말하지 않는 것:
- 내가 인기가 없다거나 친구 많은 사람이 더 행복하다는 뜻은 아니에요. 71.3%와 85.4%는 이 모델의 실험 결과이고 모든 관계망에서 성립하는 법칙이 아니에요.
- 모임·동네 같은 묶음 구조와 외톨이가 빠져 있어요. 실제 친구 수와 관계망은 따로 조사해야 확인할 수 있어요.
상세 설명
말하지 않는 것: 이것은 "친구가 많은 사람이 더 행복하다"거나 "내가 인기가 없다"는 뜻이 아니고, 실제 친구 수나 인기를 측정한 것도 아닙니다. 이 모델의 관계망은 이 프로젝트가 단순화해 만든 것으로, 모두가 최소한 몇 명과 친구이고(외톨이가 없음), 실제 사회의 모임·동네·학교 같은 묶음 구조는 없습니다. 보장되는 것은 평균(친구들의 평균 ≥ 내 친구 수의 평균)이고, "다수가 친구들이 더 많다"는 것은 이 모델에서 실험으로 나온 결과이지 모든 관계망에서 성립하는 법칙이 아닙니다. 허브 쏠림 0%는 완전한 무작위 관계망이 아니라 "들어오는 순서대로 아무나 고르는" 규칙이라, 먼저 온 사람이 친구를 더 많이 얻는 효과가 남아 있습니다.
이론적 근거와 구현 메모
- 모델의 뿌리: Scott L. Feld가 1991년 「Why your friends have more friends than you do」(American Journal of Sociology)에서 정리한 "친구의 역설"입니다. 친구 목록을 훑으면 친구가 많은 사람이 그만큼 더 자주 나오기 때문에, 친구들의 친구 수는 평균적으로 전체 평균 이상이 됩니다. 이 페이지의 관계망 규칙에는 선호 연결(Barabási와 Albert, 1999)의 아이디어를 썼습니다.
- 핵심 가정과 수식: 친구 목록 칸 하나를 무작위로 골랐을 때 그 사람의 친구 수 평균은
⟨k²⟩/⟨k⟩ = ⟨k⟩ + Var(k)/⟨k⟩이라서, 친구 수가 모두 같지 않으면 평균 ⟨k⟩보다 큽니다. 허브 쏠림 슬라이더가 클수록 Var(k)가 커집니다. 사람별 "친구들의 평균"을 다시 평균 낸 값도 친구 관계 하나마다 (이웃의 친구 수 ÷ 내 친구 수) + (내 친구 수 ÷ 이웃의 친구 수) ≥ 2이므로 항상 ⟨k⟩ 이상입니다. - 이 프로젝트의 단순화: 실제 사회 조사 자료가 아니라 이 프로젝트가 만든 가상 관계망입니다. 새로 온 사람이 기존 사람 중 균등하게, 또는 친구 수에 비례해 친구를 고르는 규칙이며, 외톨이도 모임·동네 같은 묶음 구조도 없습니다. 허브 쏠림 0%도 완전 무작위가 아니라 먼저 온 사람이 유리한 규칙입니다. 사람 수 150, 허브 80%, 평균 친구 6은 이 프로젝트가 정한 기본값입니다.
- 이론값과 시뮬레이션: 기본값 관계망 300개 평균에서 평균 친구 수는 5.92, ⟨k²⟩/⟨k⟩는 9.70, 사람별 친구들 평균의 평균은 10.17로 둘 다 5.92보다 컸고, 300개 모두에서 (친구들 평균 − 평균 친구 수)의 최솟값이 2.81(≥ 0)이었습니다. 관계망 하나에서 친구 목록 전체의 평균은 식값 ⟨k²⟩/⟨k⟩와 같았습니다(10.0856). 친구들이 더 많은 사람의 비율은 허브 0%에서 71.3%, 100%에서 85.4%였고, 이 비율은 법칙이 아니라 이 모델의 실험 결과입니다.
- 더 읽을거리: Feld (1991), Why your friends have more friends than you do, American Journal of Sociology / Barabási & Albert (1999), Emergence of scaling in random networks, Science / Christakis & Fowler (2010), Social network sensors for early detection of contagious outbreaks, PLoS ONE (이 성질을 감염병 조기 감지에 쓰자는 제안).
- 재생의 표본 추출은 "무작위로 고른 사람이 말해 준 친구"를 뽑는 방식이라 사람별 친구들 평균의 평균(10.17명)에 수렴합니다.
- 관계망 배치는 이웃은 끌어당기고 모두는 밀어내는 힘 방향 알고리즘(Fruchterman-Reingold)으로 미리 계산합니다. 검증은
node tools/validate-friendship.js로 할 수 있습니다.