Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

【つながりに効く、ネットワーク研究小話】vol.16 ホモフィリーを測定する

f:id:sansan_maejima:20191220100905p:plain

Sansan DSOC研究員の前嶋です。「つながりに効く、ネットワーク研究小話」の第16回です。休日に野鳥を撮るのが趣味なのですが、さすがに今年の夏の暑さには堪えまして、代わりに涼しい猫カフェで猫の写真を撮りながら、論文を読んだり書いたりしています。

ホモフィリーとは

この連載の第4回では「ホモフィリー」について解説しました。ホモフィリーとは、「類似した人々の間の接触は、類似していない人々の間の接触よりも、高確率で発生するという原理」(McPherson et al. 2001: 416, 筆者訳)のことです。今回は、ホモフィリーを測定する方法について、簡単なコード例(R)も交えて紹介したいと思います。

buildersbox.corp-sansan.com

E-I Index

ホモフィリーを測定するための最もシンプルな方法は、「カテゴリ間のつながり」と「カテゴリ内のつながり」のバランスを計算することです。 Krackhardt and Stern (1988)は、E-I indexという非常に簡易的な指標を提案しています。 EL (external link)をカテゴリ間のつながりの数、 IL (Internal kink)をカテゴリ内のつながりの数とした時、E-I indexは以下のように定式化されます。


\text{E-I index} = \frac{(EL-IL)}{(EL + IL)}

この値は[-1,1]の間の値をとり、すべてのつながりがカテゴリ間のつながりの時に1、すべてのつながりがカテゴリ内のつながりに時に-1になります。例えば、ある集団の中で男性-男性間のつながりが3、女性-女性間のつながりが5、男性-女性間のつながりを2とすると、E-I indexは  \frac{2-(3+5)}{2+(3+5)}= \frac{-6}{10} = -0.6となります。ここから、この集団では比較的同性間でのつながりに偏っていると判断することができるかもしれません。

2つのホモフィリー

実は、カテゴリ間・内のつながりの数は、集団内でそのカテゴリに属する人の分布によって影響を受けます。同じ100人の組織でも、男性が90人・女性が10人の組織と、男性が50人・女性が50人の組織では、仮に全体のつながりの数を一定とし、無作為につながりを作ると、後者のほうが男女間のつながりの数は多くなり、男女内でのつながりの数は少なくなります。

このように、集団内の人口学的なカテゴリの分布に影響を受けて同じカテゴリ内でのつながりが多くなることを、ベースライン・ホモフィリー(baseline homophily)と呼びます。一方で、それだけでは説明できないつながりの偏りのことをインブリーディング・ホモフィリー(inbreeding homophily)と呼びます(McPherson et al. 2001)。ベースライン・ホモフィリーにおけるカテゴリ間のつながりは、潜在的なつながりの「機会」の影響ですが、インブリーディング・ホモフィリーが起きている集団では、カテゴリ内部でのつながり形成への「選好」があると考えられるかもしれません。

先ほど紹介したE-I indexは、ベースライン・ホモフィリーを評価するためには有効な指標ですが、インブリーディング・ホモフィリーを評価しているわけではありません。同じカテゴリの人とつながる選好の強さを評価したい場合は、また別の指標が必要となります。

Freeman's Segregation Index

Freeman (1978) が提案したFreeman's Segregation Index (FSI)は、インブリーディング・ホモフィリーを評価する指標として捉えることができます。この指標は、実際に観測されたカテゴリ間のつながりの数が、期待値と比べてどれほど多いかor少ないかによって、ホモフィリーの程度を測定します。FSIは以下のように定式化されます。


\text{FSI} = \frac{\pi - p}{\pi}

 \piは、観測されたネットワークと同じノードの集合を所与とし、そこで紐帯が完全にランダムに生成されたと仮定した時に発生するカテゴリ間のつながりの数を示し、 pは、実際に観測されたネットワークが含むカテゴリ間のつながりの数を表しています。ここで、 \piは以下のようにして求められます。 nを観測されたつながりの数、 Nをすべての可能なつながりの数とします。2つのカテゴリを考えた時、 m_gをすべてのノードの数、 m_gをカテゴリgに属するノードの数、 m_hをカテゴリhに属するノードの数とした時、可能なすべてのカテゴリ間のつながりの数は、 m_g m_hです。


