R语言Dirichlet混合模型构建:Beta分布EM算法参数初始化求助
Dirichlet混合模型Beta分布对数似然代码问题
𝐿𝐿(𝛼,𝛽)=(𝛼−1)𝑛ln𝑥𝑖¯+(𝛽−1)𝑛ln(1−𝑥𝑖)¯+𝑛lnΓ(𝛼+𝛽)−𝑛lnΓ(𝛼)−𝑛lnΓ(𝛽)
我需要获得关于初始化参数(alpha、beta)以及设置代码中Gamma分布额外参数的帮助。
E步:计算每个样本在每个成分下的对数似然
log_like <- function(theta, X) { N = nrow(X) alpha <- theta[1] beta <- theta[2] log_lik <- N*log(pgamma(alpha + beta) - N*log(pgamma(alpha) - N*log(pgamma(beta)) + (alpha -1)*N*log(X) + (beta - 1) *N* log(1-X) return(-log_lik) } ### M步: MLE_estimates <- optim(fn = log_like, par = c(1,1), lower = c(-Inf, -Inf), upper = c(Inf, Inf), hessian = TRUE, method = "L-BFGS-B", # 自定义输入 x = vaf_trim$vaf )
以下是用于拟合的数据集(由负二项分布随机生成):
- 0.25
- 2
- 0.23
- 3
- 0.22
- 4
- 0.21
- 5
- 0.21
- 6
- 0.21
- 7
- 0.21
- 8
- 0.21
- 9
- 0.20
- 10
- 0.20
- 11
- 0.20
- 12
- 0.20
- 13
- 0.19
- 14
- 0.19
- 15
- 0.19
- 16
- 0.19
内容的提问来源于stack exchange,提问作者hollyjolly
相关产品推荐
相关产品推荐

