← R 실습 — 손으로 돌려 보기 차례
부록Function Cross-Reference
sna ↔ igraph 함수 대조표
R 실습 — 손으로 돌려 보기STAGED+ 스터디
같은 줄의 두 함수는 대체로 같은 것을 계산한다. 주황색 표시가 있는 줄은 기본값이 달라 값이 어긋나는 것이니 반드시 본문 해당 절을 확인할 것.
| 하고 싶은 것 | sna | igraph |
|---|---|---|
| 자료구조 · 그리기 | ||
| 객체 만들기 | network::network(adj) | graph_from_adjacency_matrix() graph_from_data_frame() |
| 그리기 | gplot() | plot() |
| 배치 | gplot(mode="fruchtermanreingold") | layout_with_fr() |
| 변환 | intergraph::asIgraph() / asNetwork() | |
| 기초 지표 | ||
| 밀도 | gden() | edge_density() |
| 상호성 | grecip(measure="edgewise") 기본값은 "dyadic" | reciprocity() 기본이 edgewise |
| 전이성 | gtrans() 방향을 살림 → 0.4570 | transitivity(type="global") 방향 무시 → 0.4732 |
| 다이애드 센서스 | dyad.census() | dyad_census() |
| 트라이애드 센서스 | triad.census() | triad_census() |
| 최단거리 행렬 | geodist()$gdist | distances() 두 결과 완전 일치 |
| 컴포넌트 개수 | components(connected="weak") | components(mode="weak")$no |
| 컴포넌트 크기 | component.dist()$csize | components()$csize |
| 고립자 | isolates() | which(degree(g) == 0) |
| 무방향화 | symmetrize(rule="weak") | as_undirected(mode="collapse") |
| 중심성 | ||
| 연결정도 | degree(cmode="indegree") | degree(mode="in") |
| 근접 | closeness(cmode="suminvdir") 기본값 "directed"는 비연결에서 전부 0 | closeness() 비연결이면 경고 + NaN |
| 매개 | betweenness(gmode="digraph") | betweenness(directed=TRUE) 완전 일치 |
| 고유벡터 | evcent() 길이 1로 정규화 | eigen_centrality()$vector 최댓값 1로 정규화 · 순위는 동일 |
| 중심화 | centralization(dat, degree, cmode=) 분모 | centr_degree(loops=FALSE) loops 기본값 TRUE면 분모 |
| 하위집단 | ||
| 극대 클리크 | clique.census() | max_cliques(min=3) |
| k-코어 | — 없음 — | coreness() |
| 커뮤니티 탐지 | — 없음 — | cluster_walktrap() cluster_edge_betweenness() cluster_louvain() (비결정적) |
| 모듈러리티 | — 없음 — | modularity() |
| 구조적 등위성 | equiv.clust() · sedist() | — 없음 — |
| 블록모델 | blockmodel() | — 없음 — |
| 속성 · 모형 · 검정 | ||
| 동류성 | — 직접 계산 — | assortativity_nominal() assortativity_degree() |
| 가중 연결정도 | — 직접 계산 — | strength(weights=) |
| 무작위 그래프 | rgraph() | sample_gnp() · sample_pa() sample_smallworld() · sample_degseq() |
| QAP 검정 | qaptest() · netlogit() | — 없음 — |
| ERGM | ergm::ergm() — network 객체 필요 | |
어느 쪽을 먼저 배울 것인가 — igraph를 주력으로, sna를 보조로 삼는 것을 권한다.
- 커뮤니티 탐지·k-코어·무작위 그래프 모형은 igraph에만 있고, 현대 문헌이 이쪽을 쓴다.
- 대신 sna는 인접행렬을 그대로 받는다는 결정적 장점이 있어 작은 자료로 손 계산과 대조할 때 훨씬 편하다.
- 블록모델링·QAP·ERGM이 필요해지면 그때는 statnet 계보로 넘어가야 한다. intergraph가 그 다리를 놓아 준다.
이 안내서에서 다루지 않은 것 — 이분 네트워크(bipartite)와 투영, 구조적 등위성과 블록모델링, ERGM(지수족 랜덤그래프 모형), 시간에 따라 변하는 네트워크. 앞의 둘은 notes/20_단원3-5·notes/21_단원3-6, ERGM은 notes/32~36 (단원 5-1~5-5)에 있다.