我首先要采样100个伽玛分布的数字,其中形状= 2,比例= 1/2。由于我使用的是最小化工具,因此我写下了对数似然函数并将其取反。我也尝试使用optim
,但无济于事。 optim
和nlm
都给了我不同的答案。到目前为止,这是我的代码:
N = 100
shape = 2
scale = 1/2
Data <- rgamma(SampSize, shape, scale)
LogL = function (x){
k = x[1]
gamma = x[2]
(-1)*(N*x[1]*log(x[2])+(x[1]-1)*sum(log(Data))-x[2]*sum(Data))
}
nlm(LogL,c(1.5,1))
答案 0 :(得分:1)
logL <- function (x) -sum(dgamma(Data, x[1], x[2], log = TRUE))
N = 100
shape = 2
scale = 1/2
Data <- rgamma(N, shape, scale)
optim(c(1.5, 1), logL)$par
nlm(logL, c(1.5, 1))$estimate