■google

■最近のコメント
■最近のトラックバック
■最近の記事
■月別アーカイブ
■ブログランキング
■ブログ検索

■ブロとも申請フォーム
■リンク
■RSSフィード
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | --:--:--
UCINET・NETDRAWを用いたネットワーク図の描画
Rではネットワーク分析関係は、igraphを使いますが、
分析をせずに、ただ単に、描画したいというのであれば、
UCINETのサブパッケージであるNetDrawが便利です。

そこで、今回はUCINETのインストールから描画までを説明します。

実は、別のところで説明する機会があったので、こちらには、
転記する形です。
1. UCINETのインストール
インストール先:http://www.analytictech.com/downloaduc6.htm
a) 下の方に表示されている“Latest version.”のDownloadをクリックする。

1

b) クリックすると、「ファイルのダウンロード」の画面が出てくるので、「実行」を選択し、あとはウィザードに従ってインストールを進める。
2


2. UCINETの起動
a) 「スタート」→「すべてのプログラム」→「Analytic Technologies」→「Ucinet 6 for Windows」 を選択する。
3

b) 試用版の場合、以下のようなエラーメッセージが出てくるので、OKをクリックする。
4

c) 起動画面
5

3. データの入力
a) ネットワーク図に使おうと思っているエクセルシートで準備しておく。
6

b) UCINETを起動し、SpreadSheetのアイコンをクリックする。すると、以下のような画面が表示される。
7

c) エクセルの該当する箇所をコピーし、UCINETの「Edit」→「paste」を選択。(ただし、スプレッドシートの左上のセルが選択されている状態で行う)
<エクセルの画面>
8


9

d) データの保存
Edit→Save as を選択し、適当な場所に名前を付けて保存しておく。


4.ネットワーク図の描画
a) NetDrawの起動
「スタート」→「すべてのプログラム」→「Analytic Technologies」→「NetDraw」を選択する。
10

b) 起動画面
11

d) ネットワーク図の描画
UCINETのファイルを開くコマンド をクリックして、先ほど作ったファイル(拡張子は##h)を選択し、File formatは「Ucinet」、Type of Dataは「1-Mode Network」にしたままで、OK。
12

ネットワーク図の例

こんな感じでざっとかけます。
あとは、ノードをドラッグして、図を調整したり、
雷のマーク(?)で自動調整もできます.

スポンサードリンク


スポンサーサイト
ネットワーク分析 | 22:30:08 | Trackback(0) | Comments(0)
ネットワーク分析関連

ネットワーク分析関連のおすすめ書籍です。

最もわかりやすいのがこちらです。
幅広く紹介されているだけでなく。
特に中心性の計算式が良い。
中心性の計算式の定義はRで使われているものと同じ。




新書ならこちらがおすすめ。
値段も手頃ということもあるが、
読みやすく、しかも結構細かく説明されている。
スモールワールドスケールフリー
6次の隔たり、中心、クラスターなど
ネットワーク分析のキーワードが分かりやすく紹介。




ネットワーク分析 | 15:41:56 | Trackback(0) | Comments(0)
ネットワーク図の描画part2
前回のネットワーク図の描画では、
隣接行列からのネットワーク図の描画を説明しましたが、
今回は、ノード間のエッジを直接定義することから
ネットワークを定義したいと思います。

前回と同様に、
AさんはB,Cと友達
Bさんは、DとEと友達という関係をみます

したがって、今回のエッジの定義はこんな感じです。
A--B
A--C
B--D
B--E


手順は以下の通りです。

0.igraphライブラリの呼び出し
library(igraph)
インストールしていない場合には、
install.packages("igraph")


1.ノード番号を振る。
AからEまで0から4の番号を振ります。
igraphでは、基本的には0から始まるので注意。

2.エッジの定義
下の図のようにエッジX_Yを作ります。
これくらいならR上で作ってもよいですが、
多くなった時はCSVファイルで用意した方が便利です。
ファイルからの読み込みはこちら
no name


3,ネットワークの生成・描画

g <-as.undirected(graph.edgelist(X_Y))
V(g)$name<-c("A","B","C","D","E")
plot(g,vertex.label=V(g)$name)


as.undirectedをas.directedにすると有向グラフになります。
その場合は、左の列のノードから右の列のノードに向かったエッジです。

V(g)$nameによってノードに名前を付けています。

plotをtkplotにすると、マウスでノードの場所などを調整できます。


ネットワーク分析 | 15:09:27 | Trackback(0) | Comments(0)
PageRank
PageRank についてのメモです。

PageRankは、Googleの検索技術にも使われているそうです。

PageRankは以下の式で定義されます。

PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))

