SlideShare a Scribd company logo
Rで方言のネットワーク分析

            小野原彩香
           @aonoa732384
            Osaka.R #7
 2012/02/12(日)   大阪大学豊中キャンパス


                          背景:snaパッケージ内gplot3d()にて作成   1
データをマイ
                           自己紹介
ニングしている
ところ…?…ろ?
                 言語地理
                           @aonoa732384
                   学
                           小野原 彩香
                          文化情報学研究科
データサ
イエンス                       博士後期課程
         興味・関心

                   社会言語
                     学


       地域研究



                                          2
方言地図というものが色々ある
       • 柳田國男の方言周圏論
         『蝸牛考』が有名?
       • 日本方言研究会のHPにあるも
         のだけでもかなりある(300
         種類ほど掲載).
          – 言語地図目録(単行本)
        – http://dialectology-
          jp.org/wiki.cgi?page=%A
          5%C7%A1%BC%A5%BF%A5
          %D9%A1%BC%A5%B9%2F%
          B8%C0%B8%EC%C3%CF%BF
          %DE%CC%DC%CF%BF%2F%
          B8%C0%B8%EC%C3%CF%BF
          %DE%CC%DC%CF%BF%A1%
          CA%C3%B1%B9%D4%CB%D
          C%A1%CB

                                3
今日は,
• 国立国語研究所編『日本言語地図(全6巻)』
  (1966年〜1974年刊行)のうち,
• 「ものもらい」の地図について分析
 第112図 ものもらい(麦粒腫)
 http://www6.ninjal.ac.jp/laj_map/04/03/




                                           ©フリーメディカルイラスト図鑑
                                                         4
