s-news
[Top] [All Lists]

MLE for Burr distribution

To: S NEWS <s-news@lists.biostat.wustl.edu>
Subject: MLE for Burr distribution
From: meteor_shahab@yahoo.com
Date: Sat, 18 Aug 2007 11:04:16 -0700 (PDT)
Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type:Message-ID; b=47YqjpNzGwFDOAkYVsLU4FskMVNi19AEU7vyc4HlkQvTYx6ptn3WkfLhALCS1gdwwnAX9lTMz2V/VTu0ghsCb8wyCDee+ZCjKJZrhb0MB0+iLlIG+er1s7ETzdvoShefDv3hdgfpnQpVezNikfG7enhGyhRA41NkIJLxy8mHNdI=;
Dear All,
I am using these codes to calculate MLE of Burr parameters,
 

lburrm <- deriv3(

~ -log(c * a * b^a * x^(c - 1) * (b + x^c)^(-(a + 1))),

c("a", "b", "c"),

function(x, a, b, c) NULL)

 

f.like <- function(p, x)

{

e <- p[3] * p[1] * p[2]^p[1] * x^(p[3] - 1) * (p[2] + x^p[3])^(-(p[1] + 1))

-sum(log(e))

}

 

f.grh <- function(p, x)

{

e <- lburrm(x, p[1], p[2], p[3])

g <- colSums(attr(e, "gradient"))

H <- colSums(attr(e, "hessian"), 2)

list(gradient = g, hessian = H[row(H) <= col(H)])

}

 

p0 <- c(a=0.20, b=3e30, c=4)

mix.nl2 <- nlminb(p0, f.like, f.grh, hessian = T,

scale = c(1000, 1, 100), lower = c(0, 0, 0),

upper = c(rep(Inf, 3)), x = dd)

mix.nl2[c("parameter", "objective")]

 

but as my dataset contains extreme valus like:

 

2051009700  2082314400  2299479500 14389535000 18514194000

the algorithm does not work properly, I know that parameter b is about 3e+30 but Splus always return 1+e20 for this parameter

why Splus can not return larger values? What is the problem? Thanks alot, Regards, Shahab Einabadi


 

 


Send instant messages to your online friends http://uk.messenger.yahoo.com
<Prev in Thread] Current Thread [Next in Thread>
  • MLE for Burr distribution, meteor_shahab <=