概要
Maintainer: | Fabio Ashtar Telarico, Pavel N. Krivitsky, James Hollway |
Contact: | Fabio-Ashtar.Telarico at fdv.uni-lj.si |
Version: | 2025-04-16 |
URL: | https://CRAN.R-project.org/view=NetworkAnalysis |
Source: | https://github.com/cran-task-views/NetworkAnalysis/ |
Contributions: | このタスクビューに対する提案や改良は、GitHubのissueやpull request、またはメンテナのアドレスに電子メールで送ってください。詳しくはContributing guideをご覧ください。 |
Installation: | このタスクビューのパッケージは、ctvパッケージを使用して自動的にインストールすることができます。例えば、ctv::install.views(“NetworkAnalysis”, coreOnly = TRUE)は全てのコアパッケージをインストールし、ctv::update.views(“NetworkAnalysis”)はまだインストールしていない全てのパッケージと最新のものをインストールします。詳しくはCRAN Task View Initiativeを参照してください。 |
このCRANタスクビューは、ネットワーク(リレーショナルデータまたはグラフとも呼ばれます)の分析とモデリングのためのRパッケージの厳選リストを提供します。これらのツールは、エンティティ間の関係性に焦点を当てることで、自然現象、社会現象、その他の現象の探究を容易にします。
このページでは、いくつかのパッケージ(場合によってはコア関数)を、その対象範囲と重点に基づいて複数のセクションに分け、リストしています。
- 最初のセクションでは、関係データの作成、操作、記述といった基本的なネットワーク分析操作を含むRパッケージの主要なエコシステムについて概説します。また、ネットワークの可視化や描画に用いるグラフィカルパッケージの選択肢も示します。Rによるネットワーク分析を初めて行う方は、igraph入門書(Csárdi and Nepus 2006)またはstatnetチュートリアル(Bojanowski and Jasny 2024)から始めることをお勧めします。
- 続いて、高度なネットワーク分析タスクのためのパッケージと関数を紹介します。現在、これらは(1)中心性、(2)コミュニティ検出、(3)モデルベースクラスタリングの3つのサブセクションに分かれています。
- 次に、様々な分野や関心領域に適用可能なモデリングおよび推論ツールを提供するパッケージについて説明します。主にクロスセクションデータと動的データを対象としたモデルを区別し、マルチモーダル、マルチレベル、およびマルチプレックスデータ向けの特殊モデルについては別途セクションを設けます。
- 最後に、より狭い適用分野におけるデータ構造、手法、モデルを含むパッケージに焦点が移ります。リストには、ネットワーク手法がより広く適用されている分野、すなわち生態学、計量書誌学、生命科学および自然科学、神経科学、心理学、公衆衛生、社会科学、経済学などが含まれています。
このリストには、変数間の条件付き従属関係のグラフ表現を主に扱うパッケージは含まれていません。これには、ベイジアンネットワークとマルコフグラフが含まれます。これらは統計モデリングとの関連性があるにもかかわらず、CRANのタスクビューGraphicalModelsでカバーされています。この区別により、このリストはネットワーク分析に焦点を当て、より広範な関係ダイナミクスを探求することを目的としています。
一部のパッケージは、複数のタスク(例:クラスタリングと可視化)を実行できるため、複数の見出しの下に表示される場合があります。ただし、簡潔にするため、コアパッケージ以外のパッケージは、各パッケージの主なユースケースを説明するセクションに1回だけ記載しています。
リストにパッケージが不足していると思われる場合は、GitHubリポジトリで問題を報告するか、メンテナにお問い合わせください。
目次
- Ecosystems and Data
- Exploratory Data Analysis
- Group detection
- Statistical modeling
- Field packages
- References
エコシステムとデータ
エコシステム
Rでネットワーク分析を行うための出発点は、メインパッケージの「ファミリー」またはエコシステムに慣れることです。これらを使用することで、ユーザーはリレーショナルデータの作成、インポート/エクスポート、編集、その他の操作を行うための関数にアクセスできます。
- igraphは、ネットワーク構造を作成、操作、分析するためのツールを提供します。特に、グラフィカルな表現と、大規模データセット(特にデータの操作と頂点属性の処理)を扱うための高速アルゴリズムに重点を置いています。igraphは、他のパッケージにバンドルされるのではなく、拡張機能とアドオンのエコシステムを提供します。
- アプローチ:このRパッケージは、PythonとMathematicaの実装でも共有されているCライブラリをベースに構築されています。Cコードは効率的で、Rインターフェースはネットワークプロパティの計算、シミュレーション用のランダムグラフ生成など、多くの基本機能を備え、一貫性と使いやすさが向上しています。
- 柔軟性:多くの関数は、直接代入用とパイプ可能なバージョンの2つのバージョンで提供されています。
- サポート:大規模なコミュニティと活発なメンテナのおかげで、ほぼあらゆることを行う方法に関するあらゆる質問に答えるオンラインリソースが豊富にあります。
- 拡張機能:igraphをggplot2などの描画ツールと統合したり、サンプルデータセットを提供したりするアドオンパッケージが多数あります。最新のレビューによると、これは拡張機能の数でRにおける最大のネットワーク分析エコシステムです(Kanevsky 2016を参照)。
- Statnetは、ネットワークの分析と統計モデリングのためのRパッケージスイートです。共通のデータ表現(特にネットワークパッケージ)と設計選択に基づいて構築された統計ネットワーク分析パッケージのエコシステムの中核を成しています。メタパッケージr pkg(“statnet”, prioritize = “core”)を使用すると、スイートのコアパッケージを簡単にインストールできます。
- アプローチ:このパッケージ群のアプローチはより分散化されており、目的に応じて複数の異なるパッケージが組み合わされています。特に、igraphはデータ構造とネットワーク分析手法の両方を実装しているのに対し、networkはネットワーク分析手法を実装しておらず、snaやergmファミリーなどの他のパッケージに依存しています。
- 柔軟性:Statnetスイートのパッケージは、直接割り当てと「パイプ」アプローチの両方を用いて(ソーシャル)ネットワークデータを分析できます。
- 包括性:このエコシステムの最大の利点は、ユーザーがほとんどのネットワーク分析操作、特にソーシャルネットワーク分析(SNA)の操作を実行できることです。しかし、当然ながら、そのトレードオフとして、選択肢の多さが新規ユーザーにとって使いにくくなるという点があります。
- manynetは、このリストにある他の多くのネットワーク・パッケージを基盤として構築されており、さまざまなオブジェクト クラスとの相互運用性、およびネットワークの視覚化と分析ツールを提供します。
- アプローチ:tidyverseに着想を得たmanynetは、より高度な構造、一貫性、そして合理的なデフォルトを備えたパイプ構文を提供します。例えば、manynet::net_*関数は常に単一の値(スカラー)を返し、manynet::node_*と manynet::tie_*は常に、それぞれネットワーク内のノードまたはタイの長さのベクトルを返します。同様に、manynet::is_*関数は常に論理値(TRUE/FALSE)を返します。これは、新規ユーザーだけでなく、複数のパッケージを扱うユーザーにも役立ちます。
- 柔軟性:このパッケージは S3 ディスパッチを活用しているため、すべての関数はネットワークオブジェクトやグラフオブジェクトなどの多くのネットワークオブジェクトクラスだけでなく、エッジリスト、行列、その他様々なより具体的なクラスでも動作します。その型変換ルーチンは、長年利用されてきた代替手段である intergraphよりも多くの情報を保持し、より多くのクラス間の変換とより頻繁な更新が可能です。また、汎用的なパッケージよりも包括的なインポートおよびエクスポートルーチンも備えています。
- 包括性:本パッケージはigraphの機能のほとんどを網羅していますが、2モード、多重化、動的ネットワークなど、様々な種類のネットワークを扱えるよう拡張・修正されています。また、他では提供されていないネットワーク分析用の関数も多数実装しています。
- ドキュメント:本パッケージは明確で簡潔なドキュメントを備えており、あらゆるレベルのユーザーが利用できます。さらに、Rでネットワーク分析を始める際に役立つ分かりやすいチュートリアルと例も提供しています。ユーザーにとっての参考資料として、またユーザーエクスペリエンスの向上のために、ドキュメントにはさらなる説明、例、参考文献が継続的に追加されています。
リレーショナルデータ管理および変換ツール
R のネットワーク分析用の「コア」パッケージは、さまざまな種類の入力から幅広いネットワークを作成できますが、より特殊な形式を構築したり、異なる形式間で変換または強制したりするための専用パッケージもあります。
- コアパッケージである networkと igraphは、リレーショナルデータの表現を作成、インポート、変更、エクスポートするための基本的なデータ構造とツールを提供します。
- intergraphは、厳密にはネットワーク分析パッケージではありません。Statnetパッケージによって生成されたオブジェクトを igraphオブジェクト(またはデータフレーム)に簡単に変換したり、その逆を行ったりすることができます。そのため、複数のパッケージの機能を活用し、複数のユーザーのワークフロー間の互換性を確保するのに役立ちます。また、多くの追加機能も備えています。
- BoolNetは、同期および非同期(確率的)ブールネットワーク、そしてより単純なブールネットワークを構築、分析、可視化するためのツールを提供します。すべての主要機能は、便利なvignetteで説明されています。
- egorは、EgoNet、EgoWeb 2.0、openeddiからのエクスポートのインポートを含む、エゴセントリックネットワークを管理するためのツールを提供します。Shinyアプリと、クラスター化グラフの作成および可視化のための手順が含まれています。
- StatnetのnetworkDynamicは、動的ネットワークの表現と操作を容易にします。
- ionetは、入出力テーブルを重み付き隣接行列に変換することからネットワークを構築します。
- rgraph6は、graph6、sparse6、digraph6 formatsを使用して、リレーショナルデータ(隣接行列、エッジリスト、networkオブジェクト、igraphオブジェクト)を ASCII 文字列としてエンコードしたり、その逆を行ったりできます。
- tidygraphは、tidyverseフレームワーク内でグラフデータを処理および操作するために設計されています。ネットワーク分析のための包括的なツールセットがないため、「コア」パッケージには含まれていません。しかし、tidygraphはリレーショナルデータを処理するための柔軟なパイプアプローチを提供し、ユーザーはtidyverseの使い慣れたデータ操作手法をグラフに適用できます。ユーザーは、使い慣れたtidyverse構文を使用して、グラフデータのフィルタリング、要約、結合などのタスクを簡単に実行できます。igraphと snaはどちらもほとんどの操作に対してパイプ関数を提供しているため、tidygraphの付加価値は、動詞内で計算しながら、ノードデータ、エッジデータ、またはグラフ自体に直接アクセスできることにあります。
- backboneは、バックボーンと呼ばれるネットワークのスパースかつ重み付けされていないサブグラフの抽出を実装します。
探索的データ分析
探索的データ分析(EDA)に移ると、igraph、sna、manynetは同様のネットワーク分析および可視化操作のための機能セットを提供していますが、tidygraphは機能が限定されています。ただし、一部のアルゴリズムは互いに異なり、実装、速度、またはデフォルト設定に特化したパッケージもあります。
一般
- tsnaは、networkDynamic表現における時系列ネットワークの探索的分析と要約のための様々な手法を実装しています。
- EDAと比較して、NetworkDistanceは、中心性、連続スペクトル密度、隣接行列のスペクトル間のユークリッド距離、エッジ間差のフロベニウスノルム、指数カーネル行列、グラフオン、各エッジにおける2つのバイナリネットワーク間の乖離度(ハミング)、局所ハミング距離とグローバルイプセン・ミハイロフ距離の組み合わせ、グラフモーメントの対数などに基づいて、2つのネットワーク間の距離を計算するための様々な尺度を提供します。
- netsegは、フリーマン指数、コールマン指数、スペクトル分離指数など、ネットワークの分離と同質性を表す様々な記述尺度を実装しています。
可視化
インタラクティブな可視化
詳細については、CRAN タスク ビュー DynamicVisualizationsをご覧ください。
- visNetworkは、vis.jsライブラリを用いたインタラクティブなネットワーク可視化に重点を置いています。このパッケージを使用すると、ズーム、パン、ノードのハイライトなどの機能を活用し、視覚的に魅力的でインタラクティブなネットワーク可視化を作成できます。インタラクティブなネットワーク可視化を作成するためのユーザーフレンドリーなインターフェースを備えているため、初心者にも適しています。
- networkD3は、エッジリストをD3 JavaScriptネットワーク、ツリー、デンドログラム、またはサンキープロットに変換する関数を提供します。
- bipartiteD3は、bipartiteパッケージで作成されたネットワークをプロットするために、D3ライブラリとviz.jsライブラリを使用します。
- ndtvは、networkDynamicパッケージのネットワークオブジェクトをビデオまたはインタラクティブなアニメーションとしてレンダリングします。
静的可視化
- diagramは、K. SoetaertとP.M.J. Herman著の『A Practical Guide to Ecological Modelling(生態学的モデリングの実践ガイド)補足として生まれました。しかし、遷移行列の形で与えられたネットワークをフロー図、ウェブ、またはグリッドとして視覚化できます。
- neatmapsは、階層的クラスタリング(neatmaps::hierarchy)、コンセンサスクラスタリング(neatmaps::consClustResTable)、そして複数ネットワークのヒートマップ(neatmaps::neatmap) を簡単に作成する機能を提供することで、データ分析の探索ステップを簡素化しようとしています。
- manynetは、ggplot2 スタイルでネットワークをグラフ化するためにggraphをベースに構築されていますが、複雑な構文を簡素化し、テーマ設定の柔軟性を維持しながら、ネットワークデータの視覚化と探索を容易にするための適切なデフォルト設定を提供しています。
- manynet::graphr は、迅速かつ簡単にネットワークを可視化するためのものです。
- manynet::graphs は、エゴネットワークまたはサブグラフを並べて比較するためのものです。
- manynet::grapht は、動的ネットワークや縦断的ネットワークを GIF 形式で展開するためのツールです。
- manynet には、ブロックモデルやクラスタリング用の樹状図など、出力の多くにプロット手法が含まれています。
ggplot2の拡張機能
- ggnetworkは、networkオブジェクトをプロットするためのジオメトリを提供します。
- ggraphは、レイヤーごとにプロットを構築することで、igraphオブジェクトをプロットできます。
- ggsomは、自己組織化マップ (SOM) をプロットするための関数を提供します。
- snahelperは、ネットワークの可視化と解析のためのGUIへのアクセスを可能にするアドオンです。可視化を設定すると、関連するコードがスクリプトに自動的に追加されます。
- roughnetは、rough.jsライブラリを利用して、スケッチ風の手描き風ネットワークを描画します。
- gganimateは、ネットワークを表すものも含め、進化するggplotのGIFおよびMP4バージョンを作成できます。
- ggdendroは、tree、hclust、dendrogram、rpartなどの関数を使用して、デンドログラムのggplotを簡単に作成できます。
- multigraphは、マルチグラフ、値/符号付きネットワーク、二部ネットワーク、多階層ネットワーク、ケイリーグラフを、様々なレイアウトオプションを使用して簡単に可視化できる強力なツールです。
レイアウト
- ggforceは、特殊なプロットを作成するための関数を提供しており、その一部はネットワーク分析にも応用できます。最も重要なのは、aluvial plotsを用いて動的ネットワーク内のグループ構成を可視化できることです。
- graphlayoutsは、ストレス・メジャー化の概念に基づく複数のレイアウトアルゴリズムigraphとggraphに追加します(edgebundleも参照)。
- manynetは、マルチモーダルネットワーク用のレイアウトアルゴリズムがさらにいくつか含まれています。
- Bioconductorで利用可能なRgraphvizは、graphパッケージとgraphvizライブラリを直接リンクします。
- patchworkは、例えば多部構成ネットワークやその他の複雑なネットワークの可視化に使用できる、任意の複雑なプロット構成を可能にします。
中心性
どちらの主要エコシステムも媒介性、固有値、べき乗、近接中心性を計算できますが、igraphは全体的にsnaやtidygraphよりも多くのオプションを提供しています。さらに、以下の点も優れています。
- centiserveは、ボトルネック、減衰、エントロピー中心性など、igraphオブジェクトに数十の中心性指標を追加します。
- birankrは、二部/二モードネットワークにおける様々な中心性指標を推定するための最適化された関数を提供します。また、一モードネットワークのページランクを効率的に推定したり、二モードネットワークを一モードネットワークに射影したり、エッジリストと行列をMatrixパッケージで提供されるsparseMatrix形式に変換したりすることもできます。エッジリスト(data.frame、data.table::data.table、または tidydata::tbl_dfクラス内)と隣接行列(組み込みの行列クラスまたはMatrixのdgCMatrixクラス内)をサポートしています。
- netrankrは、近傍包含または位置支配に基づき、期待ノードランクや相対ランク確率の計算などの確率的手法に基づいて、インデックスフリーの中心性ランキングを提供します。
- influentialは、ネットワークトポロジの解析や様々な中心性指標の計算など、ネットワークを操作し、その構造と特性を理解するのに役立つツール群を提供します。さらに、Susceptible-Infected-Recoveredモデルとleave-one-out交差検証(機械学習手法)を用いて、影響度に基づく教師なし中心性ランキングを提供します。もう一つの興味深い高度な機能は、中心性指標間の依存関係と相関を計算する機能です。
- CINNAは、研究者がネットワークを分析し、最も「中心」なノードを特定できるように設計されたツールキットです。特に、CINNAはノードを2つのグループに分割する二部ネットワークをサポートしています。このパッケージには、ダンガルチェフ中心性(非接続ネットワークの近接中心性)、グループ中心性、局所ブリッジ中心性、調和中心性、ウィーナー指数中心性(距離に基づくネットワーク全体の効率性)など、他のRパッケージでは利用できない中心性指標が含まれています。また、t-SNE(t分布確率的近傍埋め込み)やPCA(主成分分析)を用いて、特定のネットワークにおいてどの中心性指標が最も有益であるかを判断することもできます。さらに、CINNAは、ヒートマップ(中心性指標間でノードを比較)、デンドログラム(同様に中心となるユニットをグループ化)、散布図(中心性指標のペア間)など、中心性を可視化する様々な方法を提供します。
グループ検出
コミュニティ検出
- igraphは、ほとんどのモジュールベースのコミュニティ検出アルゴリズムの実装に最適なパッケージです。利用可能なアプローチには、媒介性、貪欲アルゴリズム、情報マップ、ラベル伝播ライデン法、一般化ルーヴァン法、ウォークトラップ法などがあります。
- cencrneは、コミュニティ構造とコミュニティ数を漸近的に整合した方法で同時に推定するための正規化ネットワーク埋め込みモデルを提案しています。この手法は主にライフサイエンス分野で用いられていますが、あらゆる分野に適用可能です。
- linkcommは、任意のサイズと種類のネットワークにおける重複コミュニティを生成、可視化、分析するための関数を提供します。igraphやnetworkとは異なり、linkcomm::getClusterRelatednessとlinkcomm::getCommunityConnectednessによる関連性の計算や、メソスコピック行列 (linkcomm::getCommunityMatrix) の生成が可能です。さらに、階層型コミュニティのメンバーシップを生成することもできます (linkcomm::getNestedHierarchies)。
ブロックモデリング
一般化(構造的および/または規則的同値性)
- snaは、構造同値性ブロックモデル(sna::blockmodel)の簡易版を実装しています。また、与えられたブロックモデルを用いてネットワークを生成し、結果を印刷およびプロットすることもできます。
- concorRは、単モードおよび多モードの無向/有向ネットワークに対して、古典的なCONCOR (Convergence of iterated Correlation) アルゴリズムを実装しています。
- BMconcorは、ブロックによる特異値分解(SVD)により、構造同値性および正則同値性に基づくネットワークの同時ブロックモデリングを可能にします。
- blockmodelingは、一般化ブロックモデリング(blockmodeling::optRandomParC)の実装と、構造同値性または正則同値性に関する類似度(非類似度)の計算およびプロットのための関数を提供します。さらに、REGEアルゴリズム(blockmodeling::REGE)の実装も含まれています。
- BlockmodelingGUIは、blockmodelingパッケージに含まれる、単一関係、単モードネットワークの一般化ブロックモデリングのためのグラフィカルインターフェースを提供するShinyアプリです。igraph、networkなどを用いて、ネットワークとパーティションを可視化する複数の方法が含まれています。
- kmBlockは、1モードおよびリンクネットワークのブロックモデリングにk-meansのようなアプローチを実装します。
- dBlockmodelingは、符号付き(リンクに正と負の重みが割り当てられている)、1モード、および値付き1モードと2モードのブロックモデリングを適用する関数が含まれています。
- signnetは、igraphのオブジェクトに基づいて、符号付きネットワークの構造同値性(signnet::signed_blockmodel)と一般化同値性(signnet::signed_blockmodel_general)を備えた一般化ブロックモデリングを実装する関数を提供します。
- oaqcは、軌道を考慮したクワッドセンサスの効率的な計算を可能にします。
確率的ブロックモデル(SBM)
- igraphは、SBMを実行できませんが、指定されたSBM(igraph::sample_sbm)または任意の階層的SBM(igraph::sample_hierarchical_sbm)に従ってランダムグラフを生成できます。
- blockmodelsは、変分期待値最大化アルゴリズムを用いて、静的ネットワークのSBMまたは潜在ブロックモデル(LBM、二部ネットワーク用のSBM)を実行できます。様々なS4関数が3つの確率分布を実装しています。バイナリデータの場合はblockmodels::BM_bernoulli、離散/カウント重みの場合はblockmodels::BM_poisson、連続重みの場合はblockmodels::BM_gaussianです。igraphは、ノード共変量の有無にかかわらずSBMとLBMをサポートし、blockmodels::BM_bernoulli_multiplexを介して多重バイナリネットワークをサポートします。
- sbmは、専用のR6クラスを介して二部および多部ネットワーク、そして多重ネットワーク向けのblockmodelsの拡張です。結果のパーティションをプロットする関数が含まれています。
- greedは、貪欲局所探索と遺伝的アルゴリズムの組み合わせを利用して、(次数補正された)SBMとLBMを実行します。
- dynsbm (archived)は、依存関係の不具合により2023-10-27にCRANリポジトリからアーカイブされましたが、静的SBMと動的部分のための独立マルコフ連鎖を組み合わせた時系列ネットワークモデルを実装しています。離散エッジと連続エッジの両方を持つバイナリネットワークと重み付きネットワークをサポートします。また、パーティションをプロットする関数(dynsbm::adjacency.plot、dynsbm::alluvial.plot、dynsbm::connectivity.plot)も含まれており、適切な形式の配列として行列を自動的に構築します。
- MLVSBMは、異なる行列がそれぞれ重み付きまたはバイナリのいずれかの相互作用層を表す、多階層ネットワークのSBMを実装します。これは、元のアプローチを2層以上に一般化します。
- StochBlockは、単モードネットワークおよび連結ネットワークの確率的ブロックモデリングを実装します。結果をプロットするためのユーティリティが含まれていますが、「適切な」クラスター数を自動選択することができず、subsequent reviewsによると非常に遅くなる傾向があります。
- GREMLINSは、異なる行列がそれぞれ事前に定義された機能グループに分割可能なノードを含む、一般化多部ネットワークの SBM を実装します。
その他
- clustNetは、ノードとエッジの共変量を考慮したベイズ混合モデルを用いて、ネットワーク内のユニットをクラスタリングできます。
- collpcmは、モデル空間全体を探索し、クラスタ数の決定も可能にする、コラプス潜在空間モデル用のモンテカルロ・マルコフ連鎖(MCMC)推論を提供します。
- graphclustは、統合分類尤度基準を最大化する凝集アルゴリズムと、igraphオブジェクトに基づく確率的ブロックモデルの混合を実装しています。
- latentnetは、networkオブジェクトを用いて潜在位置モデルとクラスタモデルをフィッティングおよびシミュレーションする関数を提供し、ergmアプローチと互換性があります。
- 関連して、VBLPCMは、latentnetのパッケージアルゴリズムが計算量的に制限される可能性のある大規模ネットワークにおいて、latentnetの代替手段を提供します。これは、変分ベイズ期待値最大化アルゴリズムを用いて、latentnet::ergmm()関数の事後分布の近似値を計算し、その近似値を算出します。したがって、これは本格的なMCMCサンプラーよりも高速で、latentnetの2段階最尤推定(MLE)よりも正確です。実際、変分ベイズ法は2段階MLEよりも収束が速い傾向があります。
- latenetworkは、平均因果関係において、操作変数を用いて、非遵守および未知の形式のネットワーク干渉を考慮した因果推論を行う手法を実装しています。
- netClustは、有限混合と期待最大化を用いて、単層(netClust::netEM_unilayer)および多層(netClust::netEM_multilayer)ネットワークをクラスタリングする関数を提供します。
統計モデリング
ネットワーク分析における統計モデリングは、パターンを発見し、仮説を検証し、ネットワークの構造とダイナミクスに関する予測を行うことを可能にします。本セクションでは、静的(横断的)ネットワークのモデリングから、動的、マルチモーダル、マルチレベルネットワークの分析まで、幅広い統計的アプローチをサポートするRパッケージを紹介します。これらの手法は、観測されたネットワークデータを生成する根底にあるプロセスを推論し、観測されたパターンの重要性を評価し、様々な条件下でのネットワーク構造をシミュレートするためのツールを提供します。
横断的ネットワーク
- statnetエコシステムのergmは、指数族ランダムグラフモデル(ERGM)のフィッティング、シミュレーション、分析を行うための関数を提供します。特定のニーズに応じて、いくつかの特殊な拡張機能が利用可能です。
使用事例 | パッケージ |
重みのカウント | ergm.count |
自己中心的サンプリングネットワーク | ergm.ego |
多層ネットワークとネットワークのサンプル | ergm.multi |
ブロック構造と局所依存性を持つネットワーク | mlergm |
順位順序ネットワーク | ergm.rank |
ERGM生成プロセスのモデリング | ergmgp |
小規模ネットワークのサンプル | ergmito |
大規模階層型ERGM | bigergm |
ERGMのためのベイズ法 | Bergm |
カスタムネットワーク効果実装用テンプレート(CRAN以外) | ergm.userterms |
ユーザー提供のネットワーク効果(CRAN以外) | ergm.terms.contrib |
- amenは、回帰項を用いた加法効果および乗法効果(AME)モデル、社会関係モデルの共分散構造、乗法因子モデルを提供します。バイナリネットワークだけでなく、値を持つネットワークもサポートします(ガウス分布、ゼロインフレーション/トービット分布、順序分布、または固定ランク指名モデルを想定)。
- bootnetは、無向ネットワーク上で推定された構造と中心性指標の精度と安定性を評価するためのブートストラップ手順を実装しています(代替手法については localbootを参照してください)。
- fastnetは、大規模なソーシャルネットワークをシミュレートし、新しいアプローチに従って最も関連性の高いメトリクスを取得できます。
- ndaは、(自動)特徴選択の有無と制限付きプロット機能を備えた、または備えていないノンパラメトリック次元削減関数を収集します。
- lologは、潜在順序ロジスティック(LOLOG)モデルを実装します。これは、既に追加されたエッジを条件として、順序が不明な分布からエッジを1つずつ追加するネットワーク形成プロセスです。
- MoNAnは、重み付けされたモビリティネットワークまたは流通ネットワークの構造を分析する手法を実装します。
- ERPMは、横断的または縦断的な分割、すなわちスポーツチーム、動物の群れ、政治連合などの重複しないグループ集合に対する指数族モデルを実装します。このモデルは、個人の属性、個人間の関係、および規模に関連する要因に基づくグループ形成プロセスを通じて機能します。
- networkscaleupは、集約された関係データ(ARD)(サブ集団の集合内で知られている人数)に基づいて、隠れた集団の次数とサイズを推定する手法を実装します。これらの手法には、「古典的な」MLE推定量だけでなく、より新しいベイズモデルも含まれます。
マルチモーダルおよびマルチレベルネットワーク
- migraphは、マルチモーダルネットワークを解析するためのigraph拡張機能です。
- multinetsは、マルチレベルネットワークを解析するためのigraph拡張機能です。
- multiplexは、様々な形式の多重化、多モード、および多階層ネットワークデータの作成と操作を可能にします。
- dyadsは、二項ネットワークモデル j2、p2(これも多階層)、およびb2モデルのMCMCシミュレーション関数を提供します。
- tnetは、2 重モード、重み付き、および縦断的ネットワークを解析するための関数を備えています。
- incidentallyは、与えられた 1 重モードネットワークと整合する 2 重モードネットワークを生成するための手法も実装しています。
- ergm.multiは、多層および多モードネットワーク、およびネットワークのサンプルをモデリングするためのergmの拡張機能セットです。
動的ネットワーク
次のパッケージは、時間の経過とともに進化するネットワークと、時間の経過とともに発生するネットワーク・プロセスのモデリングとシミュレーションに重点を置いています。
関係イベント
リレーショナルイベントデータには、ノードが相互作用した正確な時間に関する情報が含まれます。これは、電子メール、ラジオ、その他の通信でよく見られます。
- remと releventはどちらも、2者間関係イベントモデルのフィッティングとシミュレーションを行う関数を備えています。ただし、タイムスタンプなしでイベントシーケンスデータを推定できるのはreleventだけです。
- goldfishは、アクター指向の動的ネットワーク・アクター・モデルとダイアド指向の関係イベントモデルを適合およびシミュレートする機能を提供します。
離散観測
次のパッケージは、パネルデータとも呼ばれる一連のネットワークのモデリングに重点を置いています。
- tergmは、一連のネットワーク(または離散時間ネットワーク・プロセスの長期均衡)に対する離散時間モデルのフィッティングとシミュレーションを行うための ergmの拡張機能です。各時間ステップは、前の時間ステップを条件とする ERGM からの抽出としてモデル化されます。
- 一連のネットワークに対する離散時間モデルのdnr推定。各時間ステップは、前の時間ステップを条件とするERGMからの抽出としてモデル化されます。ただし、各時間ステップ内では、エッジ変数は独立であるという制約が適用されます。可変ノードセットもサポートされています。
- btergmは、一連のネットワークに対する離散時間モデルのブートストラップ推論です。各時間ステップは、前の時間ステップを条件とするERGMからの抽出としてモデル化されます。
- RSienaは、パネルネットワークデータに対する連続時間確率的アクター指向モデル(SAOM)の推定です。
- idopNetworkは、静的データを、クラスタリング可能な構造を持つ有益で動的な多方向ネットワークを文脈的に推論する「動的な」形式に変換するモデルを実装します。
ネットワーク上の拡散
- EpiModelは、感染症の動態に関する数理モデルのシミュレーションを可能にします。
- manynetは、感染/拡散プロセスやコンパートメントモデルの実行を含む、縦断的データおよびネットワークイベントデータの操作、可視化、分析が可能です。
- netdiffuseRは、ネットワーク拡散および感染プロセスの経験的統計分析、可視化、シミュレーションのために開発されました。感染率、ハザード率、曝露モデル、ネットワーク閾値レベル、感染性(伝染)、感受性といったネットワーク拡散統計を計算するためのアルゴリズムを実装しています。
その他
- graphonは、隣接行列に基づいてネットワークのグラフオンを推定する手法を提供します。推定手法としては、確率的ブロックモデル(SBM)の経験的次数ソート、SBM近似、ユニバーサル特異値閾値法、近傍平滑化法などが用いられます。また、推定モデルに基づいて、部分観測データから行列を補完することも可能です。さらに、任意のグラフオン、エルデシュ・レーニイランダムグラフ、SBMを与えられた場合にバイナリグラフを生成する機能も備えています。さらに、シミュレーション用に10種類のグラフオンモデルも含まれています。
フィールドパッケージ
ネットワーク分析は学際的なアプローチとして、さまざまな分野で使用されており、それぞれの分野の特定のニーズと関心は特定のパッケージによって解決されています。
生態学的ネットワーク
- econetworkは、生態学的ネットワーク(主に食物網や宿主寄生関係、植物と花粉媒介者、その他の相利共生関係)を静的および動的に解析およびモデル化するための高度な関数群です。
- AnimalHabitatNetworkは、動物の生息地の物理的構成を表すネットワークを生成および可視化するための関数を提供します。ペアワイズユークリッド距離に基づく独自のネットワーク生成アルゴリズムを実装し、重み付きまたはバイナリ、全結合またはスパースのいずれかの無向ネットワークを出力できます。このパッケージには、ネットワークを用いた動物の生息地の物理的構成のモデリングに関するPDFが付属しています。
- aniSNAは、動物のGPSテレメトリ観測からネットワーク構造を取得し、統計的に分析することで、社会ネットワーク分析への適合性を評価することができます。分析手法には、ネットワーク構築前のデータ順列、グローバルおよびノードレベルのネットワークメトリクスの信頼区間を求めるブートストラッピング手法、ローカルネットワークメトリクスの相関分析および回帰分析が含まれます。
- asnipeは、動物の社会ネットワーク分析において、クラスタリング、ネットワーク生成、順列検定、関連率の計算、重回帰分析などに使用されるツール群を実装しています。
- ATNrは、動的な食物網における種のバイオマスの相対成長栄養段階モデル (ATN)を推定し、合成ネットワークを生成します。また、常微分方程式ソルバーdeSolveへのアクセスも提供します。
- BIENは、Rで植物情報・生態ネットワークデータベースにアクセスできるようにします。
- bipartiteは、食物網を可視化し、その上でいくつかの生態学的指標を計算するための関数を提供します。
- cassandRaは、様々な統計モデルとサンプル被覆推定値を当てはめることで、生態学的ネットワークにおけるアンダーサンプリングに対処し、(おそらく)欠落している同点を補正します。これは二部ネットワークでのみ機能します。
- EcoNetGenは、生態学的ネットワークのシミュレーションとサンプリングを行います。
- econullnetrは、生態学的ネットワークの帰無モデル分析を行います。
文献計量ネットワーク
- bibliometrixは、主要なオンライン出版物データベース(「SCOPUS」、「Clarivate Analytics Web of Science」、「Digital Science Dimensions」、「Cochrane Library」、「Lens」、「PubMed」)から書誌データをインポートする機能が含まれています。また、共引用、カップリング、科学協力、共語分析のためのネットワーク(bibliometrix::biblioNetwork)を構築することもできます。これらのネットワークの動的バージョン(bibliometrix::histNetwork)も構築できます。VOSviewer.jar を使用してデータをプロットできます。
- bibliometrixDataは、bibliometrixをテストするためのサンプルデータセットが含まれています。
- biblionetworkは、計量書誌ネットワークのエッジを識別し、重み付けする関数を提供します。すべての関数は大規模データセット向けに最適化されています。関係の種類に応じて異なる手法を実装しています。共著関係では、単純なカウント、(洗練された)分数重み(コサイン正規化ありまたはコサイン正規化あり)がサポートされます。書誌カップリングでは、カップリングの強度と角度がサポートされます。共引用は、カウント重みのコサイン正規化をサポートします。
- Diderotは、Scopusデータに基づくモジュール性とヘテロ引用指標を用いた引用ネットワークの分析に重点を置いています。
自然科学と生命科学のネットワーク
- Rcy3は、分子生物学分野で最も広く利用されているネットワークツールの1つであるCytoscapeへのアクセスを提供します。Cytoscapeのグラフィカルインターフェースから実行可能な各操作に対して、単一の関数を使用してネットワークを可視化、分析、探索できます。
- WGCNAは、重み付き相関ネットワークの解析に重点を置いています。ネットワーク構築、モジュール性計算、遺伝子選択、トポロジ解析、データ生成、プロット、サードパーティ製ソフトウェアへのエクスポートなどの機能を備えています。特に、基盤となるデータマイニング手法は自然科学分野以外にも広く利用されています。Bioconductorには、これらの機能を逆依存/拡張するパッケージがいくつかあります。
- c3netは、C3NETを用いて直接的な物理的相互作用を持つ遺伝子制御ネットワークを推論することを可能にします。他のパッケージは、文献に基づいてこのアルゴリズムの改良版/派生版を実装しています。例えば、以下の通りです。
- Ac3netは、提案された方向性ネットワーク用の新しいアルゴリズムに基づいて、遺伝子ネットワークにおける方向性のある保守的因果コアを推論します。
- bc3netは、遺伝子制御ネットワークの推論のためにBC3NETアルゴリズムを実装しています。本質的には、C3NETアルゴリズムに先行する非情報的事前分布を用いたベイズ的アプローチを提供します。
- BioNARは、実験室で生成されたメタデータに基づいてネットワークを作成する機能を備えた、詳細な位相幾何学に基づくネットワーク解析を実装します。頂点中心性測定とモジュール性計算の機能が含まれています。さらに、データ検証のための堅牢なシナプスプロテオームネットワークも提供します。
- BASiNETとBASiNETEntropyは、ネットワークアルゴリズムと情報理論の概念を用いてRNA配列を分類する機能を提供します。
- bionetdataは、生物学的および化学的性質を持つ関係データセットのコレクションです。
- Cascadeは、カスケードネットワークにおける遺伝子選択、リバースエンジニアリング、予測のための機能が含まれています。
神経科学と心理学
- NetworkToolboxは、神経科学、認知科学、心理学で用いられるネットワーク分析とグラフ理論の指標を実装しています。閾値や依存性といった様々なフィルタリング手法やアプローチが利用可能で、ノードやコミュニティの中心性、ネットワークのクラスタリング係数といった基本的な演算も実行できます。
- qgraphは、重み付きネットワークを可視化および分析するためのツールと、プロット用のガウス分布グラフモデルを提供します。qgraph::as.igraph.qgraph関数を介してigraphと互換性があります。主に心理学と神経科学の分野で用いられています。
- HospitalNetworkは、入院患者の転院に関する二モードネットワークに基づいて、病院の一モードネットワークを構築するための関数を提供します。
空間ネットワーク
- geonetworkは、ノードが位置であるネットワークまたはグラフを処理します。関数には、ノード座標を持つグラフとしてのgeonetworkクラスのオブジェクトの作成、ネットワークの測定値の計算、空間操作のサポート(異なる座標参照系への投影、境界ボックスの処理など)、空間表現のための補助的な地図作成機能と組み合わせたgeonetworkオブジェクトのプロットが含まれます。igraphと互換性があります。
- sfnetworksは、Rの主力空間データパッケージ(sf)とtidygraphを組み合わせ、地理空間ネットワーク用のtidyverse対応クラスとルーチン(最短経路、クリーニング、編集)を提供します。
- chessboardは、無向/有向空間ネットワークを操作するための関数を提供します。接続行列(chessboard::connectivity_matrix)を作成し、結果をノードリスト、隣接リスト、エッジリスト、接続行列、固有ベクトルマップなど、複数の形式でエクスポートできます。また、chessboard::bishop、chessboard::knight、chessboard::pawn、chessboard::queen、chessboard::rookといった特定の関数を介してチェスの駒の連結性を実装し、chessboard::foolとchessboard::wizardという2つの移動ルールセットも導入しています。
- epanet2toolkitは、RとEPANETプログラマーズツールキットのインターフェースとして機能し、基本的なシミュレーション(epanet2toolkit::ENepanet)またはカスタマイズされたシミュレーション(epanet2toolkit::ENopen)を実行します。
- intensitynetは、無向・有向および混合ネットワークのグラフ関連の強度指標から導出される平面ネットワーク構造上に発生する空間上の点パターンを解析する関数が含まれています。
公衆衛生ネットワーク
- epinetは、ベイズ推論を用いて接触ネットワークをシミュレートし、感染症の伝播を予測します。
- hybridModelsは、確率的シミュレーションアルゴリズムと個体ベースアプローチを用いて、クラスター伝播による感染症の伝播をより正確にモデル化するために、サブポピュレーションにノードを割り当てるメタポピュレーションモデルを提供します。
- netdiffuseRは、伝播率、ハザード率、曝露モデル、ネットワーク閾値、感染性(伝染)、感受性といったネットワーク効果を計算するための関数を提供します。
- EpiModelは、Statnetの疫病モデリングを基盤としています。この応用分野の詳細については、CRANタスクビュー「Epidemiology」をご覧ください。
社会的および経済的ネットワーク
- snaは、社会科学および経済科学においてネットワーク上で一般的に実行される多くの操作を実装しており、通常の最小二乗法、線形ネットワーク自己相関モデル、またはロジスティック回帰を用いて、ネットワーク変数を他の変数に回帰させる機能を備えています(この種のアプリケーションの詳細については、CRANタスクビュー「GraphicalModels」を参照してください)。
- FinNetは、個人および法人の両方を含む金融ネットワークを扱うためのクラス、メソッド、および関数を提供します。このパッケージは、所有権、取締役会の連動、またはその両方を含む、さまざまな種類の金融ネットワークの作成を支援します。さまざまな重み付け手順(値またはバイナリ)をサポートし、それらを最も一般的な形式(隣接行列、接続行列、エッジリスト、igraph、statnet)でレンダリングします。
- ITNrは、国際貿易データを隣接行列に整理および処理するための関数を集約しています。また、ネットワークのバックボーンを抽出し、中心性を計算し、ブロックモデルやその他のクラスタリング手順を実行したり、地域の貿易パターンをハイライトしたりすることもできます。
- modnetsは、横断的、時間的、および多層的なネットワークにおけるモデレーター変数をモデル化します。
- multinetは、多層ソーシャルネットワークの作成/生成と分析のための機能を提供します。
参考文献
- Bojanowski, Michal and Lorien Jasny. statnet tutorial. Introduction to Network Analysis Tools in R. https://statnet.org/workshop-intro-sna-tools/
- Csárdi, Gábor, and Tamás Nepus. 2006. igraph introduction. igraph Reference Manual. https://igraph.org/c/doc/igraph-Introduction.html
- Kanevsky, Gregory. 2016. “R Graph Objects: igraph vs. network. R Bloggers. January 30, 2016. https://www.R-bloggers.com/2016/01/r-graph-objects-igraph-vs-network/`