問題タブ [sna]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1136 参照

python - igraphで特定のパスタイプを抽出するには?

TLDR: igraph の 2 つの頂点間のすべてのパスのエッジ タイプを抽出したいと思います。これを行うための比較的健全な方法はありますか?


私が最近勤務している診療所では、高校でかなり大規模な (1400 人) の結核接触者調査を実施しました。すべての生徒と教師 (!) のクラス スケジュールがあり、それらを (R の igraph を使用して) ネットワークに配置しました。各生徒と各部屋と期間の組み合わせを頂点として使用します (たとえば、期間の 123 号室のクラス)。 1 は、期間 2 の部屋 123 にあるクラスへの有向エッジを持つ頂点です)。私はまた、どの部屋が換気システムを共有しているかを知っています。グラフは唯一のソース ケースから出力されるため、ネットワーク上のすべてのパスには、可変数の部屋期間の頂点で区切られたソースと連絡先の 2 人だけが含まれます。概念的には、次の 4 種類のパスがあります。

  • 個人的な接触による暴露 (ソース -> 接触のみ)
  • 共有クラスの露出 (ソース -> ルーム期間 -> 連絡先)
  • 次の期間の露出 (ソース -> 123 号室期間 1 -> 123 号室期間 2 -> 連絡先)
  • 換気暴露 (ソース -> Room 123 Period 1 -> Room 125 Period 1 -> contact)

すべてのエッジには、それが人対人曝露、同室異期、換気エッジのいずれであるかを示す属性があります。

このネットワークで感染をモデル化するための中間ステップとして、学生がそれぞれのタイプの感染を何回経験したかを簡単に数えたいと思います。たとえば、学生が感染源とクラスを共有し、その後、感染源がいた部屋にいる可能性があります。その学生の指標は次のようになります。

ただし、この種の情報を取得する最善の方法はわかりません-個人的な連絡先リンクを簡単に特定できる最短パスを取得する関数がありますが、すべてのパスを評価する必要があると思います(これを尋ねるのはクレイジーなことのようです)典型的なソーシャルネットワークの場合、ソースとルーム期間のみがアウトエッジを持っている場合はそれほど怒っていません)。ソースから連絡先への各パスがエッジ タイプの順序付けられたベクトルによって表されるポイントにたどり着くことができれば、それらを自分の基準に簡単にサブセット化できると思います。そこにたどり着く方法がわかりません。igraph がこのための適切なフレームワークではなく、学生のスケジュールに大きな恐ろしいループを書く必要があるだけなら、それでいいのです! しかし、その穴に飛び込む前に、いくつかのガイダンスをいただければ幸いです。


以下は、3 つの間接パスのそれぞれとの連絡先のサンプル グラフです。

0 投票する
1 に答える
421 参照

r - 複雑なネットワーク / SNA から始めます。データセットを期待される形式に変換する

複雑なネットワークとソーシャル ネットワーク分析の背後にあるアイデアとテクニックを理解し始めたところです。私はいつもつまずいて、データ準備の段階で立ち往生しているようです。私はよく Google Refine にデータセットを持っていますが、これは基本的に何らかの関連性のある行の集まりです。たとえば、現在、私は組織と彼らが参加したイベントのリストを持っています(組織がイベントに複数の代表者を派遣した可能性があるため、いくつかの重複があります)

私の Google Refine データ

したがって、組織がグラフのノードになり、両方が同じイベントに参加した場合、組織間の関係が存在することがわかりますが、このデータセットを NWB、Gephi、 R か Tulip ならわかるだろう。

列間の関係を確認できるデータセットがある状況に陥ることがよくありますが、関係を調査するためにそのようなツールでデータをインポートできるようにデータを準備するために取るべき次のステップがわかりませんでした。サポートされているファイル タイプのドキュメントを調べてみたところ、Refine の RDF スケルトン ツールを使用して、リンクされたデータ スタイルのアプローチを採用することが解決策になる可能性があると推測されますが、うまくいきません。

データ準備のためのヒントをいただければ幸いです。

0 投票する
1 に答える
976 参照

java - Neo4j グラフから各ノードの異なる中心性インデックスを取得するには?

私は、ソーシャル ネットワーク分析に関する素晴らしいプロジェクトに取り組んでいます。私の目的は、グラフ内のノードごとに異なる中心性インデックスを取得することです。グラフを分析し、意味のある完全な情報をそこから導き出す必要があります。このプロジェクトでは、Neo4J グラフ データベース (Community Edition 1.8.M06) を使用しています。そして、私は Neo4J を初めて使用し、わずか 2 週間の経験しかありません。

現在、私のグラフは友情グラフであるため、グラフにある唯一の関係は友情であり、相互関係にあります。グラフは無向、無加重、シンプレックスです。すぐに、他の関係とオブジェクトをグラフに追加する予定です。これにより、グラフが複雑になります。

Neo4J には、Centrality を測定するレンジ グラフ アルゴリズムの実装があることを理解しており、このリンクからその情報を入手しました。しかし、中心性の尺度を取得するためにそれらを使用する方法に関する情報や例は見つかりませんでした。また、これらのアルゴリズムが本番環境に対応していないことも理解しています。