「ものもらい」
• 『日本言語地図』データベース
  (http://www6.ninjal.ac.jp/lajdb/)にて,試
  験的に公開されている.

• http://www6.ninjal.ac.jp/lajdb/04/
  – laj_q036_b02-01b.csv(元データ)
  – readme_q036_b01-01b_pub.txt(データの説明)




                                          5
laj_q036_b02-01b.csv




                       どの地点にどういう語形があるかというデータ
                                          6
元の方言地図
各地での「ものもらい」の
言い方が記号であらわされ
    ている.




          全国2400カ所


                     7
記号の凡例




        8
いきなり,プロット
           45
           40
 mono2$y

           35
           30




                                      どうやって作ったの?
           25




                125   130      135     140   145

                            mono2$x                9
laj_q036_b02-01b.csv




                       語形をまず分類!!
                                   10
分類は凡例の色分け(言語
                  学的分類)に従う


    a
        b
            f

        c            g
a
    b
        d
            g
                     h
        e
                           11
各クラスターの意味
•   a:乞食系表現 例:MONOMORAI
•   b:語頭にIN-が来る表現 例:INMORAI
•   c:目の果実?表現 例:MIINALII
•   d:擬人的表現 例:OHIMESAN
•   e:椀・籠などの道具系表現 例:MEKAGO
•   f:性器に関する表現 例:MEHUGURI
•   g:MEP-,MEB-の類の表現 例:MEBACIKO
•   h:その他

                                  12
分類をコード化して付け加
                                     える
laj_q036_b02-01b.csv




                       一地点最大,4つの併用語
                          があるらしい…              13
言語データ+緯度経度データ
• 調査地点の緯度経度(LAJ_ALL_Points_V2.txt)
  – 方言の宇宙
 – http://www2.ninjal.ac.jp
 /takoni/GISME/GISME.htm
 – LAJ調査地点の経度・緯度
 《バージョン2》(zip圧縮)




                                     14
地図を書くためのおまじない
#言語データの読み込み
mono<-read.table("laj_q036_b02-01b.csv",header=T,row.names=1,sep = ",")

#地理データの読み込み
pd<-read.table("LAJ_ALL_Points_V2.txt",header=T)

#データ列の付け加え
mono2<-transform(mono, x=1, y=1)

#地理データ中の地点番号と言語データ中の地点番号をリンクさせる
for(i in 1:nrow(pd) ){
            for(j in 1:nrow(mono2)){
                        if(pd$Point_no[i] == mono2$loc[j]){
                                   mono2$x[j] <- pd$X_degree[i]
                                   mono2$y[j] <- pd$Y_degree[i]
                        }
            }
}

#とりあえず,それっぽくプロット
plot(mono2$x,mono2$y,col=mono2$v_code_1,pch=16)
                                                                          15
45   できたっ!!
               spplot()ならもう
          40




               ちょっとグラフィ
               カルな図が描けま
                     す!!
mono2$y

          35




                                              黄色と黒の勢力が二
                                                 大勢力!!
          30




                                               ものもらい系
                                                  と
                                                めばちこ系
          25




               125     130       135    140     145
                                                          16
                              mono2$x
ものもらい vs めばちこ?

• クラスターa(ものもらい系)とクラスターg
  (めばちこ系)に注目!!



• 両者の共起の様子を地理的に配置して,使用傾
  向を見てみる…



                          17
ものもらい・・・めばちこ

      併用語形に注目し,
      aとgだけ使っている物のみ
      をピックアップ
       g,0,0,0
       g,g,0,0
       g,g,g,0   aとgの組み合わせは何
       g,g,a,0   パターンある?
       g,a,0,0
       g,a,a,0
       a,a,g,g
       a,g,0,0
       a,a,g,0
       a,a,0,0
       a,0,0,0
                           18
下準備
  aとgだけ使っている          さらに               a,gが混ざる部分
  地点の全パターン            コード化              のみに注目


めばちこ    g,0,0,0   K
        g,g,0,0   J                   バターン間の距離定義
                                      (今回は任意に設定)
        g,g,g,0   I
        g,g,a,0   H
        g,a,0,0   G              H     G     F     E     D     C
        g,a,a,0   F         H    0    0.2   0.4   0.6   0.8    1
        a,a,g,g   E         G   0.2    0    0.2   0.4   0.6   0.8
        a,g,0,0   D          F  0.4   0.2    0    0.2   0.4   0.6
        a,a,g,0   C         E   0.6   0.4   0.2    0    0.2   0.4
        a,a,0,0   B         D   0.8   0.6   0.4   0.2    0    0.2
ものもらい
        a,0,0,0   A         C    1    0.8   0.6   0.4   0.2    0
                      dist0<-
                      read.table("clipboard",header=T,row.names=1)
                                                                    19
イメージ図
     H     G F E D           C
                                         ものもらいを使う.
H    0    0.2 0.4 0.6 0.8    1
                                         けど,めばちこも使
G   0.2    0 0.2 0.4 0.6    0.8          う.後,めぼいとっ
F   0.4   0.2 0 0.2 0.4     0.6           てのもあるよ.             C:a,a,g,0
E   0.6   0.4 0.2 0 0.2     0.4
D   0.8   0.6 0.4 0.2 0     0.2     距離0.8              い (141.66, 46.43)
C    1    0.8 0.6 0.4 0.2    0

                                              距離0.2
           G:g,a,0,0    あ           距離0.6
                                                          D:a,g,0,0
                       (141.03, 46.06)        う
                                                  (141.21, 45.24)
     めばちこをよく使
     う.けど,ものも                               ものもらいを使う.け
     らいも使うね.                                ど,めばちこも使うよ.

                                                                          20
下準備
  loc code x      y
 71646 G 141.66 45.43
 72458 G 141.21 45.24
                               #クラスターa,gを含むデータの地点番号
 72495 G 141.14 45.18
                               と分類コードの行列をsimccにいれる.
170805 H 142.14 43.99
                               simcc<-
172775 G 141.89 43.54
                               read.table("clipboard",header=T,row.na
173910 G 142.26 43.48
                               mes=1)
174554 G 141.36 43.24
174755 D 141.89 43.24
              ・・・




 739144   C   130.36   32.43
 740625   G   134.14   33.96
 740875   G   134.64   33.88
 750289   D   135.74   33.86
 833511   G   131.29   31.81
                                                                  21
いよいよネットワーク!!
 • snaパッケージ             ※参照:library(help="sna")
 •      ネットワークを描くには,データを行列(もしくはリスト)の形にしなけ
        ればならない

                                                  D
                    頂点の名前
            A   B   C   D   E   F
        A   0   1   0   0   1   1       A                     E
        B   1   0   0   1   0   1
頂点の名前
頂点の名前




        C   0   0   0   0   1   0
                                                      C
        D   0   1   0   0   1   0
        E   1   0   1   1   0   0                         F
                                            B
        F   1   1   0   0   0   0


                                                                  22
ネットワーク分析のための
         パッケージ
• sna, network, graph, igraph, inetoworkなどがあ
  る(らしい…が全貌を知らない)




     http://cran.r-project.org/web/packages/sna/index.html   23
色々調整をして…
#行数と列数がsimccの列数の行列で                       71646 72458 72495 170805 172775
成分が0の行列を作り,mdist0に入                 71646     0     0     0    0.2        0
れる.このとき行名列名はそれぞれ, 72458                       0     0     0    0.2        0
simccの行名と列名と同じ(すなわ                  72495     0     0     0    0.2        0
ち地点番号)                             170805 0.2 0.2 0.2            0    0.2
mdist0<-                           172775     0     0     0    0.2        0
matrix(0,nrow=nrow(simcc),ncol=n   173910     0     0     0    0.2        0
row(simcc),dimnames=list(rownam    174554     0     0     0    0.2        0
es(simcc),rownames(simcc)))        174755 0.6 0.6 0.6          0.8    0.6
                                   179813 0.4 0.4 0.4          0.6    0.4
for(k in 1:nrow(simcc)){           270318     0     0     0    0.2        0
          for(l in 1:k){           368882 0.6 0.6 0.6          0.8    0.6
                    mdist0[k,l]<-  371091 0.6 0.6 0.6          0.8    0.6
dist[simcc[k,1],simcc[l,1]]        372058 0.6 0.6 0.6          0.8    0.6
                    mdist0[l,k] <- 372071 0.6 0.6 0.6          0.8    0.6
mdist0[k,l]                        469533 0.6 0.6 0.6          0.8    0.6
          }
                                   557706 0.6 0.6 0.6          0.8    0.6
}
                                   559402     0     0     0    0.2     24 0
では,ネットワーク
library(sna)                                      今回は描画のみ
par(bg = "grey10") #描画領域の背景色指定
am<-1-mdist0 #類似度am
coo<-simcc[,2:3] #緯度経度
vcol<- read.table(“clipboard”,header=T) #色のpm, 別途用意

  #gplot(データ,
          gmode = "graph", 無向グラフ
          vertex.cex = 1.3, 頂点の大きさ
          jitter = F, 頂点の位置を微動させるか
          thresh=0.5, 辺を描く閾値,この数より大きければ引く
          edge.lwd=am, エッジの太さ
          vertex.col = vertex.col=cm.colors(6)[vcol[,2]], 頂点の色
          edge.col = rgb(1,1,1,0.1), 線の色(rgb)と透過度
          coord=coo 頂点の配置)