\pi = n \times \frac{m_g m_h}{N} \\
= n \times \frac{m_g m_h}{N} \\
= \frac{n2m_g m_h}{m(m-1)}

FSIは、0 から 1 までの値をとります。1に近いほど、インブリーディング・ホモフィリーが強いと解釈できます。

結果としてのホモフィリー、過程としてのホモフィリー

しかし、Freeman指数のような、期待値からの乖離を見るような方法を通しても、本当に同一カテゴリの人とつながる「選好」が存在すると結論づけるには不十分です。実はホモフィリーには「結果としてのホモフィリー」と、「過程としてのホモフィリー」の2つがあります。結果としてのホモフィリーは、観測されたネットワークの、カテゴリによる偏りそれ自体のことです。過程としてのホモフィリーは、結果としてのホモフィリーを生む要因としての、カテゴリ内の個人への選好のことを指します。このような書き方をすると混乱するかもしれませんが、最終的にカテゴリ内のつながりが多くなる要因としては、「選好」だけでは説明できない様々な要因があるということです。そのような他の要因として代表的なのが、「焦点」と「トライアド閉鎖」です。

焦点

焦点(focusまたはfoci)とは、クラブ活動や職場など、「その周りで共同的な活動が組織されるような社会的、心理学的、法的、物理的な構成体(entity)」(Feld 1981:1016、筆者訳)のことを指しています。焦点は、凝集的なネットワークの形成を説明するための概念です。高校生のネットワークに例えるならば、同じ部活に所属している生徒は、それらが焦点となり、メンバー間に凝集的なネットワークが発生しやすくなります。ここで、男子バスケットボール部など男女別に分けられた部活や、男女比に偏りのある部活を考えてみましょう。この時、仮に性別に対する選好に関わらず、同じ部活に所属することで、同性間のつながりが生まれやすくなります。したがって、選好としてのホモフィリーの効果を推定する時、焦点の効果を考慮する必要があるのです。

トライアド閉鎖性

トライアド閉鎖性(triadic closure)とは、「友達の友達同士は友達になりやすい」という傾向のことを指しています。社会的なカテゴリを共有するA,B,Cの三人の関係性を考えた時、AとB、AとCが友達関係の時、BとCも友達になりやすくなります。この時、BとCはお互いの属性への選好によってつながったのか、Aの共通の友達だからつながったのかを区別する必要があります。もし、このような効果を考慮しない場合、本来の選好としてのホモフィリーの強さは、過大評価される可能性があります(Goodreau et al. 2009; Wimmer and Lewis 2010)。

Exponential Random Graph Model

あるネットワークが観測されるメカニズムを、このような複数の要因に分解して評価するときは、Exponential Random Graph Model (ERGM)が有効です(Robins et al. 2006)。観測されたネットワークが観測される確率に対して、2者間のカテゴリの一致やトライアド閉鎖傾向などのネットワーク形象(network configuration)、つまりネットワークの構成要素が影響を与えるというモデルです。ERGMは、以下のように定式化されます。

 
\Pr(\bf{Y}=\bf{y}) = \frac{1}{\kappa} \exp\{\sum_A \theta_k g_k (\bf{y})\}
  •  \bf {Y} : ネットワークの確率変数。
  •  \bf {y} : ネットワークの実現値(実際に観測されたネットワーク)。
  •  g_k (\bf {y}) : ネットワーク形象  k のネットワーク統計量。
    • 例1、 y にトライアングルが4つ含まれている場合、 g_{triangle}(\bf{y})= 4
    • 例2、 y にカテゴリ内のつながりが3本含まれている場合、 g_{nodematch}(\bf{y}) = 3
  •   \theta_k : ネットワーク形象  k に対応するパラメータ。
  •  A :モデル内で検討するトライアングルなどのネットワーク形象の集合。
  •  \kappa : 正規化定数。可能なすべてのネットワークの   \exp{\sum_A \theta_k g_k(y)} の合計値。これは非常に小さいネットワークでも組み合わせ爆発により計算困難となるため、実際のパラメータの推定は最尤推定とMCMCを組み合わせた方法で行われる(気になる方は前嶋の個人ブログを参照)。

