# selection

### Description

Finds the envelope eigenspace or dimension that is favored using AIC, BIC, or the LRT at a specified size.

### Usage

1 2 |

### Arguments

`parm` |
The MLE of the parameter of interest. |

`index` |
The indices denoting which components of the canonical parameter vector are parameters of interest. |

`model` |
An aster model object. |

`data` |
An asterdata object. |

`alpha` |
The desired size of the LRT. |

`type` |
The parameterization of the aster model in which envelope methods are being applied. |

`method` |
The procedure used to obtain envelope estimators. |

### Details

This function provides the user with the envelope model dimension
or indices of the eigenspace favored by AIC, BIC, and the likelihood
ratio test of size `alpha`

. There are four possible combinations
of outputs. They are:

[1.] The specification of

`method = "eigen"`

and`type = "mean-value"`

provides the user with the indices of the eigenspace of estimated Fisher information used to construct an envelope estimator for*τ*favored by AIC, BIC, and the LRT of size`alpha`

.[2.] The specification of

`method = "eigen"`

and`type = "canonical"`

provides the user with the indices of the eigenspace of estimated Fisher information used to construct an envelope estimator for*β*favored by AIC, BIC, and the LRT of size`alpha`

.[3.] The specification of

`method = "1d"`

and`type = "mean-value"`

provides the user with the envelope model dimension used to construct an envelope estimator for*τ*favored by AIC, BIC, and the LRT of size`alpha`

.[4.] The specification of

`method = "1d"`

and`type = "canonical"`

provides the user with the envelope model dimension used to construct an envelope estimator for*β*favored by AIC, BIC, and the LRT of size`alpha`

.

When one is interested in envelope model dimensions or eigenspaces with
respect to *β*, then an `asterdata`

object does not need to
be specified. On the other hand, an `asterdata`

is needed in order to
map the estimated *τ* to its corresponding *β* value. This
is necessary because of the interface (or lack thereof) between current
`aster`

and `aster2`

software. The way in which aster model
log likelihoods are evaluated is incorporated in `aster`

software
and changing parameterizations is carried out using `aster2`

software.

### Value

`aic` |
The eigenspace or envelope model dimension favored using AIC. |

`bic` |
The eigenspace or envelope model dimension favored using BIC. |

`LRT` |
The eigenspace or envelope model dimension favored
using the LRT of size |

`out` |
The output table of all model selection criteria for all envelope estimators considered. |

### References

Cook, R.D. and Zhang, X. (2014).
Foundations for Envelope Models and Methods.
*JASA*, In Press.

Cook, R.D. and Zhang, X. (2015).
Algorithms for Envelope Estimation.
*Journal of Computational and Graphical Statistics*,
Published online. \Sexpr[results=rd,stage=build]{tools:::Rd_expr_doi("10.1080/10618600.2015.1029577")}.

Eck, D. J., Geyer, C. J., and Cook, R. D. (2016).
Enveloping the aster model.
*in prep*.

### 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 | ```
## Not run:
set.seed(13)
library(envlpaster)
library(aster2)
data(generateddata)
m.null <- aster(resp ~ 0 + varb, fam = fam, pred = pred,
varvar = varb, idvar = id, root = root, data = redata)
m1 <- aster(resp ~ 0 + varb + mass + timing,
fam = fam, pred = pred, varvar = varb, idvar = id,
root = root, data = redata)
m2 <- aster(resp ~ 0 + varb + mass + timing +
I(mass^2) + I(timing^2) + I(mass*timing),
fam = fam, pred = pred, varvar = varb, idvar = id,
root = root, data = redata)
anova.table <- anova(m.null,m1,m2); anova.table
beta <- m1$coef
a <- grepl( "offsp", names(beta))
a <- a + grepl( "surviv", names(beta))
b <- which(a == 1)
target <- c(1:length(beta))[-b]
nnode <- ncol(m1$x)
data.aster <- asterdata(data, vars, pred, rep(0,nnode),
fam, families = list("bernoulli", "poisson",
fam.zero.truncated.poisson()))
selection(parm = beta, index = target, model = m1,
data = data.aster, alpha = 0.05, type = "canonical",
method = "eigen")
## End(Not run)
``` |