#ネットワークのプロット
gplot(am,gmode="graph",vertex.cex=1.3,jitter=F,thresh=0.5,edge.lwd=am,
vertex.col=cm.colors(6)[vcol[,2]],edge.col=rgb(256,256,0,0.05),coord=coo)
                                                                            25
しかし,解釈までの道
            描画!!                                  のりはまだまだ遠い…

     H     G F E D           C           H     G F E D           C
H    0    0.2 0.4 0.6 0.8    1      H    0    0.2 0.4 0.6 0.8    1
G   0.2    0 0.2 0.4 0.6    0.8     G   0.2    0 0.2 0.4 0.6    0.8
F   0.4   0.2 0 0.2 0.4     0.6     F   0.4   0.2 0 0.2 0.4     0.6
E   0.6   0.4 0.2 0 0.2     0.4     E   0.6   0.4 0.2 0 0.2     0.4
D   0.8   0.6 0.4 0.2 0     0.2     D   0.8   0.6 0.4 0.2 0     0.2
C    1    0.8 0.6 0.4 0.2    0      C    1    0.8 0.6 0.4 0.2    0




                    (ものもらい, めばちこ)                      (ものもらい, めばちこ)
                    (めばちこ,ものもらい)                       (めばちこ,ものもらい)
    thresh=0.8                      thresh=0.5
同じコード地点同士のみにエッジを張る                  同じクラスター同士のみにエッジを張る
                                                   26
最初の大分類との重ね合わせ




                27
実は,こんなデータだった
パターン 件数                                  2パターンのみが異様
                                         2パターンのみが異様
