aster.Rout.save
R version 2.15.0 (2012-03-30)
Copyright (C) 2012 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-unknown-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
>
> library(aster)
Loading required package: trust
>
> set.seed(42)
> nind <- 25
> nnode <- 5
> ncoef <- nnode + 1
>
> fam <- c(1, 1, 2, 3, 3)
> pred <- c(0, 1, 1, 2, 3)
>
> modmat <- array(0, c(nind, nnode, ncoef))
> modmat[ , , 1] <- 1
> for (i in 2:nnode)
+ modmat[ , i, i] <- 1
> modmat[ , , ncoef] <- rnorm(nind * nnode)
>
> beta <- rnorm(ncoef) / 10
>
> phi <- matrix(modmat, ncol = ncoef) %*% beta
> phi <- matrix(phi, ncol = nnode)
>
> theta.origin <- matrix(as.double(0), nind, nnode)
>
> aster:::setfam(fam.default())
>
> phi.origin <- .C("aster_theta2phi",
+ nind = as.integer(nind),
+ nnode = as.integer(nnode),
+ pred = as.integer(pred),
+ fam = as.integer(fam),
+ theta = as.double(theta.origin),
+ phi = matrix(as.double(0), nind, nnode),
+ PACKAGE = "aster")$phi
>
> theta <- .C("aster_phi2theta",
+ nind = as.integer(nind),
+ nnode = as.integer(nnode),
+ pred = as.integer(pred),
+ fam = as.integer(fam),
+ phi = as.double(phi),
+ theta = matrix(as.double(0), nind, nnode))$theta
>
> root <- sample(1:3, nind * nnode, replace = TRUE)
> root <- matrix(root, nind, nnode)
>
> x <- raster(theta, pred, fam, root)
>
> out0 <- aster(x, root, pred, fam, modmat, type = "unco", method = "trust")
> out1 <- aster(x, root, pred, fam, modmat, type = "unco", method = "nlm")
> out2 <- aster(x, root, pred, fam, modmat, type = "unco", method = "CG")
> out3 <- aster(x, root, pred, fam, modmat, type = "unco", method = "L-B")
>
> all.equal(out0$coefficients, out1$coefficients)
[1] TRUE
> all.equal(out1$coefficients, out2$coefficients)
[1] TRUE
> all.equal(out2$coefficients, out3$coefficients, tol = 1e-7)
[1] TRUE
> all.equal(out3$coefficients, out0$coefficients, tol = 1e-7)
[1] TRUE
>
> out4 <- aster(x, root, pred, fam, modmat, type = "unco",
+ method = "trust", origin = theta.origin)
> print(out4$coefficients)
[1] -0.06809277 -0.30705441 0.18624357 0.07757573 -0.37636339 -0.08435995
> print(out0$coefficients)
[1] 1.62505441 -1.45887674 -0.96557875 -1.61557145 -2.06951057 -0.08435995
>
> foo <- as.numeric(out0$origin) +
+ matrix(out0$modmat, ncol = ncoef) %*% out0$coefficients
> bar <- as.numeric(out4$origin) +
+ matrix(out4$modmat, ncol = ncoef) %*% out4$coefficients
> all.equal(foo, bar)
[1] TRUE
> all.equal(phi.origin, out0$origin)
[1] TRUE
>
> out0 <- aster(x, root, pred, fam, modmat, type = "cond", method = "trust")
> out1 <- aster(x, root, pred, fam, modmat, type = "cond", method = "nlm")
> out2 <- aster(x, root, pred, fam, modmat, type = "cond", method = "CG")
> out3 <- aster(x, root, pred, fam, modmat, type = "cond", method = "L-B")
>
> all.equal(out0$coefficients, out1$coefficients)
[1] TRUE
> all.equal(out1$coefficients, out2$coefficients)
[1] TRUE
> all.equal(out2$coefficients, out3$coefficients)
[1] TRUE
> all.equal(out3$coefficients, out0$coefficients)
[1] TRUE
>
> print(out0$coefficients)
[1] 1.74295791 -1.54997014 -1.71291553 -1.72922986 -2.16895832 -0.02625205
>
>
> proc.time()
user system elapsed
0.784 0.027 0.937