Description Usage Arguments Details Value Note Author(s) References See Also Examples
internal use only
1 |
param |
|
dat |
|
mlmax |
|
fixed |
|
... |
internal use only
internal use only
internal use only
P. Rakonczai
internal use only
internal use only
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | ##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function (param, dat, mlmax = 1e+15, fixed = FALSE, ...)
{
loglik = mlmax
hxy = NA
x = dat[, 1]
y = dat[, 2]
error = FALSE
mux = param[1]
muy = param[4]
sigx = param[2]
sigy = param[5]
gamx = param[3]
gamy = param[6]
a = param[7]
b = param[8]
mu = function(x, y) ((1/x)^(2 * a) + 2 * (1 + b) * (1/x/y)^(a) +
(1/y)^(2 * a))^(1/2/a)
dxdymu = function(x, y) (1/4) * ((1/x)^(2 * a) + (2 * (1 +
b)) * (1/(x * y))^a + (1/y)^(2 * a))^(1/(2 * a)) * (-(2 *
(1 + b)) * (1/(x * y))^a * a/y - 2 * (1/y)^(2 * a) *
a/y) * (-2 * (1/x)^(2 * a) * a/x - (2 * (1 + b)) * (1/(x *
y))^a * a/x)/(a^2 * ((1/x)^(2 * a) + (2 * (1 + b)) *
(1/(x * y))^a + (1/y)^(2 * a))^2) + ((1/x)^(2 * a) +
(2 * (1 + b)) * (1/(x * y))^a + (1/y)^(2 * a))^(1/(2 *
a)) * a * (1 + b) * (1/(x * y))^a/(y * x * ((1/x)^(2 *
a) + (2 * (1 + b)) * (1/(x * y))^a + (1/y)^(2 * a))) -
(1/2) * ((1/x)^(2 * a) + (2 * (1 + b)) * (1/(x * y))^a +
(1/y)^(2 * a))^(1/(2 * a)) * (-2 * (1/x)^(2 * a) *
a/x - (2 * (1 + b)) * (1/(x * y))^a * a/x) * (-(2 *
(1 + b)) * (1/(x * y))^a * a/y - 2 * (1/y)^(2 * a) *
a/y)/(a * ((1/x)^(2 * a) + (2 * (1 + b)) * (1/(x *
y))^a + (1/y)^(2 * a))^2)
if (sigx < 0 | sigy < 0 | a < 1 | b <= -1 | (b > (2 * a -
2)))
error = TRUE
if (fixed == TRUE) {
mux = 0
}
if (error)
loglik = mlmax
if (!error) {
tx = (1 + gamx * (x - mux)/sigx)^(1/gamx)
ty = (1 + gamy * (y - muy)/sigy)^(1/gamy)
tx0 = (1 + gamx * (-mux)/sigx)^(1/gamx)
ty0 = (1 + gamy * (-muy)/sigy)^(1/gamy)
dtx = (1/sigx) * pmax((1 + gamx * (x - mux)/sigx), 0)^(1/gamx -
1)
dty = (1/sigy) * pmax((1 + gamy * (y - muy)/sigy), 0)^(1/gamy -
1)
c0 = -mu(tx0, ty0)
hxy = 1/c0 * dxdymu(tx, ty) * dtx * dty
hxy = as.numeric(hxy * (1 - ((x < 0) * (y < 0))))
loglik = -sum(log(hxy))
}
if (min(1 + gamx * (x - mux)/sigx) < 0)
loglik = mlmax
if (min(1 + gamy * (y - muy)/sigy) < 0)
loglik = mlmax
loglik
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.