g,0,0,0 676                                 に多い.
                                            に多い.

g,g,0,0  32




                    30
g,g,g,0   2



                    25
g,g,a,0   1


                    20
g,a,0,0  23
              地地地
                                             2種類のネットワークを
g,a,a,0   1
                    15
                                             作って,それぞれの中心
a,a,g,g   1         10                       性を求めるなどした方が
                                               良かったか…?
a,g,0,0  32
                    5




a,a,g,0   2
                    0




a,a,0,0  47              g,g,a,0   g,a,0,0    g,a,a,0   a,a,g,g   a,g,0,0   a,a,g,0


a,0,0,0 739                                         パパパパ
                                                                                      28
ネットワーク分析のコツ
• とにかくデータ加工のプロセスが勝負!!
 – 何を頂点とするか,何を辺とするか,頂点の間の距離の取
   り方etc…特に元データの持つ情報量が多い場合


• データが多すぎても(Rでは特に)処理に時間が掛
  かるし,少なすぎても味気ないグラフになる.

• (他でもそうだろうが)人文学系のデータはデータ
  の背景を理解していないと,加工でも分析でも方向
  性を見失い路頭に迷う…

                            29
良いネットワークライフを!!




 ご清聴ありがとうございました.

      日本地図のシェープファイルは,行政界bndl_1_1.shp                         30
      http://www.globalmap.org/download/kanni01.htmlを使わせていただきました.

More Related Content

Similar to Rで方言のネットワーク分析

充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
Hiroshi Yamashita
 
文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析
Preferred Networks
 
行列計算を利用したデータ解析技術
行列計算を利用したデータ解析技術行列計算を利用したデータ解析技術
行列計算を利用したデータ解析技術
Yoshihiro Mizoguchi
 
20150725 オープンキャンパス資料
20150725 オープンキャンパス資料20150725 オープンキャンパス資料
20150725 オープンキャンパス資料
Takeo Kunishima
 
岡山県立大学オープンキャンパス資料
岡山県立大学オープンキャンパス資料岡山県立大学オープンキャンパス資料
岡山県立大学オープンキャンパス資料
Takeo Kunishima
 
Dsirnlp#7
Dsirnlp#7Dsirnlp#7
Dsirnlp#7
Kei Uchiumi
 
テーマ別勉強会(R言語)#3.pdf
テーマ別勉強会(R言語)#3.pdfテーマ別勉強会(R言語)#3.pdf
テーマ別勉強会(R言語)#3.pdf
Takuya Kubo
 
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)Koji Matsuda
 
屈折パラダイムの(心内)表現はどうなっているのか?
屈折パラダイムの(心内)表現はどうなっているのか?屈折パラダイムの(心内)表現はどうなっているのか?
屈折パラダイムの(心内)表現はどうなっているのか?
Kow Kuroda
 

Similar to Rで方言のネットワーク分析 (10)

充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
 
文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析
 
行列計算を利用したデータ解析技術
行列計算を利用したデータ解析技術行列計算を利用したデータ解析技術
行列計算を利用したデータ解析技術
 
20150725 オープンキャンパス資料
20150725 オープンキャンパス資料20150725 オープンキャンパス資料
20150725 オープンキャンパス資料
 
Comp geom20131107open
Comp geom20131107openComp geom20131107open
Comp geom20131107open
 
岡山県立大学オープンキャンパス資料
岡山県立大学オープンキャンパス資料岡山県立大学オープンキャンパス資料
岡山県立大学オープンキャンパス資料
 
Dsirnlp#7
Dsirnlp#7Dsirnlp#7
Dsirnlp#7
 
テーマ別勉強会(R言語)#3.pdf
テーマ別勉強会(R言語)#3.pdfテーマ別勉強会(R言語)#3.pdf
テーマ別勉強会(R言語)#3.pdf
 
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)
 
屈折パラダイムの(心内)表現はどうなっているのか?
屈折パラダイムの(心内)表現はどうなっているのか?屈折パラダイムの(心内)表現はどうなっているのか?
屈折パラダイムの(心内)表現はどうなっているのか?
 

