robEst:

Usage Arguments Examples

Usage

1
robEst(Z, r, tau, ep)

Arguments

Z
r
tau
ep

Examples

 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
##---- 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 (Z, r, tau, ep) 
{
    p = ncol(Z)
    n = nrow(Z)
    mu0 = MeanCov(Z)$zbar
    Sigma0 = MeanCov(Z)$S
    Sigin = solve(Sigma0)
    diverg = 0
    for (k in 1:200) {
        sumu1 = 0
        mu = matrix(0, p, 1)
        Sigma = matrix(0, p, p)
        d = rep(NA, n)
        u1 = rep(NA, n)
        u2 = rep(NA, n)
        for (i in 1:n) {
            zi = Z[i, ]
            zi0 = zi - mu0
            di2 = t(zi0) %*% Sigin %*% zi0
            di = as.numeric(sqrt(di2))
            d[i] = di
            if (di <= r) {
                u1i = 1
                u2i = 1/tau
            }
            else {
                u1i = r/di
                u2i = u1i^2/tau
            }
            u1[i] = u1i
            u2[i] = u2i
            sumu1 = sumu1 + u1i
            mu = mu + u1i * zi
            Sigma = Sigma + u2i * zi0 %*% t(zi0)
        }
        mu1 = mu/sumu1
        Sigma1 = Sigma/n
        Sigdif = Sigma1 - Sigma0
        dt = sum(Sigdif^2)
        mu0 = mu1
        Sigma0 = Sigma1
        Sigin = solve(Sigma0)
        if (dt < ep) {
            break
        }
    }
    if (k == 200) {
        diverg = 1
        mu0 = rep(0, p)
        sigma0 = matrix(NA, p, p)
    }
    theta = MLEst(Sigma0)
    Results = list(mu = mu0, Sigma = Sigma0, theta = theta, d = d, 
        u1 = u1, u2 = u2, diverg = diverg)
    return(Results)
  }

musto101/wilcox_R documentation built on May 23, 2019, 10:52 a.m.