0

これをネットワークデータで使用する予定です。

私のネットワークには 2 種類のエッジがあります。どのように見えるかを確認するために、これら 2 つのエッジ タイプの次数を個別に返す関数を作成しました。

    Node    G_obs   R_obs
1   N1      3       2
2   N2      1       0
3   N3      9       0
4   N4      1       4
5   N5      1       0
...

そして、ネットワーク エッジをサンプリングする別の関数を作成しました。この後は次のようになります。

    Node    G_obs   R_obs
1   N1      4       1
2   N2      1       0
3   N3      3       6
4   N4      3       2
5   N5      1       0
...

G_obs+R_obs、つまりノードの次数は同じままであることに注意してください。

G_obs と R_obs の間で最初に観察された次数分割を持つ各ノードの pValue を知りたいです。

編集: 申し訳ありませんが、これは少しわかりにくかったようです。観測された分布の行ごとの確率は必要ありません。観測されたG_obs、R_obs がノードごとに分割される確率が必要です。ここで、sample(G_obs) + sample(R_obs) は以前と同じノードの合計を保持しています。次回は英語のネイティブ スピーカーに相談して、より適切な言葉遣いをしてもらう必要があります。問題をより明確に説明できればと思います :(

編集2

観察:

    Node    G_obs   R_obs
1   N1      3       2
2   N2      1       0
3   N3      9       0
4   N4      1       4
5   N5      1       0

ご覧のとおり、N1 には 5 つのインエッジがあります。そのうちの 3 つは緑 (G_obs)、2 つは赤 (R_obs) です。

表示されている 5 つのノードの場合、合計 15 個の緑のエッジと合計 6 個の赤のエッジがあります。ここで、すべての緑とすべての赤のエッジを「サンプリング」します。別名、それらを割り当てられた列に再分配しますが、同時に、N1 にはまだ 5 つのエッジがあります。(上記のサンプリングの例を参照してください。

    Node    G_obs   R_obs
1   N1      4       1
...

私はすでに「サンプリング」を正しく提供する関数を持っており (これのプレースホルダー: mySample(graph))、mySample を取得し、それをたとえば 1000 回使用し、各ノードの元の観察の可能性を計算する関数が必要です。

助けていただければ幸いです

4

1 に答える 1

2

二項確率 (エッジを 2 つのタイプの間でランダムに分割すると、最初に観測されたものと同じ分布が得られる確率) を求めているように聞こえます。

dbinom()関数を使用してこれらの確率を計算できます。

transform(
  df,
  prob_same = dbinom(G_obs, G_obs + R_obs, prob = .5)
)

データ

df <- read.table(
  text = "
   Node    G_obs   R_obs
N1      3       2
N2      1       0
N3      9       0
N4      1       4
N5      1       0
  ",
  header = TRUE
)
于 2015-02-10T15:10:51.553 に答える