【问题标题】:How can I code the mean and standard deviation for a weighted binomial distribution?如何编码加权二项分布的均值和标准差?
【发布时间】:2019-05-08 01:24:49
【问题描述】:

我正在研究一个遗传学问题,我有 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 中做到这一点。事实上,我根本不知道它的数学形式。

希望你能帮忙

【问题讨论】:

  • 函数expo来自哪个包?
  • 那是一个错字,我现在已经修正了。我只是使用指数函数
  • 如果只是加权平均值和标准差的计算,那么这可能就足够了吗? stackoverflow.com/questions/10049402/…。如果它是加权分布族背后的方法,那么尝试将问题移至stats.stackexchange.com也许

标签: r statistics distribution variance


【解决方案1】:

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

E[sumin wiXi] = p sumi子>n wi

方差是

Var[sumin wiXi] = sumin wi2Var[Xi] = p(1-p) sumi n 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

【讨论】:

    猜你喜欢
    • 2012-04-20
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    相关资源
    最近更新 更多