nodematch 동질성 검정
SNA 이론 · 단계별 학습 차례

단원 5-4Homophily via nodematch

nodematch 동질성 검정

SNA 이론 · 단계별 학습STAGED+ 스터디

1. 오늘의 질문 (The Question)

5-1부터 5-3까지 만든 모형에는 사람이 누구인지가 없었다. 정점은 번호일 뿐이고, 통계량은 간선 수·삼각형 수처럼 구조만 셌다. 그런데 교실에서 우리가 정말 묻고 싶은 것은 구조가 아니라 이것이다.

“남학생은 남학생끼리, 여학생은 여학생끼리 친한가? 그렇다면 몇 배 그런가?”

3-7에서 이 질문에 E-I 지수로 답했다. 10명 학급에서 EI=0.4667EI=-0.4667이 나왔고, 음수니까 동질성이라고 읽었다. 그런데 3-7 §8~9에서 곧바로 두 가지 함정을 만났다.

  • 함정 ① — 집단 크기가 E-I를 좌우한다. 남학생이 6명이면 남–남 쌍이 15개나 되니 같은 성별 간선이 저절로 많아진다. 0.4667-0.4667 중 얼마가 “선호”이고 얼마가 “기회”인가?
  • 함정 ② — E-I에는 표준오차가 없다. 0.4667-0.4667이 우연일 수 있는지 판단할 방법이 없다.

오늘 배울 nodematch 항은 이 두 함정을 동시에 없앤다. 게다가 이 모형은 5-3에서 걱정했던 문제(MPLE ≠ MLE)가 아예 발생하지 않는다. 왜인지도 오늘 정확히 밝힌다.

5-3에서 만든 도구는 하나였다 — 변화 통계량 δij\boldsymbol\delta_{ij}를 세면 계수를 읽을 수 있다. 오늘은 그 도구를 학생의 속성에 쓴다.

2. 정의 — nodematch 통계량과 그 변화 통계량 (Definition)

각 학생 ii에게 속성값 xix_i가 붙어 있다고 하자 (성별, 학년, 모둠 번호, …). 이것은 망이 아니라 주어진 자료다. 관측 전에 이미 정해져 있고, 모형은 이것을 설명하려 하지 않는다.

nodematch 통계량은 양 끝의 속성이 같은 간선의 수다.

gmatch(y)  =  i<jA[i,j]  1{xi=xj} g_{\text{match}}(y)\;=\;\sum_{i<j} A[i,j]\;\mathbb 1\{x_i=x_j\}

여기서 1{}\mathbb 1\{\cdot\}지시함수(indicator): 괄호 안이 참이면 1, 거짓이면 0. 즉 같은 성별끼리 이어진 간선만 세는 것이다. 3-7의 용어로는 ILIL(내부 간선 수, internal links)과 똑같다.

모형은 5-1의 꼴 그대로다.

P(Y=y)  =  1κexp(θ1m(y)+θ2gmatch(y)) P(Y=y)\;=\;\frac{1}{\kappa}\exp\bigl(\theta_1\,m(y)+\theta_2\,g_{\text{match}}(y)\bigr)

변화 통계량 (The Change Statistic)

5-3의 정의를 그대로 적용한다. yij+y^{+}_{ij}A[i,j]=1A[i,j]=1로 고정한 망, yijy^{-}_{ij}는 0으로 고정한 망.

δijmatch(y)  =  gmatch(yij+)gmatch(yij) \delta^{\text{match}}_{ij}(y)\;=\;g_{\text{match}}(y^{+}_{ij})-g_{\text{match}}(y^{-}_{ij})

k<lA[k,l]1{xk=xl}\sum_{k<l} A[k,l]\mathbb 1\{x_k=x_l\}에서 (i,j)(i,j) 항만 다르고 나머지 항은 전부 똑같으므로, 차이는 그 한 항뿐이다.

