俺の果南とルビィの仲がこんなに悪いわけがない

MikuHatsune2016-10-09

サンシャインメンバーのセリフ回数を調べたので、そのまま名前の呼び合いグラフを作った話。
 
名前を呼んでいる、愛称は可。善子が自分のことを「善子ちゃうわヨハネや」というのも両方カウントしている。
ダイヤのことを生徒会長、鞠莉のことを理事長はよそよそしいので除外、ただし、ルビィがダイヤのことをお姉ちゃんと呼ぶのは可。
前回は無向グラフで扱ったが、今回は自分を呼ぶことも含めている有向グラフとした。
 
結果としては
1話で千歌がラブライブと言い出して2話で梨子を捕まえつつ1年生組にコナかけつつ、3話でなんとかライブをして4話でルビィ、花丸のメンバー入りの気持ちを確かめ、5話で善子をとりこみつつ6-8話でちょいシリアスが入りながら9話で果南を取り込み、10-11話でヨーソローにスポットライトがあたりすぎ感を出しながら12話はなんとかつないで、13話では誰得ミュージカルチックに仕上げているのがわかる。

 
グラフの統計量を見てみる。ここで、前回のグラフで推移性(transitivity)を見た。推移性は、「友達の友達は自分の友達」というような三角形を作っている場合にあたり、ネットワークの密っぷりを示していそう。
ラブライブもサンシャインも、1話目から3話目にかけて推移性が落ちるのは同様でる。というのも、1話目はなんとなくみんな出演するけど、2話目はたいてい2年生、3話目は1年生に焦点が当たるので、必然的にセリフがその学年のみに密集する。ラブライブでは6話でセンターが誰だ戦争が起きたり、合宿に行ってるのでそれなりに名前を呼んでいるが、サンシャインは果南がセリフ無かったりでアレ。
最終回は、ラブライブはライブをしたけど、サンシャインはミュージカルをしたので名前呼びが少なかったのか? あんまり覚えてないけど。
話数という時系列相関があるのが否めないが、wilcox の対応検定で有意差はなかった。2つのアニメでそんなに大きく違う、ということはなさそう。

 
相互性(reciprocity)は、有向グラフの両想い度を示す。前回の解析ではやっていなかったのでやってみる。
ラブライブでは1話目から相互性は高いが、物語中盤で落ち、最終回に向けて両想い度が盛り返している。サンシャインでは1話目はまだしも2話以降で急激に両想い度が下がり、7話のTOKYO では仲良くしているが、全体としてはラブライブより両想い度が低い傾向にありそう。だが、これもwilcox では有意差はなかった。

 
というわけで、サンシャインメンバーとラブライブメンバーの結束度合いはあんまり大きくは変わらなさそう。
 
全話まとめてプロットすると、嫌な予感はしていたが果南とルビィが一回も名前を呼び合っていなかった。ラブライブでのえりちーと凛の再来である。こんなところまで似なくてよかったのではないかとは思う。

 
次に、誰と誰が一番百合カップルかをやろうと思ったが、全話まとめたデータを使うと全員が同じコミュニティになってしまったので、distatis を使ってメンバー9人の「仲の良さ空間」というものを作ってみようと思う。
グラフの統計量で、各ノードに対して取れるものとしては推移性の他にbetweenness とcloseness という指標がある。いずれも、ノードとノードがどうつながっているとか、パスを通るときのノードがうんたらかんたらという統計量なので、とりあえず計算する。
すると、9人*13話という行列*統計量分できるので、距離にすると、distatis の入力としてのI\times I\times T\times アレイができる。
これを第2主成分までxy プロットにすると、結局、1-3年生組が近くに配置されるが、
ダイヤはルビィに呼ばれることが多いので、他の3年生よりかは1年生組に近い
千歌は全員に対して名前を呼ぶことが多いので、他の2年生よりかは1,3年生に近い
位置にいるような気がする。closeness, betweenness, transitivity の統計量の向きは各学年でほぼ同じ方向を向いているが、検討するのが面倒なので終わり。

library(DistatisR)
library(abind)
library(jpeg)
library(igraph)
stat <- list(
  closeness=sapply(gani2, closeness),
  betweenness=sapply(gani2, betweenness),
  transitivity=sapply(gani2, transitivity, type="local", isolates="zero")
)

IIT <- do.call(abind, c(lapply(lapply(stat, dist), as.matrix), along=3))
dr <- distatis(IIT)

