如何对加权二项分布的均值和标准差进行编码?

How can I code the mean and standard deviation for a weighted binomial distribution?

我正在研究一个遗传学问题,我有 20 个基因,每个基因都有两个等位基因。这会产生 40 个值,这些值可以是 1 或 0。

对于此分布,我得到的期望值为 20 (np),方差为 10 (np(1-p) ) 因为 n=40 和 p=0.5 (see here).

但我权衡了这些基因中每一个的贡献。权重计算如下:

res <- optimize(function(lambda) (sum(exp(-lambda * (1:20))) -5)^2, 0:1, tol = .Machine$double.eps)
res
x <- c(1:20)
lambda <- res$minimum
y<-exp(-lambda*x)

请注意,因为每个基因都有 2 个等位基因,所以每个权重使用两次。

   gene1.1 * weight1 + gene1.2 * weight 1 + gene2.1 * weight2 + gene2.2 * weight2...

我想计算这个新分布的期望值和方差,但我不确定如何在 R 中执行此操作。事实上,我根本不知道它的数学形式。

希望能帮到你

给定 n 个伯努利随机变量 X1, ..., X20 具有相同的参数 p 和权重 w1, ..., w20,他们的总和的期望是

E[suminwiXi] = p sumin wi

方差为

Var[suminwiXi] = sumin wi2Var[Xi] = p(1-p) sumin wi2

这给出了

p <- 0.5
n <- 20

# No weights
2 * n * p # Mean
# [1] 20
2 * n * p * (1 - p) # Variance
# [1] 10

# Weights
2 * sum(y) * p # Mean
# [1] 5
2 * p * (1 - p) * sum(y^2) # Variance
# [1] 1.172048

# Unweighted case again
y <- rep(1, n)
2 * sum(y) * p # Mean
# [1] 20
2 * p * (1 - p) * sum(y^2) # Variance
# [1] 10