Comparative Analysis with GEEs
compar.gee performs the comparative analysis using generalized
estimating equations as described by Paradis and Claude (2002).
drop1 tests single effects of a fitted model output from
predict returns the predicted (fitted) values of the model.
compar.gee(formula, data = NULL, family = "gaussian", phy, corStruct, scale.fix = FALSE, scale.value = 1) ## S3 method for class 'compar.gee': drop1(object, scope, quiet = FALSE, ...) ## S3 method for class 'compar.gee': predict(object, newdata = NULL, type = c("link", "response"), ...)
- a formula giving the model to be fitted.
- the name of the data frame where the variables in
formulaare to be found; by default, the variables are looked for in the global environment.
- a function specifying the distribution assumed for the
response; by default a Gaussian distribution (with link identity) is
?familyfor details on specifying the distribution, and on changing the link function).
- an object of class
- a (phylogenetic) correlation structure.
- logical, indicates whether the scale parameter should be fixed (TRUE) or estimated (FALSE, the default).
scale.fix = TRUE, gives the value for the scale (default:
scale.value = 1).
- an object of class
"compar.gee"resulting from fitting
- a logical specifying whether to display a warning message about eventual ``marginality principle violation''.
- a data frame with column names matching the variables
in the formula of the fitted object (see
- a character string specifying the type of predicted values. By default, the linear (link) prediction is returned.
- further arguments to be passed to
If a data frame is specified for the argument
data, then its
rownames are matched to the tip labels of
phy. The user must be
careful here since the function requires that both series of names
perfectly match, so this operation may fail if there is a typing or
syntax error. If both series of names do not match, the values in the
data frame are taken to be in the same order than the tip labels of
phy, and a warning message is issued.
data = NULL, then it is assumed that the variables are in
the same order than the tip labels of
compar.geereturns an object of class
"compar.gee"with the following components:
call the function call, including the formula. effect.assign a vector of integers assigning the coefficients to the effects (used by
nobs the number of observations. QIC the quasilikelihood information criterion as defined by Pan (2001). coefficients the estimated coefficients (or regression parameters). residuals the regression residuals. family a character string, the distribution assumed for the response. link a character string, the link function used for the mean function. scale the scale (or dispersion parameter). W the variance-covariance matrix of the estimated coefficients. dfP the phylogenetic degrees of freedom (see Paradis and Claude for details on this).
drop1returns an object of class
predictreturns a vector or a data frame if
The calculation of the phylogenetic degrees of freedom is likely to be approximative for non-Brownian correlation structures (this will be refined soon).
The calculation of the quasilikelihood information criterion (QIC) needs to be tested.
Pan, W. (2001) Akaike's information criterion in generalized estimating equations. Biometrics, 57, 120--125.
Paradis, E. and Claude J. (2002) Analysis of comparative data using generalized estimating equations. Journal of theoretical Biology, 218, 175--185.
### The example in Phylip 3.5c (originally from Lynch 1991) ### (the same analysis than in help(pic)...) tr <- "((((Homo:0.21,Pongo:0.21):0.28,Macaca:0.49):0.13,Ateles:0.62):0.38,Galago:1.00);" tree.primates <- read.tree(text = tr) X <- c(4.09434, 3.61092, 2.37024, 2.02815, -1.46968) Y <- c(4.74493, 3.33220, 3.36730, 2.89037, 2.30259) ### Both regressions... the results are quite close to those obtained ### with pic(). compar.gee(X ~ Y, phy = tree.primates) compar.gee(Y ~ X, phy = tree.primates) ### Now do the GEE regressions through the origin: the results are quite ### different! compar.gee(X ~ Y - 1, phy = tree.primates) compar.gee(Y ~ X - 1, phy = tree.primates)