www.ncbi.nlm.nih.gov

Rで実装する

ここまで、様々なホモフィリーの評価方法について紹介してきました。ここからは、{statnet}パッケージを用いて、実際のネットワークデータに対してそれぞれの指標を計算してみましょう。{statnet}の使用方法については、下記リンクをご覧ください。

www.ncbi.nlm.nih.gov

サンプルデータである faux.mesa.high はアメリカ中西部のある高校の内部の友人ネットワークのデータです。

下準備

set.seed(1024)

library(statnet)
library(ggnetwork)
library(stargazer)

data('faux.mesa.high')

データ要約

> faux.mesa.high
 Network attributes:
  vertices = 205 
  directed = FALSE 
  hyper = FALSE 
  loops = FALSE 
  multiple = FALSE 
  bipartite = FALSE 
  total edges= 203 
    missing edges= 0 
    non-missing edges= 203 

 Vertex attribute names: 
    Grade Race Sex 

No edge attributes

属性データとしては性別(Sex)、人種(Race)、学年(Grade)が含まれています。今回は性別のホモフィリーについて検討していきます。

ネットワークグラフを描画

性別で色分けしたネットワークグラフを描いてみます。

gnet <- ggnetwork(faux.mesa.high)
g <- ggplot(data = gnet,
                aes(x = x,
                    y = y,
                    xend = xend,
                    yend = yend))
g <- g + geom_edges(col = "gray")
g <- g + geom_nodes(aes(col = Sex))
g <- g + theme_blank()
g

f:id:sansan_maejima:20200908222733p:plain

ぱっと見る限りでは、同じ性別間のつながりは比較的多いように見受けられます。

混合行列

混合行列(mixing matrix)は、カテゴリ間のつながりをクロス表で示すものです。今回のネットワークは無向ネットワークなので、行列の要素の総和とエッジ数は等しくないことに注意してください。

> mm <- mixingmatrix(faux.mesa.high,"Sex")
> 
> mm
Note:  Marginal totals can be misleading
 for undirected mixing matrices.
   F  M
F 82 71
M 71 50

E-I Index

E-I indexの実装例です。

ei_index <- function(network, attribute){
  atm <- mixingmatrix(network, attribute, "Sex")$matrix
  IL <- sum(diag(mat))
  EL <- mat[1,2] #無向ならばmat[2,1]でも可
  ei <- (EL - IL)/(EL + IL)
  return(ei)
}
> ei_index(faux.mesa.high, "Sex")
[1] -0.3004926

性別間のつながりは、性別内のつながりに比べて少ないことがわかります。では、期待値と比べると、多いのでしょうか、少ないのでしょうか。

Freeman's Segregation Index

FSIの実装例です。

freeman_index <- function(network, attribute){
  mat <- mixingmatrix(network, attribute)$matrix
  p <- mat[upper.tri(mat)]
  attr_vec <- network %v% attribute
  attr_table <- attr_vec %>% table
  mg <- attr_table[1] %>% as.integer
  mh <- attr_table[2] %>% as.integer
  m <- mg + mh
  n <- network.edgecount(network)
  pi = (n*2*mg*mh)/(m*(m-1))
  freeman <- 1 - (p/pi)
  return(freeman)
}
> freeman_index(faux.mesa.high, "Sex")
[1] 0.3030923

性別間のつながりの数が、期待値と比べて約30%ほど少ないことがわかります。次に、焦点効果やトライアド閉鎖を考慮してみましょう。

ERGM

