使用 t 检验获取两个向量中观察到的状态的 p 值

Using t-test to get pValue for observed state in two vectors

我打算在网络数据上使用它。

我的网络有两种边。 我写了一个函数 returns 这两种边缘类型的入度分别给你看看它是什么样子的:

    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,也就是节点的入度保持不变。

我想知道每个节点的 pValue 在 G_obs 和 R_obs 之间具有最初观察到的入度分裂。

编辑: 抱歉 - 这似乎有点太不清楚了。 我不想要观察到的分布的 row-wise 概率。 我想要每个节点观察到的 G_obs, R_obs split 的概率,其中 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 条红色边。 现在我们 'sample' 所有绿色和所有红色边,也就是将它们重新分配到指定的列中 - 但与此同时,N1 仍然有 5 条边。 (参见上面的示例示例,其中

    Node    G_obs   R_obs
1   N1      4       1
...

我已经有一个可以正确提供 'sampling' 的函数(占位符:mySample(graph))并且需要一个采用 mySample 并使用它的函数,例如1000 次,并计算每个节点的原始观察的可能性。

感谢任何帮助 谢谢

听起来你是在追求二项式概率(随机划分两种类型的边会产生与最初观察到的分布相同的概率)。

您可以使用 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
)