[R] question about capscale (vegan)

Alicia Amadoz Alicia.Amadoz at uv.es
Fri Nov 17 14:28:04 CET 2006


Hello Gavin,

Thank you very much for your help. I'm sorry I forgot to include all
commands that I used but next time I will try to write all of them. I
will try with my real data and see how it goes. I think I finally have
understood how capscale works with this kind of data. Thank you.

Regards,
Alicia

> On Fri, 2006-11-17 at 12:18 +0100, Alicia Amadoz wrote:
> > Hello,
> > 
> > Thank you for your help. I have tried to perform the analysis I wanted
> > with data of example, I mean not real data because I can't provide it
> > here. So, what I have tried is this,
> 
> Hi Alicia,
> 
> It would have been more helpful if you'd included the actual commands to
> generate each object, but thanks for including an example.
> 
> dat <- matrix(c(0.00,0.13,0.59,0.13,0.00,0.55,0.59,0.55,0.00), ncol = 3)
> dist.mat <- as.dist(dat)
> dist.mat
>    1    2
> 2 0.13
> 3 0.59 0.55
> time <- as.factor(c(2006, 2005, 2005))
> region <- as.factor(c("europe", "africa", "europe"))
> city <- as.factor(c("london", "nairobi", "paris"))
> factors.frame <- data.frame(time, region, city)
> 
> my.cap <- capscale(dist.mat ~ time + region + time:region +
> region:city + time:region:city, factors.frame)
> 
> my.cap
> 
> So, stop here. Look at the output. You can extract 2 constrained axes
> that explain 100% of the variance in your data. This causes my.cap$CA to
> be NULL, which is why when you do:
> 
> anova(my.cap)
> 
> You get this error message:
> 
> Error in `names<-.default`(`*tmp*`, value = "Residual") :
>         attempt to set an attribute on NULL
> 
> The error has nothing to do with providing "comm" or not (I think) as I
> don't see how this would alter my.cap$CA, and anyway, "comm" is used to
> generate "species" scores and if you look at summary(my.cap) you will
> see that you have species scores (though their meaning may be hard to
> understand if no "comm" provided - see ?capscale)
> 
> I hesitate to call this a bug in capscale() or permutest.cca() (this is
> where the error comes from by the way:
> 
> > traceback()
> 5: `names<-.default`(`*tmp*`, value = "Residual")
> 4: `names<-`(`*tmp*`, value = "Residual")
> 3: permutest.cca(object, step, ...)
> 2: anova.cca(my.cap)
> 1: anova(my.cap)
> 
> ), but anova.cca doesn't seem to handle situations where there isn't an
> unconstrained component. I've CC'd Jari Oksanen, the author of vegan to
> insure he sees this.
> 
> This error is related to the specific dummy problem you sent - do you
> get this error when you run the analysis on your full data set? If so,
> you might want to consider removing some constraints as your model isn't
> really constrained anymore. As number constraints approaches number
> sites the constraint on the ordination drops away and you are back to a
> Principal Coordinates Analysis (IIRC) of your dissimilarity matrix.
> 
> > > anova(my.cap)
> > Erro en `names<-.default`(`*tmp*`, value = "Residual") :
> >         se intenta especificar un atributo en un NULL
> > 
> > Then, I am still concerned about 'comm' argument since I don't
> > understand how important could it be for my type of data and I don't
> > understand to what it referes in my data. Another thing, is that what I
> > am really interested in is to perform a factorial anova with another
> > factor nested (the model I have provided above), and as you can see R
> > gives an error that I don't understand either.
> 
> As for your original data - by the looks of it, you wouldn't be able to
> use that as the argument to "comm". It would need to be numeric and
> recoded etc. before you could use it, and how to do that in the best way
> I'm not sure.
> 
> But in this instance, if you are interested in the samples and how they
> relate to one another, constrained by your factors_frame, then you don't
> need "comm" and you can proceed without it, and not bother displaying
> species scores.
> 
> If you are interested in how the samples relate to one another and how
> the nucleic acids relate to one another and the samples, constrained by
> your factors_frame, then you will need to recode that example matrix
> into something numeric, and even then it may not be possible with the
> way capscale is written.
> 
> Hope this helps,
> 
> G
> 
> > 
> > Thank you for your help in advance. 
> > Regards,
> > Alicia
> > 
> > 
> > > On Thu, 2006-11-16 at 17:25 +0100, Alicia Amadoz wrote:
> > > > Hello,
> > > > 
> > > > I am interested in using the capscale function of vegan package
of R. I
> > > > already have a dissimilarity matrix and I am intended to use it as
> > > > 'distance' argument. But then, I don't know what kind of data
must be in
> > > > 'comm' argument. I don't understand what type of data must be
referred
> > > > as 'species scores' and 'community data frame' since my data
refer to
> > > > nucleic distances between different sequences.
> > > 
> > > No, that is all wrong. Read ?capscale more closely! It says that you
> > > need to use the formula to describe the model. "distance" is used to
> > > tell capscale which distance coefficient to use if the LHS of the
model
> > > formula is a community matrix.
> > > 
> > > Argument "comm" is used to tell capscale where to find the species
> > > matrix that will be used to determine species scores in the analysis,
> > > *if* the LHS of the formula is a distance matrix. "comm" isn't used if
> > > the LHS is a data frame, and "distance" is ignored if the LHS is a
> > > distance matrix.
> > > 
> > > As you don't provide a reproducible example of your problem, I
will use
> > > the inbuilt example from ?capscale
> > > 
> > > ## load some data
> > > data(varespec)
> > > data(varechem)
> > > 
> > > Now if you want to fit a capscale model using the raw species
data, then
> > > you would describe the model as so:
> > > 
> > > vare.cap <- capscale(varespec ~ N + P + K + Condition(Al), 
> > >                      data = varechem,
> > >                      distance = "bray")
> > > vare.cap
> > > 
> > > In the above, LHS of formula is a data frame so capscale looks to
> > > argument "distance" for the name of the coefficient to turn it into a
> > > distance matrix. The terms on the RHS of the formula are variables
> > > looked up in the object assigned to the "data" argument.
> > > 
> > > Now lets alter this to start with a dissimilarity/distance matrix
> > > instead. The exact complement of the above would be:
> > > 
> > > dist.mat <- vegdist(varespec, method = "bray")
> > > vare.cap2 <- capscale(dist.mat ~ N + P + K + Condition(Al), 
> > >                      data = varechem,
> > >                      comm = varespec)
> > > vare.cap2
> > > 
> > > To explain the above example; first create the Bray Curtis distance
> > > matrix (dist.mat). Then use this on the LHS of the formula. When
> > > capscale now wants to calculate the species scores of the analysis it
> > > will look to argument "comm" to use in the calculation; which in this
> > > case we specify is the original species matrix varespec.
> > > 
> > > As for what are species scores, well this is a throw back to the
origins
> > > of the package and the methods included - all of this is related to
> > > ecology and mainly vegetation analysis (hence vegan).
> > > 
> > > For species scores, read variable scores. The distance matrix (however
> > > calculated) describes how similar your individual sites (read samples)
> > > are to one another. You can also display information about the
variables
> > > used to determine those distances/similarities, and this is what is
> > > meant by species scores. Whatever you used to generate the distance
> > > matrix, the columns represent the info used to generate the "species
> > > scores".
> > > 
> > > If some of this still isn't clear, email the list with the
commands used
> > > to generate your distance matrix in R and I'll have a go at explaining
> > > this with reference to your data/example.
> > > 
> > > > 
> > > > I would be very grateful if you could help me with this fact in any
> > > > manner. Thank you in advance for your help.
> > > > 
> > > > Regards,
> > > > Alicia
> > > 
> > > HTH
> > > 
> > > G
> > > 
> > > -- 
> > > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
> > >  Gavin Simpson                 [t] +44 (0)20 7679 0522
> > >  ECRC & ENSIS, UCL Geography,  [f] +44 (0)20 7679 0565
> > >  Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
> > >  Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
> > >  UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk
> > > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
> > > 
> > > 
> > >
> > 
> > ______________________________________________
> > R-help en stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
> -- 
> %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
>  Gavin Simpson                 [t] +44 (0)20 7679 0522
>  ECRC & ENSIS, UCL Geography,  [f] +44 (0)20 7679 0565
>  Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
>  Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
>  UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk
> %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
> 
> 
> 


--
***********************************************
Alicia Amadoz Navarro

Evolutionary Genetics Unit
Cavanilles Institute for Biodiversity and
Evolutionary Biology
University of Valencia
Apartado Oficial 22085
E-46071 Valencia SPAIN
http://www.uv.es/~biodiver/v/index.htm
Phone: (+34) 96 354 3687
FAX: (+34) 96 354 3733
e-mail: alicia.amadoz en uv.es
http://www.uv.es/~amadoz

***********************************************
NOTE! For shipments by EXPRESS COURIER use "Instituto
Cavanilles de Biodiversidad y Biología Evolutiva,
Polígono de la Coma s/n, 46980 Paterna (Valencia),
Spain" instead of P.O. Box no. and Post Code/City above.



More information about the R-help mailing list