他の要因を統制しながら、純粋な性別ホモフィリーの効果を取り出します。そのため、人種ホモフィリーや、学年による焦点効果、トライアド閉鎖を考慮したモデルを作ります。推定されたパラメータの変化がわかりやすいように、階層的にモデルを組んでいきます。今回、トライアド閉鎖はGWESPというネットワーク統計量を投入していますが、こちらの説明は煩雑なので、気になる方は以下のリンクなどを参照してみてください。3人とも互いにつながっているようなトライアングルの数を拡張した統計量となっています。

eehh-stanford.github.io

model_list <- list()
# 性別マッチングのみのモデル
model_list[["model 1"]] <- ergm(faux.mesa.high ~ edges + nodematch("Sex"))
# model 1に加えて人種(race)のマッチングを考慮したモデル
model_list[["model 2"]] <- ergm(faux.mesa.high ~ edges + nodematch("Sex") + nodematch("Race"))
# model 2に加えて、焦点となる学年(grade)を考慮したモデル
model_list[["model 3"]] <- ergm(faux.mesa.high ~ edges + nodematch("Sex") + nodematch("Race") + nodematch("Grade"))
# model 3に加えて、トライアド閉鎖(GWESP)を考慮したモデル
model_list[["model 4"]] <- ergm(faux.mesa.high ~ edges + nodematch("Sex") + nodematch("Race") + nodematch("Grade") + gwesp(fixed = FALSE))
> stargazer(model_list,
+           type = "text",
+           digits = 3)

===========================================================
                              Dependent variable:          
                    ---------------------------------------
                                faux.mesa.high             
                       (1)       (2)       (3)       (4)   
-----------------------------------------------------------
edges               -4.989*** -5.190*** -6.601*** -6.668***
                     (0.119)   (0.139)   (0.200)   (0.181) 
                                                           
nodematch.Sex       0.634***  0.634***  0.645***  0.542*** 
                     (0.148)   (0.148)   (0.149)   (0.126) 
                                                           
nodematch.Race                0.445***  0.433***   0.280** 
                               (0.141)   (0.143)   (0.120) 
                                                           
nodematch.Grade                         2.831***  1.968*** 
                                         (0.177)   (0.172) 
                                                           
gwesp                                             1.343*** 
                                                   (0.109) 
                                                           
gwesp.decay                                       0.372*** 
                                                   (0.074) 
                                                           
-----------------------------------------------------------
Akaike Inf. Crit.   2,270.484 2,262.615 1,919.174 1,738.158
Bayesian Inf. Crit. 2,286.380 2,286.459 1,950.966 1,785.846
===========================================================
Note:                           *p<0.1; **p<0.05; ***p<0.01

nodematch.Sex が性別ホモフィリーの係数を示します。これを見ると、すべてのモデルにおいて有意な正の効果を持っていることがわかります。これは、人種や学年を考慮しても大きく変動することはありませんが、トライアド閉鎖を考慮すると、減少することがわかります。それでもなお、この高校には性別に基づくホモフィリーが存在すると考えて良さそうです。

さいごに

社会的カテゴリに基づいたネットワークの分離を評価する方法には、今回紹介したもの以外にも、様々な指標があります。下記の論文(Bojanowski and Corten 2014)では、それらの指標を包括的にレビューし、長所・短所が整理されていますので、関心のある方は一読をおすすめします。

www.sciencedirect.com

最後になりますが、この記事が、組織や社会全体でのネットワークの多様性を分析する一助になれば嬉しく思います。


これまでの記事

vol.15 数珠つなぎ構造から、隠れた規範を炙り出す

vol.14 もう一つの「社会的距離」

vol.13「やぁやぁ、知ってる?」―噂と社会ネットワーク

vol.12 強いつながりの条件

vol.11 幻の社会的孤立化をめぐって

vol.10 闇のネットワーク、どこまで迫れるか?(後編)

vol.9 闇のネットワーク、どこまで迫れるか?(前編)

vol.8 「信頼」か、「しがらみ」か?――社会関係資本のダークサイド

vol.7 セレンディピティと社会ネットワーク

vol.6 友だちの数に限界はあるか?

vol.5 社会ネットワークと転職

© Sansan, Inc.