[英]How can I find MLE estimates for the parameters in the function below?
我有一個新的 function,我想估計它的參數; a,b,alpha,vartheta 使用 MLE。 如何進行估算?
EMHL<-function(a,b,alpha,vartheta) {
(2*a*b*alpha*vartheta*
(x^(vartheta-1))* exp(-x^vartheta) *
((1-exp(-x^vartheta))^(a-1)) *
((1 - (1 -( 1 - exp(-x^vartheta))^a)^b)^(alpha-1)) *
(1- (1 - exp(-x^vartheta))^a )^(-b*(alpha+1))
}
對於給定的數據集
x<- c(1.1, 1.4, 1.3, 1.7,1.9, 1.8, 1.6, 2.2,
1.7, 2.7, 4.1, 1.8, 1.5, 1.2, 1.4, 3,
1.7, 2.3, 1.6, 2.0)
問題中顯示的 function 存在語法錯誤,因此我們使用了最后注釋中的那個。
如果 function 是一個密度,並且您希望最小化相應的負對數似然性,那么嘗試一些不同的起始值似乎會導致收斂。
(對於問題list(a = 1, b = 1, alpha = 575, vartheta = 0.01)
似乎可以作為起始值。)
NLL <- function(par) -sum(log(EMHL(par[1], par[2], par[3], par[4])))
st <- list(a = 1, b = 1, alpha = 525, vartheta = .2)
res <- optim(st, NLL); res
給予:
$par
a b alpha vartheta
8.845296e-01 1.211526e+00 5.315759e+02 1.326975e-03
$value
[1] -10904.36
$counts
function gradient
327 NA
$convergence
[1] 0
$message
NULL
EMHL<-function(a,b,alpha,vartheta) {
2*a*b*alpha*vartheta*(x^(vartheta-1))* exp(-x^vartheta) *((1-exp(-x^vartheta))^(a-1)) * ((1 - (1 -( 1 - exp(-x^vartheta))^a)^b)^(alpha-1)) * (1- (1 - exp(-x^vartheta))^a )^(-b*(alpha+1))
}
x<- c(1.1, 1.4, 1.3, 1.7,1.9, 1.8, 1.6, 2.2, 1.7, 2.7, 4.1, 1.8, 1.5, 1.2, 1.4, 3, 1.7, 2.3, 1.6, 2.0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.