Neo4Jで似たようなことを試した人はいますか? Neo4Jだけでできますか?そうでない場合、R プログラミング言語を使用して、Neo4J から Centrality インデックスを取得できますか?

R と igraph パ​​ッケージを使用して、エッジ リストから中心性を取得しようとしました。R を使用して、REST API を使用して Neo4J にアクセスできると思います。

また、最短経路問題に対する一般的なグラフ アルゴリズムの使用例もいくつか見つけました。しかし、中心性インデックスを取得するための直接的な例はありません。例から学ぶことは完璧なアイデアのようです。

ありがとう、
ディープ

0 投票する
0 に答える
260 参照

r - Twitter フォロワー 接続性 R Python

Twitter の機関のフォロワーの隣接行列を、それらの間の接続と共に取得しようとしています。フォロワーがお互いにどのように関係しているかを知りたいです。私は隣接行列から何をすべきかを知っておりigraphstatnetパッケージはそれを可能にします。しかし、マトリックスを取得するのに問題があります。

twitteRパッケージを使用してユーザーを 1 人ずつ取得しようとしましたが、タイムアウトになるか、マシンがハングします。私はこれが行われたのを見たことがありませんが、もっと短い方法があると確信しています。この問題に関する洞察や参考文献は素晴らしいでしょう。

ありがとう。

0 投票する
1 に答える
1697 参照

r - pajek .pajファイルをRのigraphにインポートするにはどうすればよいですか?

このチュートリアルパッケージドキュメントでは、.net形式のpajekファイルに対してそれを行う方法について説明していますが、.pajファイルをインポートする必要があります。すべての.pajファイルをインポートするコードがあるとは思いませんが、おそらく誰かが、自分の目的のために変更できるいくつかのより単純なファイルで機能するコードを持っていますか?

0 投票する
2 に答える
2746 参照

r - R「ネットワーク」オブジェクトを「igraph」オブジェクトに変換するにはどうすればよいですか?

R「ネットワーク」オブジェクトを「igraph」オブジェクトに変換するにはどうすればよいですか?

チュートリアルパッケージのドキュメントで多くの形式について説明されていますが、「ネットワーク」オブジェクトをインポートする方法が見つかりませんでした。

0 投票する
1 に答える
498 参照

r - 視覚化なしの大規模ネットワーク レイアウト アルゴリズム

視覚化せずに大規模なネットワークに力指向レイアウト アルゴリズムを実装できるリソースを知っている人はいますか。R の igraph を試しましたが、視覚化せずに x、y 座標を取得する方法がわかりませんでした。

どんなヒントでも素晴らしいでしょう

0 投票する
2 に答える
5785 参照

r - 2 つの頂点間の igraph エッジ

私はRとigraphが初めてで、誰かが次のことを手伝ってくれるかどうか疑問に思っていました.

グラフ内の 2 つの頂点間のエッジの重みを見つけたいです。私のグラフ構造は、通常のエゴ (ノード 1)、オルター (ノード 2)、およびそれらの間のエッジの重みによって定義されます。

E(igraph_friendship) [ from(5) ]$weightを使用して、ノード番号 5 に由来するエッジのリスト内の各エッジの重みを取得できることを知ってい ます。E(igraph_friendship) [ to(10) ]$weightを使用してノード番号 10 で終了するエッジのリスト

しかし、単純にノード 5 とノード 10 だけを接続するエッジの重みを見つけたいだけの場合はどうなるでしょうか。

または、すべてのエッジE(igraph_friendship)のリストでノード 5 と 10 を接続するエッジの識別子を取得できれば、それも機能します。

助けてくれてありがとう、私はそれをたくさん探していました。あなたの助けに本当に感謝しています!

0 投票する
1 に答える
1082 参照

r - R SNA: すべてのアクターを含み、サブセットの値のみを含む隣接行列の作成

私の問題は次のとおりです。

ソーシャル ネットワーク分析に R SNA パッケージを使用しています。たとえば、私の出発点は、次の特性を持つエッジリストです。すべての行には、企業名、関与しているプロジェクトの ID、およびその他の特徴 (プロジェクトの年としましょう) が含まれています。企業は複数のプロジェクトに参加することができ、1 つのプロジェクトは複数の企業の協力で構成される場合があります。例:

ネットワーク分析には、すべての企業を行と列のヘッダーとして含む隣接行列が必要です。これは次のように作成します。

今私の問題: 隣接行列で netlm 回帰を実行したいです。ここで、ある年のネットワークが翌年のネットワークをどのように説明するかをテストします。ただし、したがって、2003 年と 2005 年のみのセットで grants.edgelist をサブセット化したいと考えました。ただし、すべての企業が毎年プロジェクトに参加しているわけではないため、対応する隣接行列の行と列が異なることがわかりました。

ここで私の質問:行と列のヘッダーにすべての企業を含む隣接行列を取得するにはどうすればよいですか?ただし、それらの交差は、観察したい年のゼロ期待値に設定されています。私が言いたいことが明確であることを願っています。

事前にどうもありがとうございました。この問題は、今日私を夢中にさせています!

幸運をお祈りしています

ダニエル