dはdumping factor と言われ、
個々のサイトやサイトの所属するグループによって調整されます。
おそらく、大学などの教育機関は高く評価されるように調整されるのでしょう。
dは通常0.85となっているそうです(Page 1998)。
Tは、Aにリンクを張っているサイトで、
C(T)は、Tから他のサイトへ張られたリンク総数です。
つまり、リンクを張ってもらっているサイト(T)のページランクが高ければ、
自身のサイトAも高くなります。
(間違っていたらご指摘頂ければ幸いです)

詳しくは、以下のサイトをご覧ください。
The Anatomy of a Large-Scale Hypertextual Web Search Engine
グーグルページランクと検索結果表示順位ついて

以下にR上での例を示します。

まずは、igaphライブラリを呼ぶ。
(インストール方法については前回のメモを参考に)

library(igraph)

例として、ランダムグラフを使います。
g <- random.graph.game(20, 5/20, directed=TRUE)
これは、ノード20個、エッジを5/20で生成し、
有向のランダムグラフという意味です。
これで準備が整いました。
plot(g)
ネットワーク図が確認できます。

page.rank(g)
で計算できます。

デフォルトでは先ほどのdは0.85になっているのですが、
page.rank(g,damping = 0.2)
のようにdumpingで設定可能です。
これを実行すると、0.85のときよりも小さくなっていることがわかります。












ネットワーク分析 | 17:25:24 | Trackback(0) | Comments(0)
ネットワークの描画
久々の更新です。

ネットワーク図描画についてメモしておきます。

「AさんとBさんとCさんが友人で
Bさんは、DさんとEさんとも友人」
という関係を隣席行列で表すと、
隣接行列

となります。

これをまず、Rに読み込むなら、

yujin<-matrix(c(
0,1,1,0,0,
1,0,0,1,1,
1,0,0,0,0,
0,1,0,0,0,
0,1,0,0,0),nrow=5,ncol=5)


となります。
今回は小さなマトリクスですので直接書いてよいでしょう。
もっと大きな行列はcsvファイルなどからread.table関数で
読み込んでください。(「データの入れ方」で説明してあります)

さて、ネットワーク図Rで書くには
igraphライブラリが必要です。

インストールするには、
Rの画面上のパッケージ->パッケージのインストールで
igraphをインストールしていってください。

インストールが完了したら、

library(igraph)

というようにigraphを使うと宣言します。

次に、先ほど作った隣接行列が、
隣接行列であることをRにも教えます。
友人関係は無向グラフ(矢印の向きがないネットワーク)
なので、mode="undirected")も書き加えます。

g<-graph.adjacency(yujin,mode="undirected")

ここで、名前を付けます。


V(g)$name<-c("A","B","C","D","E")


これで準備が整いました。
描画しましょう。

plot(g,vertex.label=V(g)$name)

network

(クリックで大きくなります)

↑こんな図がでてきたらOKです。


ノード(今回は人)の移動とかを
したい場合には、
tkplot(g,vertex.label=V(g)$name)
を実行すると、修正等できます。



スポンサードリンク




ネットワーク分析 | 14:25:54 | Trackback(0) | Comments(0)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。