xy <- dr$res4Splus$F[,1:2]
ledcols <- c("orange", "blue", "darkgreen")
plot(xy, xlim=c(-1, 1)*1.0, ylim=c(-1, 1)*1.0)
abline(h=0, v=0, lty=3)
legend("topleft", legend=dimnames(IIT)[[3]], col=ledcols, lty=1, lwd=3 )
for(i in 1:3){
  for(j in 1:9){
    x0 <- xy[j, 1]; y0 <- xy[j, 2]
    x1 <- dr$res4Splus$PartialF[j, 1, i]+x0
    y1 <- dr$res4Splus$PartialF[j, 2, i]+y0
    arrows(x0, y0, x1, y1, length=0.05, lwd=2, col=ledcols[i])
  }
}

lay0 <- xy
for(j in seq(pics)){
  xleft=lay0[j, 1]*ra - xy0[2, j]/2*s0
  ybottom=lay0[j, 2]*ra - xy0[1, j]/2*s0
  xright=lay0[j, 1]*ra + xy0[2, j]/2*s0
  ytop=lay0[j, 2]*ra + xy0[1, j]/2*s0
  rasterImage(image=pics[[j]], xleft=xleft, ybottom=ybottom, xright=xright, ytop=ytop, xpd=TRUE)
}
高海千歌	桜内梨子	渡辺曜	津島善子	国木田花丸	黒澤ルビィ	松浦果南	黒澤ダイヤ	小原鞠莉
0 0 0 0 0 0 0 0 0 0 0 0 0	0 7 3 0 2 3 4 2 0 13 6 3 3	6 2 3 0 0 0 1 0 0 0 12 2 1	0 0 0 0 4 0 2 0 1 0 0 0 0	0 2 3 2 1 0 0 0 0 0 1 0 0	0 2 1 2 1 1 0 1 1 0 0 0 0	1 0 0 1 0 0 0 0 3 0 0 0 0	0 0 0 1 0 1 0 0 5 0 0 0 0	0 0 1 0 0 0 0 0 2 0 0 0 0
0 4 3 2 1 0 4 8 1 2 5 3 3	0 1 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 0 1 0 1 0 0 7 0 0	0 0 0 0 0 0 0 1 0 0 1 0 0	0 0 0 1 1 0 0 1 0 0 1 0 1	0 0 0 0 1 0 0 1 0 0 0 0 0	0 0 0 0 0 0 0 0 1 0 0 0 1	0 0 0 0 0 0 0 0 1 0 0 0 0	0 0 2 0 0 0 0 0 1 0 0 0 0
7 1 1 4 1 3 1 8 5 4 30 2 3	0 0 0 0 0 2 0 0 0 1 5 1 2	0 0 0 0 0 0 0 0 0 0 2 0 0	0 0 0 0 0 1 0 1 0 0 0 0 0	0 0 0 0 2 0 0 0 0 0 0 0 0	0 0 0 1 1 1 0 0 0 0 0 0 0	1 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 0 1 0	0 0 2 0 0 0 0 0 0 0 2 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	6 1 0 0 17 2 3 3 1 1 1 1 3	1 0 0 1 2 1 1 0 0 0 0 0 0	0 0 0 0 0 0 1 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	5 0 0 0 2 2 1 0 0 0 0 0 0	1 1 1 10 4 1 3 1 1 2 0 0 0	0 1 0 12 2 0 3 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	0 1 0 1 0 0 0 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 2 1 1 1 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 1 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 2 1 0 1 0 0 0 0 0	0 0 1 10 0 2 1 0 1 0 0 0 0	0 1 0 14 2 3 2 1 1 3 1 3 1	0 0 0 0 0 0 0 0 0 0 0 0 0	0 1 0 5 1 3 2 1 2 3 0 1 1	0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 2 0 0 0 1 7 0 1 1 0	0 0 0 0 0 0 0 0 0 2 2 0 0	0 0 0 0 0 0 0 0 0 0 1 0 0	0 0 0 0 0 0 0 0 0 0 0 0 1	0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 0 0 0 1 1 1 0 0 0	1 0 0 1 0 0 0 1 4 1 0 0 1
0 0 0 0 0 0 0 0 0 0 1 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 1 0 0 0	0 0 0 0 0 0 0 0 0 1 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 2 0 0 3 0 1 2 0 0 0	0 0 0 0 0 0 0 0 4 2 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 1	0 0 0 0 0 2 1 0 1 3 1 0 1
0 0 0 0 0 0 0 0 2 0 5 0 0	0 0 0 0 0 0 0 0 0 0 4 0 0	0 0 0 0 0 0 0 0 0 0 1 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 0 0 0 0 0 0 0 0 0 0	0 0 0 2 0 3 0 3 13 0 3 2 3	0 0 2 0 0 3 2 2 4 0 1 0 1	0 0 3 0 1 0 0 0 0 0 0 0 0