# Parameter estimates from adonis2 model

Hello! I am running a PERMANOVA analysis on a dataset with two main effects and an interaction. I would like to print the means and standard errors of the parameter estimates for the model (intercept, each main effect, the interaction effect). Could someone please tell me what code I need to do this?

If the code does not exist for adonis2 models, is there an alternative package I can use that will run PERMANOVA and also print the model parameter estimates?

Providing a `reprex`. See the FAQ like the following to illustrate the question will have better chances of attracting useful answers.

For example

``````library(vegan)
#> This is vegan 2.6-4
data(dune)
data(dune.env)
## default test by terms
adonis2(dune ~ Management*A1, data = dune.env)
#> Permutation test for adonis under reduced model
#> Terms added sequentially (first to last)
#> Permutation: free
#> Number of permutations: 999
#>
#> adonis2(formula = dune ~ Management * A1, data = dune.env)
#>               Df SumOfSqs      R2      F Pr(>F)
#> Management     3   1.4686 0.34161 3.2629  0.002 **
#> A1             1   0.4409 0.10256 2.9387  0.018 *
#> Management:A1  3   0.5892 0.13705 1.3090  0.198
#> Residual      12   1.8004 0.41878
#> Total         19   4.2990 1.00000
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## overall tests
adonis2(dune ~ Management*A1, data = dune.env, by = NULL)
#> Permutation test for adonis under reduced model
#> Permutation: free
#> Number of permutations: 999
#>
#> adonis2(formula = dune ~ Management * A1, data = dune.env, by = NULL)
#>          Df SumOfSqs      R2      F Pr(>F)
#> Model     7   2.4987 0.58122 2.3792  0.001 ***
#> Residual 12   1.8004 0.41878
#> Total    19   4.2990 1.00000
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

### Example of use with strata, for nested (e.g., block) designs.
dat <- expand.grid(rep=gl(2,1), NO3=factor(c(0,10)),field=gl(3,1) )
dat
#>    rep NO3 field
#> 1    1   0     1
#> 2    2   0     1
#> 3    1  10     1
#> 4    2  10     1
#> 5    1   0     2
#> 6    2   0     2
#> 7    1  10     2
#> 8    2  10     2
#> 9    1   0     3
#> 10   2   0     3
#> 11   1  10     3
#> 12   2  10     3
Agropyron <- with(dat, as.numeric(field) + as.numeric(NO3)+2) +rnorm(12)/2
Schizachyrium <- with(dat, as.numeric(field) - as.numeric(NO3)+2) +rnorm(12)/2
total <- Agropyron + Schizachyrium
dotplot(total ~ NO3, dat, jitter.x=TRUE, groups=field,
type=c('p','a'), xlab="NO3", auto.key=list(columns=3, lines=TRUE) )
``````

``````
Y <- data.frame(Agropyron, Schizachyrium)
mod <- metaMDS(Y, trace = FALSE)
plot(mod)
### Ellipsoid hulls show treatment
with(dat, ordiellipse(mod, field, kind = "ehull", label = TRUE))
### Spider shows fields
with(dat, ordispider(mod, field, lty=3, col="red"))
``````

``````
### Incorrect (no strata)
adonis2(Y ~ NO3, data = dat, permutations = 199)
#> Permutation test for adonis under reduced model
#> Terms added sequentially (first to last)
#> Permutation: free
#> Number of permutations: 199
#>
#> adonis2(formula = Y ~ NO3, data = dat, permutations = 199)
#>          Df SumOfSqs      R2      F Pr(>F)
#> NO3       1 0.054321 0.17481 2.1185   0.16
#> Residual 10 0.256420 0.82519
#> Total    11 0.310741 1.00000
## Correct with strata
with(dat, adonis2(Y ~ NO3, data = dat, permutations = 199, strata = field))
#> Permutation test for adonis under reduced model
#> Terms added sequentially (first to last)
#> Blocks:  strata
#> Permutation: free
#> Number of permutations: 199
#>
#> adonis2(formula = Y ~ NO3, data = dat, permutations = 199, strata = field)
#>          Df SumOfSqs      R2      F Pr(>F)
#> NO3       1 0.054321 0.17481 2.1185   0.01 **
#> Residual 10 0.256420 0.82519
#> Total    11 0.310741 1.00000
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
``````

Created on 2023-03-18 with reprex v2.0.2

What this illustrates that I have to guess what package is being used. I choose `{vegan}` because it is top hit among packages for `adonis2`. But the problem is that `adonis2` returns a “permutational MANOVA” (formerly “nonparametric MANOVA”), not a "parametric MANOVA". Plus I am unsure how the data used compares to the data you have in mind.

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.