R 中通过泊松分布的函数?

Functions through Poisson distribution in R?

我正在尝试 运行 一项试验,该试验 运行 通过泊松分布对几个变化的变量进行试验并给出输出。历时三年,有十二丛。所有 1-6 组均为对照组,7 至 12 组均为干预组。

第一年会有 1-12 组。有6个控制和6个干预。第二年和第三年也一样。所以在第一年你得到一个 v 并且 v 对于每个集群都是相同的但是每个集群都有不同的 lambda。

这是基本代码和等式。

mu=3.4
lambda=rnorm(1,0,.27)
v=rnorm(1,0,.53)
e=rnorm(1,0,.74)
x=rpois(1, exp(mu+lambda+v+e))

Lambda 和 v 与那些 st 正态分布。每个组的偏差。我想在第 1 年让它通过等式取 v=rnorm(1,0,.53) 和 运行。同时,我希望它采用 lambda=rnorm(1,0,.27) 和 运行,对于从第一年开始具有相同 v 的 12 个集群中的每一个。所以基本上每年有一个 v 和 12 个 lambda。我相信这可以通过功能来完成,但我很难做到。我尝试使用 for 循环,但我不认为它完全符合我的要求。这是带有 for 循环的代码:

mu=3.4
lambda=numeric(length=12)
v=numeric(length=3)
for (i in 1:120{
lambda[i]=rnorm(1,0,.27)
}
for (j in 1:3){
v[j]=rnorm(1,0,.53)
}
e=rnorm(1,0,.74)
x=rpois(1, exp(mu+lambda+v+e))

我不太确定这样做是否正确,所以如果有更多经验的人可以解释我的代码在做什么以及如何使用 lambda 和 v 的函数让它做我想做的事,我会非常高兴欣赏它。感谢您的帮助。

听起来你有 12 个组和 3 年总共 36 个数据点。对于每一年 i,您都有一个值 v[i] 和 12 个组特定值 lambda[1]、lambda[2]、...、lambda[12]。您并没有真正指定每个 e 的绘制方式,所以我们假设有一个全局 e 值。

您可以为每个组和年份建立一个包含相关参数的数据框:

dat <- expand.grid(group=1:12, year=1:3)

然后您可以在数据框中指定每个参数:

set.seed(144)
dat$lambda <- rnorm(36, 0, .27)
dat$v <- ave(dat$year, dat$year, FUN=function(x) rnorm(1, 0, .53))
dat$e <- rnorm(1, 0, .74)
dat$mu <- 3.4

最后,您可以根据所有其他指定参数计算泊松分布的 x 值。

dat$x <- apply(dat, 1, function(x) rpois(1, exp(sum(x[3:5]))))
dat
#    group year       lambda         e           v x
# 1      1    1 -0.445650165 0.4905398 -0.68348553 0
# 2      2    1  0.162758849 0.4905398 -0.68348553 0
# 3      3    1 -0.127948650 0.4905398 -0.68348553 0
# 4      4    1 -0.485355518 0.4905398 -0.68348553 0
# 5      5    1 -0.383702670 0.4905398 -0.68348553 1
# 6      6    1  0.042899625 0.4905398 -0.68348553 1
# 7      7    1  0.035036875 0.4905398 -0.68348553 3
# 8      8    1 -0.339165570 0.4905398 -0.68348553 0
# 9      9    1  0.039870111 0.4905398 -0.68348553 0
# 10    10    1  0.264376944 0.4905398 -0.68348553 2
# 11    11    1 -0.158722934 0.4905398 -0.68348553 2
# 12    12    1  0.065626713 0.4905398 -0.68348553 0
# 13     1    2 -0.119740653 0.4905398 -0.94943812 1
# 14     2    2 -0.273056956 0.4905398 -0.94943812 0
# 15     3    2  0.082479733 0.4905398 -0.94943812 1
# 16     4    2  0.004055817 0.4905398 -0.94943812 3
# 17     5    2 -0.136651972 0.4905398 -0.94943812 0
# 18     6    2 -0.379565000 0.4905398 -0.94943812 1
# 19     7    2 -0.347022844 0.4905398 -0.94943812 0
# 20     8    2 -0.025990597 0.4905398 -0.94943812 0
# 21     9    2  0.136014382 0.4905398 -0.94943812 3
# 22    10    2  0.063815822 0.4905398 -0.94943812 0
# 23    11    2  0.067932957 0.4905398 -0.94943812 1
# 24    12    2  0.099834989 0.4905398 -0.94943812 0
# 25     1    3 -0.135519422 0.4905398 -0.04616012 3
# 26     2    3 -0.226890654 0.4905398 -0.04616012 2
# 27     3    3 -0.024936233 0.4905398 -0.04616012 1
# 28     4    3 -0.182543225 0.4905398 -0.04616012 2
# 29     5    3  0.537843637 0.4905398 -0.04616012 2
# 30     6    3  0.291349032 0.4905398 -0.04616012 3
# 31     7    3  0.255455171 0.4905398 -0.04616012 0
# 32     8    3 -0.053874069 0.4905398 -0.04616012 5
# 33     9    3  0.052474650 0.4905398 -0.04616012 0
# 34    10    3 -0.317645288 0.4905398 -0.04616012 0
# 35    11    3  0.162754030 0.4905398 -0.04616012 1
# 36    12    3  0.337018922 0.4905398 -0.04616012 8