Rで方言のネットワーク分析

  • 1. Rで方言のネットワーク分析 小野原彩香 @aonoa732384 Osaka.R #7 2012/02/12(日) 大阪大学豊中キャンパス 背景:snaパッケージ内gplot3d()にて作成 1
  • 2. データをマイ 自己紹介 ニングしている ところ…?…ろ? 言語地理 @aonoa732384 学 小野原 彩香 文化情報学研究科 データサ イエンス 博士後期課程 興味・関心 社会言語 学 地域研究 2
  • 3. 方言地図というものが色々ある • 柳田國男の方言周圏論 『蝸牛考』が有名? • 日本方言研究会のHPにあるも のだけでもかなりある(300 種類ほど掲載). – 言語地図目録(単行本) – http://dialectology- jp.org/wiki.cgi?page=%A 5%C7%A1%BC%A5%BF%A5 %D9%A1%BC%A5%B9%2F% B8%C0%B8%EC%C3%CF%BF %DE%CC%DC%CF%BF%2F% B8%C0%B8%EC%C3%CF%BF %DE%CC%DC%CF%BF%A1% CA%C3%B1%B9%D4%CB%D C%A1%CB 3
  • 4. 今日は, • 国立国語研究所編『日本言語地図(全6巻)』 (1966年〜1974年刊行)のうち, • 「ものもらい」の地図について分析 第112図 ものもらい(麦粒腫) http://www6.ninjal.ac.jp/laj_map/04/03/ ©フリーメディカルイラスト図鑑 4
  • 5. 「ものもらい」 • 『日本言語地図』データベース (http://www6.ninjal.ac.jp/lajdb/)にて,試 験的に公開されている. • http://www6.ninjal.ac.jp/lajdb/04/ – laj_q036_b02-01b.csv(元データ) – readme_q036_b01-01b_pub.txt(データの説明) 5
  • 6. laj_q036_b02-01b.csv どの地点にどういう語形があるかというデータ 6
  • 9. いきなり,プロット 45 40 mono2$y 35 30 どうやって作ったの? 25 125 130 135 140 145 mono2$x 9
  • 10. laj_q036_b02-01b.csv 語形をまず分類!! 10
  • 11. 分類は凡例の色分け(言語 学的分類)に従う a b f c g a b d g h e 11
  • 12. 各クラスターの意味 • a:乞食系表現 例:MONOMORAI • b:語頭にIN-が来る表現 例:INMORAI • c:目の果実?表現 例:MIINALII • d:擬人的表現 例:OHIMESAN • e:椀・籠などの道具系表現 例:MEKAGO • f:性器に関する表現 例:MEHUGURI • g:MEP-,MEB-の類の表現 例:MEBACIKO • h:その他 12
  • 13. 分類をコード化して付け加 える laj_q036_b02-01b.csv 一地点最大,4つの併用語 があるらしい… 13
  • 14. 言語データ+緯度経度データ • 調査地点の緯度経度(LAJ_ALL_Points_V2.txt) – 方言の宇宙 – http://www2.ninjal.ac.jp /takoni/GISME/GISME.htm – LAJ調査地点の経度・緯度 《バージョン2》(zip圧縮) 14
  • 15. 地図を書くためのおまじない #言語データの読み込み mono<-read.table("laj_q036_b02-01b.csv",header=T,row.names=1,sep = ",") #地理データの読み込み pd<-read.table("LAJ_ALL_Points_V2.txt",header=T) #データ列の付け加え mono2<-transform(mono, x=1, y=1) #地理データ中の地点番号と言語データ中の地点番号をリンクさせる for(i in 1:nrow(pd) ){ for(j in 1:nrow(mono2)){ if(pd$Point_no[i] == mono2$loc[j]){ mono2$x[j] <- pd$X_degree[i] mono2$y[j] <- pd$Y_degree[i] } } } #とりあえず,それっぽくプロット plot(mono2$x,mono2$y,col=mono2$v_code_1,pch=16) 15
  • 16. 45 できたっ!! spplot()ならもう 40 ちょっとグラフィ カルな図が描けま す!! mono2$y 35 黄色と黒の勢力が二 大勢力!! 30 ものもらい系 と めばちこ系 25 125 130 135 140 145 16 mono2$x
  • 17. ものもらい vs めばちこ? • クラスターa(ものもらい系)とクラスターg (めばちこ系)に注目!! • 両者の共起の様子を地理的に配置して,使用傾 向を見てみる… 17
  • 18. ものもらい・・・めばちこ 併用語形に注目し, aとgだけ使っている物のみ をピックアップ g,0,0,0 g,g,0,0 g,g,g,0 aとgの組み合わせは何 g,g,a,0 パターンある? g,a,0,0 g,a,a,0 a,a,g,g a,g,0,0 a,a,g,0 a,a,0,0 a,0,0,0 18
  • 19. 下準備 aとgだけ使っている さらに a,gが混ざる部分 地点の全パターン コード化 のみに注目 めばちこ g,0,0,0 K g,g,0,0 J バターン間の距離定義 (今回は任意に設定) g,g,g,0 I g,g,a,0 H g,a,0,0 G H G F E D C g,a,a,0 F H 0 0.2 0.4 0.6 0.8 1 a,a,g,g E G 0.2 0 0.2 0.4 0.6 0.8 a,g,0,0 D F 0.4 0.2 0 0.2 0.4 0.6 a,a,g,0 C E 0.6 0.4 0.2 0 0.2 0.4 a,a,0,0 B D 0.8 0.6 0.4 0.2 0 0.2 ものもらい a,0,0,0 A C 1 0.8 0.6 0.4 0.2 0 dist0<- read.table("clipboard",header=T,row.names=1) 19
  • 20. イメージ図 H G F E D C ものもらいを使う. H 0 0.2 0.4 0.6 0.8 1 けど,めばちこも使 G 0.2 0 0.2 0.4 0.6 0.8 う.後,めぼいとっ F 0.4 0.2 0 0.2 0.4 0.6 てのもあるよ. C:a,a,g,0 E 0.6 0.4 0.2 0 0.2 0.4 D 0.8 0.6 0.4 0.2 0 0.2 距離0.8 い (141.66, 46.43) C 1 0.8 0.6 0.4 0.2 0 距離0.2 G:g,a,0,0 あ 距離0.6 D:a,g,0,0 (141.03, 46.06) う (141.21, 45.24) めばちこをよく使 う.けど,ものも ものもらいを使う.け らいも使うね. ど,めばちこも使うよ. 20
  • 21. 下準備 loc code x y 71646 G 141.66 45.43 72458 G 141.21 45.24 #クラスターa,gを含むデータの地点番号 72495 G 141.14 45.18 と分類コードの行列をsimccにいれる. 170805 H 142.14 43.99 simcc<- 172775 G 141.89 43.54 read.table("clipboard",header=T,row.na 173910 G 142.26 43.48 mes=1) 174554 G 141.36 43.24 174755 D 141.89 43.24 ・・・ 739144 C 130.36 32.43 740625 G 134.14 33.96 740875 G 134.64 33.88 750289 D 135.74 33.86 833511 G 131.29 31.81 21
  • 22. いよいよネットワーク!! • snaパッケージ ※参照:library(help="sna") • ネットワークを描くには,データを行列(もしくはリスト)の形にしなけ ればならない D 頂点の名前 A B C D E F A 0 1 0 0 1 1 A E B 1 0 0 1 0 1 頂点の名前 頂点の名前 C 0 0 0 0 1 0 C D 0 1 0 0 1 0 E 1 0 1 1 0 0 F B F 1 1 0 0 0 0 22
  • 23. ネットワーク分析のための パッケージ • sna, network, graph, igraph, inetoworkなどがあ る(らしい…が全貌を知らない) http://cran.r-project.org/web/packages/sna/index.html 23
  • 24. 色々調整をして… #行数と列数がsimccの列数の行列で 71646 72458 72495 170805 172775 成分が0の行列を作り,mdist0に入 71646 0 0 0 0.2 0 れる.このとき行名列名はそれぞれ, 72458 0 0 0 0.2 0 simccの行名と列名と同じ(すなわ 72495 0 0 0 0.2 0 ち地点番号) 170805 0.2 0.2 0.2 0 0.2 mdist0<- 172775 0 0 0 0.2 0 matrix(0,nrow=nrow(simcc),ncol=n 173910 0 0 0 0.2 0 row(simcc),dimnames=list(rownam 174554 0 0 0 0.2 0 es(simcc),rownames(simcc))) 174755 0.6 0.6 0.6 0.8 0.6 179813 0.4 0.4 0.4 0.6 0.4 for(k in 1:nrow(simcc)){ 270318 0 0 0 0.2 0 for(l in 1:k){ 368882 0.6 0.6 0.6 0.8 0.6 mdist0[k,l]<- 371091 0.6 0.6 0.6 0.8 0.6 dist[simcc[k,1],simcc[l,1]] 372058 0.6 0.6 0.6 0.8 0.6 mdist0[l,k] <- 372071 0.6 0.6 0.6 0.8 0.6 mdist0[k,l] 469533 0.6 0.6 0.6 0.8 0.6 } 557706 0.6 0.6 0.6 0.8 0.6 } 559402 0 0 0 0.2 24 0
  • 25. では,ネットワーク library(sna) 今回は描画のみ par(bg = "grey10") #描画領域の背景色指定 am<-1-mdist0 #類似度am coo<-simcc[,2:3] #緯度経度 vcol<- read.table(“clipboard”,header=T) #色のpm, 別途用意 #gplot(データ, gmode = "graph", 無向グラフ vertex.cex = 1.3, 頂点の大きさ jitter = F, 頂点の位置を微動させるか thresh=0.5, 辺を描く閾値,この数より大きければ引く edge.lwd=am, エッジの太さ vertex.col = vertex.col=cm.colors(6)[vcol[,2]], 頂点の色 edge.col = rgb(1,1,1,0.1), 線の色(rgb)と透過度 coord=coo 頂点の配置) #ネットワークのプロット gplot(am,gmode="graph",vertex.cex=1.3,jitter=F,thresh=0.5,edge.lwd=am, vertex.col=cm.colors(6)[vcol[,2]],edge.col=rgb(256,256,0,0.05),coord=coo) 25
  • 26. しかし,解釈までの道 描画!! のりはまだまだ遠い… H G F E D C H G F E D C H 0 0.2 0.4 0.6 0.8 1 H 0 0.2 0.4 0.6 0.8 1 G 0.2 0 0.2 0.4 0.6 0.8 G 0.2 0 0.2 0.4 0.6 0.8 F 0.4 0.2 0 0.2 0.4 0.6 F 0.4 0.2 0 0.2 0.4 0.6 E 0.6 0.4 0.2 0 0.2 0.4 E 0.6 0.4 0.2 0 0.2 0.4 D 0.8 0.6 0.4 0.2 0 0.2 D 0.8 0.6 0.4 0.2 0 0.2 C 1 0.8 0.6 0.4 0.2 0 C 1 0.8 0.6 0.4 0.2 0 (ものもらい, めばちこ) (ものもらい, めばちこ) (めばちこ,ものもらい) (めばちこ,ものもらい) thresh=0.8 thresh=0.5 同じコード地点同士のみにエッジを張る 同じクラスター同士のみにエッジを張る 26
  • 28. 実は,こんなデータだった パターン 件数 2パターンのみが異様 2パターンのみが異様 g,0,0,0 676 に多い. に多い. g,g,0,0 32 30 g,g,g,0 2 25 g,g,a,0 1 20 g,a,0,0 23 地地地 2種類のネットワークを g,a,a,0 1 15 作って,それぞれの中心 a,a,g,g 1 10 性を求めるなどした方が 良かったか…? a,g,0,0 32 5 a,a,g,0 2 0 a,a,0,0 47 g,g,a,0 g,a,0,0 g,a,a,0 a,a,g,g a,g,0,0 a,a,g,0 a,0,0,0 739 パパパパ 28
  • 29. ネットワーク分析のコツ • とにかくデータ加工のプロセスが勝負!! – 何を頂点とするか,何を辺とするか,頂点の間の距離の取 り方etc…特に元データの持つ情報量が多い場合 • データが多すぎても(Rでは特に)処理に時間が掛 かるし,少なすぎても味気ないグラフになる. • (他でもそうだろうが)人文学系のデータはデータ の背景を理解していないと,加工でも分析でも方向 性を見失い路頭に迷う… 29
  • 30. 良いネットワークライフを!! ご清聴ありがとうございました. 日本地図のシェープファイルは,行政界bndl_1_1.shp 30 http://www.globalmap.org/download/kanni01.htmlを使わせていただきました.