δijmatch=11{xi=xj}yij+의 (i,j)01{xi=xj}yij의 (i,j)=  1{xi=xj} \delta^{\text{match}}_{ij} =\underbrace{1\cdot\mathbb 1\{x_i=x_j\}}_{y^{+}_{ij}\text{의 }(i,j)\text{항}} -\underbrace{0\cdot\mathbb 1\{x_i=x_j\}}_{y^{-}_{ij}\text{의 }(i,j)\text{항}} =\;\mathbb 1\{x_i=x_j\}   δijmatch=1{xi=xj}={1xi=xj (같은 성별)0xixj (다른 성별)   \boxed{\;\delta^{\text{match}}_{ij}=\mathbb 1\{x_i=x_j\}= \begin{cases}1 & x_i=x_j\ \text{(같은 성별)}\\[2pt] 0 & x_i\neq x_j\ \text{(다른 성별)}\end{cases}\;}
이것이 오늘의 핵심이다. δijtriangle\delta^{\text{triangle}}_{ij}망을 봐야 알 수 있었다 (공통 친구를 세야 하니까). 그런데 δijmatch\delta^{\text{match}}_{ij}망을 아예 안 본다. 학생 명렬표만 있으면 561쌍 전부의 δ\delta를 지금 당장 적을 수 있다.

5-3 §9의 조건을 다시 보자. “δij\delta_{ij}yijcy^c_{ij}(나머지 칸 전체)에 의존하지 않으면 쌍 독립(dyadic independence)이고, 그때 MPLE = MLE다.” δijmatch\delta^{\text{match}}_{ij}는 망을 전혀 안 보므로 당연히 의존하지 않는다. 따라서 이 모형은 쌍 독립이다. 5-3에서 걱정한 문제가 오늘은 발생하지 않는다.

5-3에서 확인한 대로 δijedge=1\delta^{\text{edge}}_{ij}=1(항상)이므로, 조건부 로그오즈는

logitP(A[i,j]=1yijc)=θ11+θ21{xi=xj}={θ1+θ2같은 성별θ1다른 성별 \operatorname{logit}P\bigl(A[i,j]=1\mid y^c_{ij}\bigr) =\theta_1\cdot 1+\theta_2\cdot\mathbb 1\{x_i=x_j\} =\begin{cases}\theta_1+\theta_2 & \text{같은 성별}\\ \theta_1 & \text{다른 성별}\end{cases}

쌍마다 값이 딱 두 가지다. 그러니 이 모형은 사실상 “동전 두 개”짜리 모형이다 — 같은 성별용 동전 하나, 다른 성별용 동전 하나.

3. 손 계산 ① — 6명 미니 학급, 15쌍 전부 (All 15 Dyads by Hand)

먼저 손으로 끝까지 갈 수 있는 크기로 시작한다.

6명 학급. 여학생 {1,2,3}\{1,2,3\}, 남학생 {4,5,6}\{4,5,6\}. 간선 6개: 1–2 1–3 2–3 4–5 5–6 3–4

6명 미니 학급과 10명 학급 — 같은 성별 간선은 회색 실선, 교차 간선은 빨강 점선
그림 59. 왼쪽이 이 절의 6명 미니 학급, 오른쪽이 §7의 3-7 10명 학급. 파랑이 남학생, 분홍이 여학생. 회색 실선이 같은 성별 간선, 빨강 점선이 교차 간선.

(62)=15\binom62=15쌍을 전부 적는다. 0인 항도 생략하지 않는다.

#(i,j)(i,j)xi,  xjx_i,\;x_jδijmatch=1{xi=xj}\delta^{\text{match}}_{ij}=\mathbb 1\{x_i=x_j\}A[i,j]A[i,j]기여 A[i,j]δA[i,j]\cdot\delta
1(1,2)여, 여111×1=11\times1=1
2(1,3)여, 여111×1=11\times1=1
3(1,4)여, 남000×0=00\times0=0
4(1,5)여, 남000×0=00\times0=0
5(1,6)여, 남000×0=00\times0=0
6(2,3)여, 여111×1=11\times1=1
7(2,4)여, 남000×0=00\times0=0
8(2,5)여, 남000×0=00\times0=0
9(2,6)여, 남000×0=00\times0=0
10(3,4)여, 남011×0=01\times0=0 ← 유일한 교차 간선
11(3,5)여, 남000×0=00\times0=0
12(3,6)여, 남000×0=00\times0=0
13(4,5)남, 남111×1=11\times1=1
14(4,6)남, 남100×1=00\times1=0 ← 유일한 같은 성별 비간선
15(5,6)남, 남111×1=11\times1=1
합계δ=6\sum\delta=6m=6m=6gmatch=1+1+0+0+0+1+0+0+0+0+0+0+1+0+1=5g_{\text{match}}=1{+}1{+}0{+}0{+}0{+}1{+}0{+}0{+}0{+}0{+}0{+}0{+}1{+}0{+}1=5

세 가지를 얻었다.

m(y)=6,gmatch(y)=5,i<jδijmatch=6 m(y)=6,\qquad g_{\text{match}}(y)=5,\qquad \sum_{i<j}\delta^{\text{match}}_{ij}=6
마지막 값 i<jδijmatch=6\sum_{i<j}\delta^{\text{match}}_{ij}=6의 의미가 중요하다. 이것은 간선이 있든 없든 같은 성별인 쌍의 개수, 즉 3-7의 내부 쌍 수다. (32)+(32)=3+3=6\binom32+\binom32=3+3=6

그래서 15쌍이 다음 2×2 표로 완전히 정리된다. 오늘의 모형이 아는 것은 이 네 숫자뿐이다.

간선 있음 A[i,j]=1A[i,j]=1간선 없음 A[i,j]=0A[i,j]=0쌍 합계
같은 성별 δ=1\delta=1m=5m_{\text{같}}=51N=6N_{\text{같}}=6
다른 성별 δ=0\delta=0m=1m_{\text{다}}=18N=9N_{\text{다}}=9
합계m=6m=69N=15N=15
기호를 고정해 두자. 앞으로 계속 쓴다.
NN_{\text{같}} = 같은 속성인 의 수 (간선 유무 무관) · NN_{\text{다}} = 다른 속성인 쌍의 수
mm_{\text{같}} = 같은 속성인 간선의 수 (= gmatchg_{\text{match}} = 3-7의 ILIL) · mm_{\text{다}} = 교차 간선의 수 (= 3-7의 ELEL)
N+N=N=(n2)N_{\text{같}}+N_{\text{다}}=N=\binom n2, m+m=m\quad m_{\text{같}}+m_{\text{다}}=m

4. 손 계산 ② — κ\kappa가 다시 닫힌 식이 된다 (The Normalizing Constant Closes Again)

5-2에서 κ\kappa25612^{561}개를 더해야 해서 손도 컴퓨터도 못 댄다고 했다. 간선만 있는 모형에서는 우연히 닫힌 식 (1+eθ1)N(1+e^{\theta_1})^N이 나왔지만, 삼각형 항을 넣자마자 무너졌다. 오늘은 왜 어떤 모형은 닫히고 어떤 모형은 안 닫히는지를 정확히 본다.

지수부를 쌍별로 쪼개 쓴다. m(y)=i<jA[i,j]m(y)=\sum_{i<j}A[i,j]이고 gmatch(y)=i<jA[i,j]δijmatchg_{\text{match}}(y)=\sum_{i<j}A[i,j]\delta^{\text{match}}_{ij}이므로,

θ1m(y)+θ2gmatch(y)=i<j(θ1+θ2δijmatch)A[i,j] \theta_1 m(y)+\theta_2 g_{\text{match}}(y) =\sum_{i<j}\Bigl(\theta_1+\theta_2\,\delta^{\text{match}}_{ij}\Bigr)A[i,j]

여기가 결정적이다. δijmatch\delta^{\text{match}}_{ij}망에 의존하지 않는 상수이므로, 이 식은 “각 칸의 값 A[i,j]A[i,j]에 그 칸 고유의 상수를 곱해서 더한 것”이다. 따라서 지수함수가 곱으로 쪼개진다.

exp(i<j(θ1+θ2δij)A[i,j])=i<jexp((θ1+θ2δij)A[i,j]) \exp\Bigl(\sum_{i<j}(\theta_1+\theta_2\delta_{ij})A[i,j]\Bigr) =\prod_{i<j}\exp\bigl((\theta_1+\theta_2\delta_{ij})A[i,j]\bigr)

이제 κ\kappa를 계산한다. 모든 망 yy를 훑는다는 것은 각 칸을 독립적으로 0/1로 정하는 것과 같으므로, 합의 곱 = 곱의 합 규칙(분배법칙)으로 순서를 바꿀 수 있다.

단계근거
κ=yi<jexp((θ1+θ2δij)A[i,j])\kappa=\sum_{y}\prod_{i<j}\exp\bigl((\theta_1+\theta_2\delta_{ij})A[i,j]\bigr)위의 곱 형태를 대입
=i<j a{0,1}exp((θ1+θ2δij)a)=\prod_{i<j}\ \sum_{a\in\{0,1\}}\exp\bigl((\theta_1+\theta_2\delta_{ij})\,a\bigr)분배법칙. δij\delta_{ij}yy에 안 걸려 있어야 가능
=i<j(e0+eθ1+θ2δij)=i<j(1+eθ1+θ2δij)=\prod_{i<j}\bigl(e^{0}+e^{\theta_1+\theta_2\delta_{ij}}\bigr) =\prod_{i<j}\bigl(1+e^{\theta_1+\theta_2\delta_{ij}}\bigr)a=0a=0a=1a=1 두 항을 전개
δij=1\delta_{ij}=1인 쌍이 NN_{\text{같}}개, δij=0\delta_{ij}=0인 쌍이 NN_{\text{다}}같은 인자끼리 모음
  κ(θ1,θ2)=(1+eθ1+θ2)N(1+eθ1)N   \boxed{\;\kappa(\theta_1,\theta_2)=\bigl(1+e^{\theta_1+\theta_2}\bigr)^{N_{\text{같}}} \bigl(1+e^{\theta_1}\bigr)^{N_{\text{다}}}\;}

6명 학급이면 κ=(1+eθ1+θ2)6(1+eθ1)9\kappa=(1+e^{\theta_1+\theta_2})^{6}(1+e^{\theta_1})^{9}. 215=327682^{15}=32768개를 더할 필요가 없다.

검산 두 가지 (Two Sanity Checks)

검산 ① θ1=θ2=0\theta_1=\theta_2=0이면 모든 망이 같은 확률이므로 κ\kappa는 망의 총 개수여야 한다.

κ=(1+e0)6(1+e0)9=2629=215=32768 \kappa=(1+e^0)^{6}(1+e^0)^{9}=2^{6}\cdot 2^{9}=2^{15}=32768 \quad\checkmark

검산 ② θ2=0\theta_2=0이면 5-2의 간선만 모형으로 돌아가야 한다.

κ=(1+eθ1)N(1+eθ1)N=(1+eθ1)N \kappa=(1+e^{\theta_1})^{N_{\text{같}}}(1+e^{\theta_1})^{N_{\text{다}}}=(1+e^{\theta_1})^{N} \quad\checkmark
5-2의 “운”은 운이 아니었다. 닫힌 식이 나오는 조건은 정확히 하나다 — 변화 통계량이 망에 의존하지 않을 것. 간선 항은 δ=1\delta=1로 상수라서 닫혔고, nodematch 항은 δ=1{xi=xj}\delta=\mathbb 1\{x_i=x_j\}로 상수라서 닫힌다. 삼각형 항은 δij=(A2)[i,j]\delta_{ij}=(A^2)[i,j]라 망을 봐야 하므로 ②단계의 분배법칙이 성립하지 않고, 그래서 무너진 것이다.

5. 손 계산 ③ — 정확한 MLE는 2×2 표의 로그 오즈비 (Exact MLE in Closed Form)

κ\kappa를 손에 넣었으니 로그가능도를 그대로 쓸 수 있다.

(θ1,θ2)=θ1m+θ2mNlog(1+eθ1+θ2)Nlog(1+eθ1) \ell(\theta_1,\theta_2)=\theta_1 m+\theta_2 m_{\text{같}} -N_{\text{같}}\log\bigl(1+e^{\theta_1+\theta_2}\bigr)-N_{\text{다}}\log\bigl(1+e^{\theta_1}\bigr)

변수 바꾸기 (reparametrization)

θ1\theta_1θ2\theta_2가 첫 항에 섞여 있어 불편하다. 두 “동전”의 로그오즈를 직접 쓰자.

α=θ1 (다른 성별 쌍의 로그오즈),β=θ1+θ2 (같은 성별 쌍의 로그오즈) \alpha=\theta_1\ \text{(다른 성별 쌍의 로그오즈)},\qquad \beta=\theta_1+\theta_2\ \text{(같은 성별 쌍의 로그오즈)}

첫 두 항을 다시 정리한다. m=m+mm=m_{\text{같}}+m_{\text{다}}이므로

θ1m+θ2m=θ1(m+m)+θ2m=θ1αm+(θ1+θ2)βm \theta_1 m+\theta_2 m_{\text{같}} =\theta_1(m_{\text{같}}+m_{\text{다}})+\theta_2 m_{\text{같}} =\underbrace{\theta_1}_{\alpha} m_{\text{다}}+\underbrace{(\theta_1+\theta_2)}_{\beta} m_{\text{같}} (α,β)=αm+βmNlog(1+eβ)Nlog(1+eα) \ell(\alpha,\beta)=\alpha\,m_{\text{다}}+\beta\,m_{\text{같}} -N_{\text{같}}\log(1+e^{\beta})-N_{\text{다}}\log(1+e^{\alpha})

이제 α\alphaβ\beta완전히 분리됐다. 각각 따로 미분한다. ddulog(1+eu)=eu1+eu\dfrac{d}{du}\log(1+e^{u})=\dfrac{e^u}{1+e^u}를 쓴다.

편미분= 0 으로 놓으면
α=mNeα1+eα\dfrac{\partial\ell}{\partial\alpha}=m_{\text{다}}-N_{\text{다}}\dfrac{e^{\alpha}}{1+e^{\alpha}}eα1+eα=mN\dfrac{e^{\alpha}}{1+e^{\alpha}}=\dfrac{m_{\text{다}}}{N_{\text{다}}}α^=logitmN\hat\alpha=\operatorname{logit}\dfrac{m_{\text{다}}}{N_{\text{다}}}
β=mNeβ1+eβ\dfrac{\partial\ell}{\partial\beta}=m_{\text{같}}-N_{\text{같}}\dfrac{e^{\beta}}{1+e^{\beta}}eβ1+eβ=mN\dfrac{e^{\beta}}{1+e^{\beta}}=\dfrac{m_{\text{같}}}{N_{\text{같}}}β^=logitmN\hat\beta=\operatorname{logit}\dfrac{m_{\text{같}}}{N_{\text{같}}}

말로 하면 이렇다. 적합된 확률은 관측 비율과 정확히 같다. 같은 성별 쌍 중 실제로 친구인 비율, 다른 성별 쌍 중 실제로 친구인 비율 — 그게 답이다. (5-1에서 본 “충분통계량의 기댓값 = 관측값” 원리가 여기서는 두 조각으로 쪼개져 나타난 것이다.)

  θ^1=logmNm,θ^1+θ^2=logmNm,θ^2=logm/(Nm)m/(Nm)오즈비 (odds ratio)   \boxed{\; \hat\theta_1=\log\frac{m_{\text{다}}}{N_{\text{다}}-m_{\text{다}}},\qquad \hat\theta_1+\hat\theta_2=\log\frac{m_{\text{같}}}{N_{\text{같}}-m_{\text{같}}},\qquad \hat\theta_2=\log\underbrace{\frac{m_{\text{같}}/(N_{\text{같}}-m_{\text{같}})} {m_{\text{다}}/(N_{\text{다}}-m_{\text{다}})}}_{\textstyle\text{오즈비 (odds ratio)}}\;}
θ^2\hat\theta_22×2 표의 로그 오즈비다. 그 이상도 이하도 아니다. 분자는 “같은 성별 쌍에서 친구일 오즈”, 분모는 “다른 성별 쌍에서 친구일 오즈”.

6명 학급에 대입 (Applying It to a Class of Six)

§3의 2×2 표에서 m=5, Nm=1, m=1, Nm=8m_{\text{같}}=5,\ N_{\text{같}}-m_{\text{같}}=1,\ m_{\text{다}}=1,\ N_{\text{다}}-m_{\text{다}}=8.

전개
다른 성별 오즈1/81/80.1250.125
같은 성별 오즈5/15/155
θ^1\hat\theta_1log(1/8)=log8\log(1/8)=-\log 82.0794415-2.0794415
θ^1+θ^2\hat\theta_1+\hat\theta_2log5\log 51.60943791.6094379
θ^2\hat\theta_2log5log(1/8)=log(5×8)=log40\log 5-\log(1/8)=\log(5\times 8)=\log 403.68887953.6888795
오즈비 eθ^2e^{\hat\theta_2}5/11/8=5×8\dfrac{5/1}{1/8}=5\times 84040

검산: 1.6094379(2.0794415)=3.68887941.6094379-(-2.0794415)=3.6888794 ✔ 그리고 log40=3.6888795\log 40=3.6888795

표준오차 (Standard Errors)

포화된 2×2 로지스틱의 표준오차는 네 칸의 역수의 합의 제곱근이라는 고전 공식으로 나온다.

SE(θ^1)=1m+1Nm,SE(θ^2)=1m+1Nm+1m+1Nm \mathrm{SE}(\hat\theta_1)=\sqrt{\frac1{m_{\text{다}}}+\frac1{N_{\text{다}}-m_{\text{다}}}},\qquad \mathrm{SE}(\hat\theta_2)=\sqrt{\frac1{m_{\text{같}}}+\frac1{N_{\text{같}}-m_{\text{같}}} +\frac1{m_{\text{다}}}+\frac1{N_{\text{다}}-m_{\text{다}}}} SE(θ^2)=15+11+11+18=0.2+1+1+0.125=2.325=1.5247951 \mathrm{SE}(\hat\theta_2)=\sqrt{\tfrac15+\tfrac11+\tfrac11+\tfrac18} =\sqrt{0.2+1+1+0.125}=\sqrt{2.325}=1.5247951

z=3.6888795/1.5247951=2.4193z=3.6888795/1.5247951=2.4193, p=0.0156p=0.0156. 6명짜리 학급인데도 유의하게 나오지만, 95% 신뢰구간은 오즈비 기준 [2.01, 794.3][2.01,\ 794.3]으로 어이없이 넓다. 같은 성별 비간선이 1개뿐이라 표가 거의 비어 있기 때문이다. 이 점은 §12에서 다시 본다.

6. R 검증 ① — 6명 미니 학급 (Verification I)

library(ergm); library(network)
A6 <- matrix(0, 6, 6)
for (e in list(c(1,2),c(1,3),c(2,3),c(4,5),c(5,6),c(3,4))) { A6[e[1],e[2]] <- 1; A6[e[2],e[1]] <- 1 }
nw6 <- network(A6, directed = FALSE)
nw6 %v% "sex" <- c("여","여","여","남","남","남")

summary(nw6 ~ edges + nodematch("sex"))
        edges nodematch.sex
            6             5          # m = 6, g_match = 5  ✔ (§3 표와 일치)

summary(ergm(nw6 ~ edges + nodematch("sex")))
                  Estimate  Std. Error  z value  Pr(>|z|)
edges            -2.079442    1.060652   -1.961    0.0499     # log(1/8)  ✔
nodematch.sex     3.688879    1.524789    2.419    0.0156     # log(40)   ✔

exp(3.688879)
[1] 40   # 오즈비 ✔

※ 표준오차는 §5의 정확한 공식이 1.06066021.06066021.52479511.5247951인데 ergm1.0606521.060652, 1.5247891.524789를 찍는다. ergm은 IRLS로 수치 반복을 하는데 이 표에 칸 값이 1인 칸(같은 성별 비간선 1개)이 있어 5째 자리에서 수렴 오차가 남은 것이다. 10명 학급(§11)은 7자리까지 일치한다.

MPLE = MLE 확인 (Confirming MPLE Equals MLE)

coef(ergm(nw6 ~ edges + nodematch("sex"), estimate = "MPLE"))
        edges nodematch.sex
    -2.079442      3.688879
coef(ergm(nw6 ~ edges + nodematch("sex")))          # 기본값 = MLE
        edges nodematch.sex
    -2.079442      3.688879      # 소수 9자리까지 동일 ✔
5-3에서 가라테의 edges + triangle 모형은 MPLE (2.635,0.688)(-2.635,\,0.688)이 정확한 MLE와 크게 달랐다. 오늘 모형은 완전히 일치한다. 차이를 만드는 것은 데이터도 표본 크기도 아니라 δ\delta가 망을 보느냐 안 보느냐다.

κ\kappa 닫힌 식 전수 검증 (Brute-Force Check)

6명은 215=327682^{15}=32768개라 전수 계산이 가능하다. 아무 θ\theta나 잡아 두 값을 비교한다.

th <- c(-0.37, 1.23)
## ① 32768개 전수 합
lin <- sapply(0:32767, function(cd) {
  b <- as.integer(intToBits(cd))[1:15]
  th[1]*sum(b) + th[2]*sum(b * same15)          # same15 = 15쌍의 delta 벡터
})
M <- max(lin); M + log(sum(exp(lin - M)))
[1] 12.00375383

## ② 닫힌 식 (§4)
6*log(1+exp(th[1]+th[2])) + 9*log(1+exp(th[1]))
[1] 12.00375383     # 차이 1.07e-14 (부동소수점 오차)  ✔

7. 손 계산 ④ — 3-7의 10명 학급 (The Main Example)

이제 3-7에서 E-I 지수를 구했던 바로 그 학급으로 간다 (그림 59 오른쪽).

10명 학급. 남학생 S1S_1S6S_6, 여학생 S7S_7S10S_{10}. 간선 15개:

1–2   1–3   2–3   3–4   3–7   3–8   3–9   4–5   4–6   5–6   6–10   7–8   7–10   8–9   9–10

7-1. 쌍을 센다 (counting dyads)

쌍의 종류계산개수
남–남(62)=6×52\binom62=\frac{6\times5}{2}15
여–여(42)=4×32\binom42=\frac{4\times3}{2}6
δ=1\delta=1 (같은 성별)15+615+6N=21N_{\text{같}}=21
δ=0\delta=0 (다른 성별)6×46\times4N=24N_{\text{다}}=24
전체(102)=21+24\binom{10}2=21+24N=45N=45

7-2. 간선을 센다 (counting edges)

15개 간선을 하나씩 분류한다. 하나도 빠뜨리지 않는다.

간선1–21–32–33–43–73–83–94–54–65–66–107–87–108–99–10
양 끝남남남남남남남남남여남여남여남남남남남남남여여여여여여여여여
δ\delta111100011101111
gmatch=1+1+1+11–2,1–3,2–3,3–4+0+0+03–7,3–8,3–9+1+1+14–5,4–6,5–6+06–10+1+1+1+17–8,7–10,8–9,9–10=11 g_{\text{match}}=\underbrace{1+1+1+1}_{\text{1–2,1–3,2–3,3–4}} +\underbrace{0+0+0}_{\text{3–7,3–8,3–9}} +\underbrace{1+1+1}_{\text{4–5,4–6,5–6}} +\underbrace{0}_{\text{6–10}} +\underbrace{1+1+1+1}_{\text{7–8,7–10,8–9,9–10}} =11

남–남 간선 7개(1–2, 1–3, 2–3, 3–4, 4–5, 4–6, 5–6), 여–여 간선 4개(7–8, 7–10, 8–9, 9–10), 교차 간선 4개(3–7, 3–8, 3–9, 6–10). 합 7+4+4=157+4+4=15 ✔ 그리고 m=7+4=11m_{\text{같}}=7+4=11, m=4m_{\text{다}}=4.

3-7 §10의 혼합행렬과 정확히 같은 숫자다 — 대각 (남남,여여)=(7,4)(남남,여여)=(7,4), 비대각 44. 오늘의 모형은 그 혼합행렬을 확률모형으로 다시 쓴 것이다.

7-3. 2×2 표 (The 2×2 Table)

친구 (간선 1)친구 아님 (간선 0)쌍 합계비율
같은 성별112111=1021-11=102111/21=0.523811/21=0.5238
다른 성별4244=2024-4=20244/24=0.16674/24=0.1667
합계15304515/45=0.333315/45=0.3333

7-4. 추정값 (The Estimates)

전개
다른 성별 오즈4/20=1/54/20=1/50.20.2
같은 성별 오즈11/1011/101.11.1
θ^1\hat\theta_1 (edges)log(1/5)=log5\log(1/5)=-\log 51.6094379-1.6094379
θ^1+θ^2\hat\theta_1+\hat\theta_2log(11/10)\log(11/10)0.09531020.0953102
θ^2\hat\theta_2 (nodematch)log11/101/5=log11×510=log5.5\log\dfrac{11/10}{1/5}=\log\dfrac{11\times5}{10}=\log 5.51.70474811.7047481
오즈비e1.7047481e^{1.7047481}5.55.5
SE(θ^2)\mathrm{SE}(\hat\theta_2)111+110+14+120=0.0909091+0.1+0.25+0.05=0.4909091\sqrt{\frac1{11}+\frac1{10}+\frac14+\frac1{20}}=\sqrt{0.0909091+0.1+0.25+0.05}=\sqrt{0.4909091}0.70064900.7006490
zz1.7047481/0.70064901.7047481/0.70064902.43312.4331
pp2Φ(2.4331)2\Phi(-2.4331)0.014970.01497
읽는 법: “같은 성별끼리는 친구가 될 오즈가 5.5배 높다. p=0.015p=0.015로 우연이라 보기 어렵다.”
3-7에서는 0.4667-0.4667이라는 숫자 하나뿐이었다. 이제 배수유의성이 함께 나온다.

8. E-I 지수의 회수 (Recovering the E-I Index)

3-7의 E-I 지수는 간선만 세는 지표였다. 오늘의 기호로 쓰면

EI=ELILEL+IL=mmm EI=\frac{EL-IL}{EL+IL}=\frac{m_{\text{다}}-m_{\text{같}}}{m}

10명 학급이면 EI=41115=715=0.4666667EI=\dfrac{4-11}{15}=-\dfrac{7}{15}=-0.4666667 ✔ (3-7과 동일)

이제 θ^2\hat\theta_2EIEI를 잇는다. 먼저 E-I를 비율로 뒤집는다.

단계전개
1EI1-EI=1mmm=mm+mm=(m+m)m+mm=2mm=1-\dfrac{m_{\text{다}}-m_{\text{같}}}{m} =\dfrac{m-m_{\text{다}}+m_{\text{같}}}{m} =\dfrac{(m_{\text{같}}+m_{\text{다}})-m_{\text{다}}+m_{\text{같}}}{m}=\dfrac{2m_{\text{같}}}{m}
1+EI1+EI=m+mmm=2mm=\dfrac{m+m_{\text{다}}-m_{\text{같}}}{m}=\dfrac{2m_{\text{다}}}{m}
나눔1EI1+EI=2m/m2m/m=mm\dfrac{1-EI}{1+EI}=\dfrac{2m_{\text{같}}/m}{2m_{\text{다}}/m} =\dfrac{m_{\text{같}}}{m_{\text{다}}}

확인: 1(7/15)1+(7/15)=22/158/15=228=2.75=114\dfrac{1-(-7/15)}{1+(-7/15)}=\dfrac{22/15}{8/15}=\dfrac{22}{8}=2.75=\dfrac{11}{4}

한편 오즈비를 간선 수와 비간선 수로 쪼개면

eθ^2=m/(Nm)m/(Nm)=mm간선 비×NmNm비간선 비 e^{\hat\theta_2} =\frac{m_{\text{같}}/(N_{\text{같}}-m_{\text{같}})}{m_{\text{다}}/(N_{\text{다}}-m_{\text{다}})} =\underbrace{\frac{m_{\text{같}}}{m_{\text{다}}}}_{\text{간선 비}}\times \underbrace{\frac{N_{\text{다}}-m_{\text{다}}}{N_{\text{같}}-m_{\text{같}}}}_{\text{비간선 비}}

앞의 인자가 방금 구한 (1EI)/(1+EI)(1-EI)/(1+EI)다. 그래서 정확한 등식이 나온다.

  eθ^2=1EI1+EI1Q,Q    NmNm=같은 성별 비간선 수다른 성별 비간선 수   \boxed{\;e^{\hat\theta_2}=\frac{1-EI}{1+EI}\cdot\frac1{Q}, \qquad Q\;\equiv\;\frac{N_{\text{같}}-m_{\text{같}}}{N_{\text{다}}-m_{\text{다}}} =\frac{\text{같은 성별 비간선 수}}{\text{다른 성별 비간선 수}}\;}

뒤집으면 계수에서 E-I를 되찾는 식이다.

  EI=1eθ^2Q1+eθ^2Q   \boxed{\;EI=\frac{1-e^{\hat\theta_2}Q}{1+e^{\hat\theta_2}Q}\;}

10명 학급으로 확인 (Checking with a Class of Ten)

전개
QQ2111244=1020\dfrac{21-11}{24-4}=\dfrac{10}{20}0.50.5
eθ^2Qe^{\hat\theta_2}Q5.5×0.55.5\times0.52.752.75
EIEI12.751+2.75=1.753.75\dfrac{1-2.75}{1+2.75}=\dfrac{-1.75}{3.75}0.4666667-0.4666667

반대 방향으로도 확인. 1EI1+EI1Q=2.75×2=5.5=eθ^2\dfrac{1-EI}{1+EI}\cdot\dfrac1Q=2.75\times2=5.5=e^{\hat\theta_2}

6명 학급도 같은 식으로: Q=6591=18=0.125Q=\dfrac{6-5}{9-1}=\dfrac18=0.125, eθ^2Q=40×0.125=5e^{\hat\theta_2}Q=40\times0.125=5, EI=151+5=46=0.6666667EI=\dfrac{1-5}{1+5}=-\dfrac46=-0.6666667. 직접 계산해도 156=46\dfrac{1-5}{6}=-\dfrac46

두 지표는 같은 2×2 표의 두 가지 요약일 뿐이다. 어느 쪽도 더 많은 정보를 갖고 있지 않다. 차이는 무엇을 분모로 삼느냐다.
· E-Imm_{\text{같}}mm_{\text{다}}만 본다 — 간선만.
· θ2\theta_2QQ를 통해 비간선까지 본다 — 즉 “맺을 수도 있었는데 안 맺은 쌍”을 센다.
바로 이 QQ가 §1의 함정 ①(기회의 차이)을 흡수하는 조각이다.

9. 영점 — θ2=0\theta_2=0은 3-7의 기준선이다 (The Zero Point)

“동질성이 없다”는 것은 무엇인가? 오늘의 모형에서는 명확하다 — θ2=0\theta_2=0, 즉 오즈비 1. 그러면 E-I는 얼마가 되어야 할까? 0이 아니다.

θ2=0\theta_2=0이면 두 확률이 같다: p=p=pp_{\text{같}}=p_{\text{다}}=p. 그러면

같은 성별 간선m=pNm_{\text{같}}=p\,N_{\text{같}}
다른 성별 간선m=pNm_{\text{다}}=p\,N_{\text{다}}
같은 성별 비간선(1p)N(1-p)N_{\text{같}}
다른 성별 비간선(1p)N(1-p)N_{\text{다}}
QQ(1p)N(1p)N=NN\dfrac{(1-p)N_{\text{같}}}{(1-p)N_{\text{다}}}=\dfrac{N_{\text{같}}}{N_{\text{다}}}  — pp가 약분된다

§8의 회수 식에 eθ2=1e^{\theta_2}=1과 이 QQ를 넣으면

EI=1N/N1+N/N=NNN+N  =  EIexp EI=\frac{1-N_{\text{같}}/N_{\text{다}}}{1+N_{\text{같}}/N_{\text{다}}} =\frac{N_{\text{다}}-N_{\text{같}}}{N_{\text{다}}+N_{\text{같}}} \;=\;EI^{\text{exp}}_{\text{쌍}}
이것이 3-7 §9의 “노드쌍 기준선”과 글자 그대로 같은 식이다. 3-7에서는 “무작위로 이었다면 이랬을 것”이라고 손으로 계산해 넣었던 값인데, ERGM에서는 그것이 계수 0이라는 자리로 자동으로 들어와 있다. 기준선을 따로 계산할 필요가 없어진 것이다.

10명 학급에서 확인:

EIexp=242145=345=115=+0.0666667 EI^{\text{exp}}_{\text{쌍}}=\frac{24-21}{45}=\frac{3}{45}=\frac1{15}=+0.0666667

3-7 §9의 값과 일치 ✔ 숫자로도 확인해 보자. θ2=0\theta_2=0이고 간선 15개를 그대로 두면 m=15×2145=7m_{\text{같}}=15\times\frac{21}{45}=7, m=15×2445=8m_{\text{다}}=15\times\frac{24}{45}=8이 되고,

EI=8715=115 EI=\frac{8-7}{15}=\frac1{15} \quad\checkmark

그러니 이 학급의 관측 EI=0.4667EI=-0.4667은 “0에서 0.4667만큼 내려간 것”이 아니라 기준선 +0.0667+0.0667에서 0.5333만큼 내려간 것이다. θ^2=1.7047\hat\theta_2=1.7047이라는 하나의 숫자가 이 “내려간 정도”를 이미 담고 있다.

10. 함정 — E-I는 흔들리고 오즈비는 안 흔들린다 (The Group-Size Trap)

§1의 함정 ①을 정면으로 실험해 본다. 사람들의 행동 규칙을 고정해 놓고 집단 크기만 바꾼다.

  • 학급 30명, 두 집단 A와 B로 나눈다. A의 크기를 k=1,2,,29k=1,2,\dots,29로 바꾼다.
  • 규칙은 내내 똑같다: 같은 집단인 쌍은 확률 0.300.30으로, 다른 집단인 쌍은 확률 0.100.10으로 친구가 된다.

규칙이 고정이므로 오즈비도 고정이다.

eθ2=0.30/0.700.10/0.90=0.42857140.1111111=3.857143,θ2=log3.857143=1.3499267 e^{\theta_2}=\frac{0.30/0.70}{0.10/0.90}=\frac{0.4285714}{0.1111111}=3.857143, \qquad \theta_2=\log 3.857143=1.3499267
집단 크기 k를 바꿔도 nodematch 계수는 그대로인데 E-I 지수는 크게 흔들린다
그림 60. 행동 규칙은 한 번도 바뀌지 않았다. 그런데 왼쪽 E-I는 0.95-0.95에서 0.47-0.47까지 움직이고, 오른쪽 계수는 1.34991.3499에 완전히 고정돼 있다.
kk (A의 크기)NN_{\text{같}}NN_{\text{다}}E[IL]E[IL]E[EL]E[EL]E-I기준선 EIexpEI^{\text{exp}}θ2\theta_2
335481106.208.100.8583-0.85830.6276-0.62761.3499
629114487.3014.400.7168-0.71680.3379-0.33791.3499
924618973.8018.900.5922-0.59220.1310-0.13101.3499
1221921665.7021.600.5052-0.50520.0069-0.00691.3499
1521022563.0022.500.4737-0.4737+0.0345+0.03451.3499
E-I만 보면 완전히 틀린 결론에 도달한다. k=3k=3인 학급(EI=0.86EI=-0.86)과 k=15k=15인 학급(EI=0.47EI=-0.47)을 비교하면 “앞 학급이 훨씬 끼리끼리 논다”고 말하게 된다. 그런데 두 학급의 행동 규칙은 완전히 똑같다. 차이는 오직 집단 크기다.

게다가 3-7에서 배운 대로 기준선을 빼도 해결되지 않는다. k=3k=3에서 EIEIexp=0.2307EI-EI^{\text{exp}}=-0.2307이지만 k=15k=15에서는 0.5082-0.5082로, 이번엔 부호가 반대로 뒤집힌 인상을 준다. θ2\theta_2만이 1.3499에 붙박이로 있다.
교실에서 — 남녀 성비가 15:15인 학급과 25:5인 학급의 성별 동질성을 비교하고 싶다면, E-I 지수로는 비교할 수 없다. 학급 규모가 다른 경우도 마찬가지다. nodematch 계수(또는 오즈비)는 그런 비교가 가능한 유일한 지표다.

11. R 검증 ② — 10명 학급 (Verification II)

A10 <- matrix(0, 10, 10)
E10 <- list(c(1,2),c(1,3),c(2,3),c(3,4),c(3,7),c(3,8),c(3,9),
            c(4,5),c(4,6),c(5,6),c(6,10),c(7,8),c(7,10),c(8,9),c(9,10))
for (e in E10) { A10[e[1],e[2]] <- 1; A10[e[2],e[1]] <- 1 }
nw10 <- network(A10, directed = FALSE)
nw10 %v% "sex" <- c(rep("남",6), rep("여",4))

summary(nw10 ~ edges + nodematch("sex"))
        edges nodematch.sex
           15            11          # ✔ §7-2의 손 계산

mixingmatrix(nw10, "sex")
   남 여
남  7  4
여  4  4                             # ✔ 3-7 §10의 혼합행렬

summary(ergm(nw10 ~ edges + nodematch("sex")))
                 Estimate Std. Error z value Pr(>|z|)
edges             -1.60944    0.54772  -2.938  0.00330   # log(1/5)  ✔
nodematch.sex      1.70475    0.70065   2.433  0.01497   # log(5.5)  ✔

exp(1.70475)
[1] 5.500002   # 오즈비 ✔

표준오차도 §7-4의 손 계산과 일치한다: 1/4+1/20=0.3=0.5477226\sqrt{1/4+1/20}=\sqrt{0.3}=0.5477226, 1/11+1/10+1/4+1/20=0.7006490\sqrt{1/11+1/10+1/4+1/20}=0.7006490

3-7의 다른 지표들과 나란히 (Compared with 3-7's Measures)

## E-I 지수 (3-7)
(4 - 11) / 15
[1] -0.4666667

## 뉴먼의 r (3-7 §11)
assortativity_nominal(g10, as.integer(factor(sex)), directed = FALSE)
[1] 0.4444444

## 간선만 모형 (5-2) — 밀도의 로짓
coef(ergm(nw10 ~ edges))
     edges
-0.6931472        # = log(15/30) = logit(1/3) ✔
지표기준선(동질성 없음)표준오차학급끼리 비교
E-I 지수 (3-7)0.4667-0.4667+0.0667+0.0667 (따로 계산해야)없음불가 (§10)
뉴먼의 rr (3-7)0.44440.444400없음제한적
θ2\theta_2 (오늘)1.70471.704700 (자동)0.70060.7006가능

세 지표는 같은 방향을 가리키지만, 마지막 두 열이 오늘 새로 생긴 것이다.

12. 계수를 읽는 법 — 오즈비·확률·표준오차 (Reading the Coefficient)

12-1. 오즈비 (odds ratio)

θ^2\hat\theta_2eθ^2e^{\hat\theta_2}읽는 법
0011동질성 없음 — 같은 집단이든 아니든 똑같이 친해진다
>0>0>1>1동질성 (homophily) — 끼리끼리
<0<0<1<1이질성 (heterophily) — 오히려 다른 집단끼리 친하다
0.690.69222배
1.701.705.55.55.5배 — 오늘의 10명 학급
2.302.30101010배
E-I와 부호 관습이 반대다. 3-7에서 E-I는 음수가 동질성이었다. 오늘의 θ2\theta_2양수가 동질성이다. 두 노트를 같이 볼 때 자주 헷갈린다.
외우는 법: E-I는 “External 빼기 Internal”이라 내부가 많으면 음수. θ2\theta_2는 “같으면 얼마나 ”라서 더 많으면 양수.

12-2. 오즈비는 확률의 배수가 아니다 (odds ratio ≠ risk ratio)

흔한 오독이다. “5.5배”는 확률이 5.5배라는 뜻이 아니다.

로그오즈오즈확률
다른 성별θ^1=1.6094\hat\theta_1=-1.60940.2=1/50.2=1/50.21.2=0.1667\dfrac{0.2}{1.2}=0.1667
같은 성별θ^1+θ^2=0.0953\hat\theta_1+\hat\theta_2=0.09531.11.11.12.1=0.5238\dfrac{1.1}{2.1}=0.5238
배수차이 1.70471.70475.55.5배 (오즈비)3.143.14배 (확률비)

확률로 말하려면 반드시 두 확률을 각각 계산해서 보여 줘야 한다.

p=11+e(θ1+θ2δ)p=11+e1.6094=0.1667,p=11+e0.0953=0.5238 p=\frac{1}{1+e^{-(\theta_1+\theta_2\delta)}}\quad\Longrightarrow\quad p_{\text{다}}=\frac1{1+e^{1.6094}}=0.1667,\qquad p_{\text{같}}=\frac1{1+e^{-0.0953}}=0.5238
망이 성길수록 둘이 가까워진다. 확률이 아주 작으면 1p11-p\approx1이라 오즈 \approx 확률이기 때문이다. §13의 FMH(밀도 0.0009)에서는 학년 오즈비가 25.48, 확률비가 25.37로 거의 같다. 반대로 오늘의 10명 학급처럼 밀도가 0.33이나 되는 작은 교실에서는 5.5배와 3.14배로 크게 벌어진다. 교실 자료를 다룰 때 특히 조심할 부분이다.

12-3. 표준오차와 신뢰구간 (SE and CI)

신뢰구간은 로그 눈금에서 만들고 나서 지수를 취한다. 오즈비 자체는 대칭이 아니기 때문이다.

θ^2±1.96SE=1.7047±1.96(0.7006)=[0.3315, 3.0780]e[]=[1.393, 21.72] \hat\theta_2\pm1.96\,\mathrm{SE}=1.7047\pm1.96(0.7006)=[0.3315,\ 3.0780] \quad\Longrightarrow\quad e^{[\cdot]}=[1.393,\ 21.72]
10명 학급의 결론은 “5.5배”가 아니라 “1.4배에서 21.7배 사이”다. p=0.015p=0.015로 유의하긴 하지만, 구간이 이렇게 넓으면 “동질성이 있다”까지만 말할 수 있고 “얼마나 강한가”는 사실상 모른다. §5의 6명 학급은 더 심해서 [2.0, 794][2.0,\ 794]였다.
작은 학급 한 반만으로 동질성의 세기를 말하지 말 것. 방향만 말할 것.

13. R 검증 ③ — FMH 1461명 실전 (Verification III: Real Data)

교재의 FMH(Faux Magnolia High) 자료로 간다. 가상의 미국 고등학교 1461명, 간선 974개, 밀도 0.0009130.000913. 속성은 Grade(7–12학년), Sex, Race.

library(ergm)
data(faux.magnolia.high); fmh <- faux.magnolia.high
network.size(fmh); network.edgecount(fmh)
[1] 1461
[1] 974

13-1. 속성 하나씩 — 닫힌 식으로도 확인 (One Attribute at a Time)

§5의 공식이 1461명에서도 그대로 맞는지 확인한다. (14612)=1,066,530\binom{1461}{2}=1{,}066{,}530쌍.

속성NN_{\text{같}}NN_{\text{다}}mm_{\text{같}}mm_{\text{다}}θ^2\hat\theta_2오즈비SEE-I기준선 EIexpEI^{\text{exp}}
Grade185,026881,5048201543.237825.480.08790.6838-0.6838+0.6530+0.6530
Sex534,306532,2246892850.87962.410.07050.4148-0.41480.0020-0.0020
Race591,511475,0197871871.21873.380.08140.6160-0.61600.1092-0.1092
coef(ergm(fmh ~ edges + nodematch("Grade")))
        edges nodematch.Grade
    -8.652257        3.237752

## 손 계산과 대조
log(154/(881504-154))                       # theta1
[1] -8.652257
log((820/(185026-820)) / (154/(881504-154))) # theta2
[1] 3.237752      # ✔ 소수 6자리 일치
이 표가 오늘 단원의 결론이다. Grade와 Race의 E-I를 보라 — 0.684-0.6840.616-0.616으로 비슷하다. E-I만 보면 “학년 동질성과 인종 동질성이 비슷하게 강하다”고 말하게 된다.

그런데 오즈비는 25.5배 대 3.4배로 7배 넘게 차이 난다. 왜인가? 기준선이 완전히 다르기 때문이다. 학년은 6개로 쪼개져 있어 같은 학년 쌍이 전체의 17%뿐이다(EIexp=+0.653EI^{\text{exp}}=+0.653). 반면 백인이 1053명(72%)이라 같은 인종 쌍은 전체의 55%나 된다(EIexp=0.109EI^{\text{exp}}=-0.109). E-I는 이 차이를 못 본다. 오즈비는 QQ를 통해 본다(§8).

13-2. 세 속성을 함께 — 통제 (controlling for other attributes)

summary(ergm(fmh ~ edges + nodematch("Grade") + nodematch("Sex") + nodematch("Race")))
                  Estimate Std. Error z value  Pr(>|z|)
edges           -10.012766   0.115258  -86.87   < 1e-99
nodematch.Grade   3.231045   0.087879   36.77   < 1e-99
nodematch.Sex     0.884378   0.070566   12.53   < 1e-99
nodematch.Race    1.196459   0.081466   14.69   < 1e-99

exp(coef(...)[-1])
nodematch.Grade   nodematch.Sex  nodematch.Race
        25.3061          2.4215          3.3084
FMH의 nodematch 오즈비 — 학년 25.3배, 인종 3.3배, 성별 2.4배. 오른쪽은 학년별.
그림 61. 가로축은 로그 눈금, 굵은 선은 95% 신뢰구간. 1461명이라 구간이 매우 좁다 — §12-3의 10명 학급과 대조해 볼 것.

단독으로 넣었을 때(3.2378 / 0.8796 / 1.2187)와 함께 넣었을 때(3.2310 / 0.8844 / 1.1965)가 거의 안 움직인다. 이 학교에서는 세 속성이 서로 거의 독립이라는 뜻이다 (예컨대 “같은 인종 친구가 많아 보이는 게 사실은 같은 학년이라서”가 아니다). 움직였다면 그것 자체가 발견이 된다.

13-3. diff=TRUE — 집단별로 따로 (group-specific homophily)

지금까지는 “같으면 1”로 모든 학년을 한 덩어리로 취급했다. 학년별로 나눠 볼 수도 있다.

summary(ergm(fmh ~ edges + nodematch("Grade", diff = TRUE)))
                     Estimate Std. Error  z value
edges               -8.652257    0.080585  -107.37
nodematch.Grade.7    3.617077    0.125076    28.92     # exp => 37.23배
nodematch.Grade.8    3.769456    0.112252    33.58     # exp => 43.36배  ← 가장 폐쇄적
nodematch.Grade.9    2.857681    0.114425    24.97     # exp => 17.42배  ← 가장 개방적
nodematch.Grade.10   2.968543    0.114626    25.90     # exp => 19.46배
nodematch.Grade.11   3.279663    0.114470    28.65     # exp => 26.57배
nodematch.Grade.12   3.329898    0.132888    25.06     # exp => 27.94배

edges 계수 8.652257-8.652257이 13-1의 Grade 단독 모형과 정확히 같다. 당연하다 — 두 모형 모두 “다른 학년 쌍”이라는 기준 범주를 그대로 두고 같은 성별 칸만 쪼갠 것이기 때문이다.

읽기 — 미국 학제에서 9학년은 고등학교 첫 학년이다. 중학교에서 올라온 학생들이 섞이는 시점이라 학년 내부 결속이 가장 약하고(17.4배), 반대로 8학년(중학교 마지막 학년)은 3년을 함께 지낸 뒤라 가장 강하다(43.4배). 전이 학년에서 학년 경계가 느슨해진다는 것이 계수 여섯 개로 바로 보인다.

14. 교실 적용 (Classroom Application)

14-1. “몇 배”로 말할 수 있게 된다 (Now You Can Say How Many Times)

학부모 상담이나 학년 협의회에서 EI=0.47EI=-0.47은 아무 의미도 전달하지 못한다. “같은 성별끼리 친구가 될 가능성이 5.5배 높습니다”는 전달된다. 게다가 p=0.015p=0.015를 붙일 수 있으므로 “제 느낌인데요”가 아니게 된다.

14-2. 학급끼리·연도끼리 비교가 가능해진다 (Comparison Across Classes and Years)

1반(남 15 여 15)과 2반(남 25 여 5)의 성별 분리를 비교하려면 반드시 오즈비를 써야 한다(§10). 같은 논리로 3월과 11월을 비교할 때도, 학급 규모나 결석생 때문에 관계 밀도가 달라지면 E-I는 그것만으로도 움직인다. 오즈비는 안 움직인다.

14-3. 여러 속성을 동시에 통제할 수 있다 (Controlling Several Attributes at Once)

“모둠이 같아서 친한 건가, 성별이 같아서 친한 건가?” edges + nodematch("모둠") + nodematch("성별")을 한 번에 적합하면 각각의 몫이 나온다. 단독일 때와 함께일 때 계수가 크게 변하면 두 속성이 겹쳐 있다는 뜻이고, 이건 그 자체로 중요한 정보다(예: 교사가 모둠을 성별로 나눠 편성했다).

14-4. 이질성(음수 계수)도 발견이다 (Heterophily Is a Finding Too)

협동학습 모둠을 이질 편성했다면 “같은 모둠” 계수가 음수로 나올 수도 있다 — 설계대로 작동했다는 뜻이다. 반대로 이질 편성했는데 계수가 크게 양수라면 모둠 안에서도 끼리끼리 나뉘어 있다는 신호다.

14-5. 작은 학급에서는 세기를 단정하지 말 것 (Do Not Assert Strength in a Small Class)

25명 학급 한 반의 신뢰구간은 여전히 꽤 넓다. §12-3에서 본 대로 10명이면 [1.4, 21.7][1.4,\ 21.7]이다. 방향(동질성이 있다/없다)은 말해도 좋지만 세기(5.5배다)를 단정하면 안 된다. 여러 학급을 모으거나 여러 시점을 모아야 세기가 좁혀진다.

14-6. nodematch가 할 수 없는 것 (What nodematch Cannot Do)

nodematch“같다/다르다”만 본다. 다음은 못 한다.
  • 얼마나 다른가 — 학업 성취도 3점과 5점의 차이는 3점과 90점의 차이와 똑같이 “다름”으로 처리된다 → absdiff (5-5)
  • 누가 인기가 많은가 — 여학생이 전반적으로 친구가 더 많다는 것은 이 모형이 못 잡는다 → nodefactor (5-5)
  • 구조 — 삼각형·군집은 전혀 안 본다. 오늘 모형은 쌍 독립이므로 구조를 원리적으로 못 만든다 → gwesp (5-6)

15. 연습문제 (Exercises)

연습 1. 8명 학급. 작년에 A반이었던 학생 {1,2,3,4,5}\{1,2,3,4,5\}, B반이었던 학생 {6,7,8}\{6,7,8\}. 친구 관계는 8개다.

1–2   1–3   2–3   3–4   4–5   6–7   7–8   5–6

  1. 2×2 표(같음/다름 × 간선 있음/없음)를 채워라. N,N,m,mN_{\text{같}},N_{\text{다}},m_{\text{같}},m_{\text{다}}를 밝힐 것.
  2. θ^1, θ^1+θ^2, θ^2\hat\theta_1,\ \hat\theta_1+\hat\theta_2,\ \hat\theta_2와 오즈비를 손으로 구하라.
  3. E-I 지수를 직접 구하고, §8의 회수 공식 EI=1eθ^2Q1+eθ^2QEI=\dfrac{1-e^{\hat\theta_2}Q}{1+e^{\hat\theta_2}Q}로도 구해 일치를 확인하라.
  4. 기준선 EIexpEI^{\text{exp}}_{\text{쌍}}을 구하고, 관측 E-I가 기준선에서 얼마나 떨어져 있는지 말하라.
§16 해설 — 먼저 풀고 맞춰 볼 것.
연습 2. 10명 학급. 작년에 A반이었던 학생이 8명, B반이었던 학생이 2명이다. 관계를 세어 보니 이렇다.
  • 같은 반 출신인 쌍 29개9쌍이 친구
  • 다른 반 출신인 쌍 16개8쌍이 친구
  1. E-I 지수를 구하라. 그것만 보면 어떤 결론을 내리게 되는가?
  2. θ^1\hat\theta_1θ^2\hat\theta_2를 구하라. 오즈비는 얼마인가? 어떤 결론이 나오는가?
  3. 두 결론이 서로 어긋난다. 어느 쪽이 옳은가? 왜 그런 일이 생겼는지 EIexpEI^{\text{exp}}_{\text{쌍}}을 계산해서 설명하라.
  4. p=0.213p=0.213이다(SE =0.641=0.641). 이 학급에 대해 최종적으로 무엇이라고 보고해야 하는가?
§16 해설 — 먼저 풀고 맞춰 볼 것.

16. 해설과 답 (Solutions)

연습 1 해설 (Solution to Exercise 1)

(1) 2×2 표 — 무엇을 세는가

먼저 을 센다. 간선과 무관하게 “같은 반 출신인가”만 본다.

쌍의 종류계산개수
A–A(52)=5×42\binom52=\dfrac{5\times4}{2}10
B–B(32)=3×22\binom32=\dfrac{3\times2}{2}3
같음10+310+3N=13N_{\text{같}}=13
다름5×35\times3N=15N_{\text{다}}=15
전체(82)=13+15\binom82=13+1528

이제 간선 8개를 하나씩 분류한다. 0인 항도 빠뜨리지 않는다.

간선1–21–32–33–44–56–77–85–6
양 끝A,AA,AA,AA,AA,AB,BB,BA,B
δ\delta11111110
gmatch=1+1+1+1+1+1+1+0=7 g_{\text{match}}=1+1+1+1+1+1+1+0=7
간선 있음간선 없음쌍 합계
같은 반 출신m=7m_{\text{같}}=7137=613-7=613
다른 반 출신m=1m_{\text{다}}=1151=1415-1=1415
합계82028
답 (1) N=13, N=15, m=7, m=1N_{\text{같}}=13,\ N_{\text{다}}=15,\ m_{\text{같}}=7,\ m_{\text{다}}=1. 비간선은 각각 6개, 14개.

(2) 추정값

전개왜 그 값인가
다른 반 오즈m/(Nm)=1/14m_{\text{다}}/(N_{\text{다}}-m_{\text{다}})=1/14교차 쌍 15개 중 1개만 친구0.07140.0714
같은 반 오즈m/(Nm)=7/6m_{\text{같}}/(N_{\text{같}}-m_{\text{같}})=7/6내부 쌍 13개 중 7개가 친구1.16671.1667
θ^1\hat\theta_1log(1/14)=log14\log(1/14)=-\log 14기준 범주(다른 반)의 로그오즈2.6390573-2.6390573
θ^1+θ^2\hat\theta_1+\hat\theta_2log(7/6)\log(7/6)같은 반 쌍의 로그오즈0.15415070.1541507
θ^2\hat\theta_2log7/61/14=log7×146=log986=log493\log\dfrac{7/6}{1/14}=\log\dfrac{7\times14}{6}=\log\dfrac{98}{6}=\log\dfrac{49}{3}두 로그오즈의 차 = 로그 오즈비2.79320802.7932080
오즈비49/349/3=16.333=16.333\ldots16.333316.3333

검산: 0.1541507(2.6390573)=2.79320800.1541507-(-2.6390573)=2.7932080

답 (2) θ^1=log114=2.6391\hat\theta_1=\log\frac1{14}=-2.6391, θ^1+θ^2=log76=0.1542\hat\theta_1+\hat\theta_2=\log\frac76=0.1542, θ^2=log493=2.7932\hat\theta_2=\log\frac{49}{3}=2.7932, 오즈비 =16.33=16.33.
R 확인: coef(ergm(nw8 ~ edges + nodematch("g")))2.639057, 2.793208-2.639057,\ 2.793208

의미 — 작년에 같은 반이었던 두 사람은 그렇지 않은 두 사람보다 친구일 오즈가 16.3배다. 확률로 보면 7/13=0.5387/13=0.5381/15=0.0671/15=0.067로 8배 차이다 (§12-2의 경고 그대로, 오즈비 16.3과 확률비 8.1은 다르다).

(3) E-I 지수와 회수 공식

직접: 외부 간선 EL=m=1EL=m_{\text{다}}=1, 내부 간선 IL=m=7IL=m_{\text{같}}=7, m=8m=8.

EI=ELILm=178=68=0.75 EI=\frac{EL-IL}{m}=\frac{1-7}{8}=\frac{-6}{8}=-0.75

회수 공식으로:

전개
QQNmNm=614=37\dfrac{N_{\text{같}}-m_{\text{같}}}{N_{\text{다}}-m_{\text{다}}}=\dfrac{6}{14}=\dfrac370.42857140.4285714
eθ^2Qe^{\hat\theta_2}Q493×37=49×33×7=7\dfrac{49}{3}\times\dfrac37=\dfrac{49\times3}{3\times7}=777
EIEI171+7=68\dfrac{1-7}{1+7}=\dfrac{-6}{8}0.75-0.75
답 (3) 양쪽 모두 EI=0.75EI=-0.75. 회수 공식이 정확히 성립한다. (eθ^2Qe^{\hat\theta_2}Q가 딱 7이라는 것은 우연이 아니다 — 1EI1+EI=mm=71\frac{1-EI}{1+EI}=\frac{m_{\text{같}}}{m_{\text{다}}}=\frac71에 비간선 비 146\frac{14}{6}의 역수를 곱한 값, 즉 7×614×1467\times\frac{6}{14}\times\frac{14}{6}의 구조다.)

(4) 기준선과의 거리

EIexp=NNN+N=151328=228=114=+0.0714286 EI^{\text{exp}}_{\text{쌍}}=\frac{N_{\text{다}}-N_{\text{같}}}{N_{\text{다}}+N_{\text{같}}} =\frac{15-13}{28}=\frac{2}{28}=\frac1{14}=+0.0714286
답 (4) 기준선 +0.0714+0.0714, 관측 0.75-0.75. 차이는 0.750.0714=0.8214-0.75-0.0714=-0.8214로, 0에서 잰 거리(0.75)보다 실제로는 더 크다. A반 5명 · B반 3명이라 애초에 교차 쌍(15개)이 내부 쌍(13개)보다 많았기 때문이다.
교실 해석 — 작년 학급이 8명 중에 사실상 그대로 남아 있다. EI=0.75EI=-0.75는 “간선 8개 중 7개가 옛 학급 안에서 일어난다”는 뜻이고, 오즈비 16.3은 “새로 섞일 기회가 15쌍이나 있었는데 그중 딱 1쌍만 성사됐다”는 뜻이다. 반 편성 3~4주차에 이 그림이 나오면 의도적인 섞기 활동이 필요하다는 신호로 읽는다. 다만 8명은 너무 작아서(§12-3) 오즈비 신뢰구간이 [1.63, 163.4][1.63,\ 163.4]로 무의미하게 넓다 — 방향만 보고할 것.

연습 2 해설 (Solution to Exercise 2)

(1) E-I 지수

주어진 것을 표로 정리한다.

친구친구 아님쌍 합계비율
같은 반 출신9299=2029-9=20N=29N_{\text{같}}=299/29=0.31039/29=0.3103
다른 반 출신8168=816-8=8N=16N_{\text{다}}=168/16=0.50008/16=0.5000
합계17284517/45=0.377817/45=0.3778

(쌍 수 검산: (82)+(22)=28+1=29\binom82+\binom22=28+1=29 ✔, 8×2=168\times2=16 ✔, 합 45=(102)45=\binom{10}2 ✔)

EI=ELILm=8917=117=0.0588235 EI=\frac{EL-IL}{m}=\frac{8-9}{17}=\frac{-1}{17}=-0.0588235
답 (1) EI=0.0588EI=-0.0588. 음수이므로 3-7의 관습대로 읽으면 “약하지만 동질성이 있다”는 결론이 나온다.

(2) 계수

전개왜 그 값인가
다른 반 오즈8/88/8교차 쌍 16개 중 딱 절반이 친구11
같은 반 오즈9/209/20내부 쌍 29개 중 9개가 친구0.450.45
θ^1\hat\theta_1log(8/8)=log1\log(8/8)=\log 1오즈가 1이면 로그오즈는 000
θ^1+θ^2\hat\theta_1+\hat\theta_2log(9/20)=log0.45\log(9/20)=\log 0.450.45 < 1 이므로 음수0.7985077-0.7985077
θ^2\hat\theta_20.79850770=log0.45-0.7985077-0=\log 0.45θ^1=0\hat\theta_1=0이라 그대로 남음0.7985077-0.7985077
오즈비9/208/8=0.45\dfrac{9/20}{8/8}=0.451보다 작다0.450.45
답 (2) θ^1=0\hat\theta_1=0, θ^2=log0.45=0.7985\hat\theta_2=\log 0.45=-0.7985, 오즈비 =0.45=0.45. 1보다 작으므로 이질성(heterophily) — 오히려 다른 반 출신끼리 더 친하다는 결론이다. 확률로도 0.3100.3100.5000.500으로 교차 쪽이 높다.

(3) 왜 어긋났는가

기준선을 계산해 본다.

EIexp=NNN+N=162945=1345=0.2888889 EI^{\text{exp}}_{\text{쌍}}=\frac{N_{\text{다}}-N_{\text{같}}}{N_{\text{다}}+N_{\text{같}}} =\frac{16-29}{45}=\frac{-13}{45}=-0.2888889
읽는 법
기준선 EIexpEI^{\text{exp}}0.2889-0.2889아무 선호가 없어도 이만큼 음수가 나온다
관측 EIEI0.0588-0.0588기준선보다 0.2301 위 — 교차가 예상보다 많다
θ^2\hat\theta_20.7985-0.7985그 “예상보다 많다”를 부호로 정확히 표현

회수 공식으로도 확인된다. Q=299168=208=2.5Q=\dfrac{29-9}{16-8}=\dfrac{20}{8}=2.5, eθ^2Q=0.45×2.5=1.125e^{\hat\theta_2}Q=0.45\times2.5=1.125,

EI=11.1251+1.125=0.1252.125=0.0588235 EI=\frac{1-1.125}{1+1.125}=\frac{-0.125}{2.125}=-0.0588235 \quad\checkmark
답 (3) θ^2\hat\theta_2 쪽이 옳다. E-I가 음수인 것은 선호 때문이 아니라 집단이 8:2로 심하게 기울어 있어 같은 반 출신 쌍이 45개 중 29개(64%)나 되기 때문이다. 아무렇게나 이어도 E-I는 0.2889-0.2889가 나오는 상황인데, 관측값은 그보다 에 있다. E-I를 0과 비교하는 습관(3-7 함정 ①)이 정확히 이 오류를 만든다. θ2\theta_2Q=2.5Q=2.5라는 인자로 이 불균형을 자동으로 나눠 내므로 같은 실수를 하지 않는다.

(4) 최종 보고

답 (4) z=0.7985/0.641=1.245z=-0.7985/0.641=-1.245, p=0.213p=0.213유의하지 않다. 95% 신뢰구간은 오즈비 기준 [0.128, 1.581][0.128,\ 1.581]1을 포함한다.
따라서 보고해야 할 문장은 “이질성이 있다”가 아니라 “작년 반 편성이 올해 교우관계에 영향을 준다는 증거가 없다”이다. 방향은 이질성 쪽이지만 우연으로 충분히 설명된다.
교실 해석 — B반 출신이 2명뿐인 상황에서 “같은 반 출신끼리 뭉친다”는 인상은 대개 착시다. 8명이 서로 아는 것은 당연하고, 그 8명이 만드는 쌍이 워낙 많아 어떤 지표든 “내부 간선이 많다”고 말하게 된다. 전학생이나 소수 집단이 있는 학급을 볼 때 이 함정에 특히 자주 빠진다. 비교 기준을 “0”이 아니라 “아무 선호가 없을 때의 값”으로 잡을 것 — 그리고 그 일을 대신 해 주는 것이 θ2\theta_2다.