Skip to contents

add_anova() gives the combined analysis of variance of genotypes grown in randomized complete blocks in several environments: environments, replicates within environments, genotypes, genotype-by-environment interaction and the pooled error. It is the first step of a stability analysis: a significant interaction is the reason for studying stability.

Usage

add_anova(.data, .y, .rep, .gen, .env)

# Default S3 method
add_anova(.data, .y, .rep, .gen, .env)

Arguments

.data

a data frame (or data.table) with one row per plot.

.y

response: a column of .data given by name (.y = Yield or .y = "Yield") or a numeric vector of length nrow(.data).

.rep

replicate (block within environment): a column of .data or a vector, as for .y.

.gen

genotype: a column of .data or a vector, as for .y.

.env

environment: a column of .data or a vector, as for .y.

Value

An object of class c("stab_add_anova", "stab_result", "list") with the component of earlier versions:

anova

analysis of variance (class anova) with rows Env, Rep(Env), Gen, Gen:Env, Residuals and columns Df, Sum Sq, Mean Sq, F value, Pr(>F).

and a new one:

Summary

data frame: grand mean, coefficient of variation (percent), numbers of genotypes, environments and replicates, and the shares (percent) of environments, genotypes and interaction in their summed sums of squares.

Methods: print(), summary(), plot() (residuals against fitted values, which = "residuals", or their normal quantile plot, which = "qq"), stab_interpret(), data.table::as.data.table(x, component =).

Details

With \(G\) genotypes, \(E\) environments and \(B\) replicates the model is $$y_{ijk} = \mu + e_j + b_{k(j)} + g_i + (ge)_{ij} + \varepsilon_{ijk},$$ \(i = 1, \ldots, G\), \(j = 1, \ldots, E\), \(k = 1, \ldots, B\). With the cell means \(\bar{y}_{ij}\), the genotype means \(\bar{y}_{i\cdot}\), the environment means \(\bar{y}_{\cdot j}\), the replicate means \(\bar{y}_{\cdot jk}\) and the grand mean \(\bar{y}\) the sums of squares are $$SS_E = GB\sum_j(\bar{y}_{\cdot j} - \bar{y})^2, \quad SS_{B(E)} = G\sum_j\sum_k(\bar{y}_{\cdot jk} - \bar{y}_{\cdot j})^2, \quad SS_G = EB\sum_i(\bar{y}_{i\cdot} - \bar{y})^2,$$ $$SS_{GE} = B\sum_i\sum_j(\bar{y}_{ij} - \bar{y}_{i\cdot} - \bar{y}_{\cdot j} + \bar{y})^2,$$ and the error is the remainder, on \(E(G - 1)(B - 1)\) degrees of freedom. Environments are tested against replicates within environments, genotypes and the interaction against the pooled error. With missing plots the sums of squares are the sequential ones of the same linear model.

References

Singh, R. K. and Chaudhary, B. D. (2004). Biometrical Methods in Quantitative Genetic Analysis. Kalyani Publishers, New Delhi.

Author

Muhammad Yaseen (myaseen208@gmail.com), Kent M. Eskridge (keskridge1@unl.edu)

Examples

data(ge_data)
fit <-
  add_anova(
      .data = ge_data
    , .y    = Yield
    , .rep  = Rep
    , .gen  = Gen
    , .env  = Env
    )
fit
#> Combined analysis of variance: 60 genotypes, 11 environments, 2 replicates 
#> 
#> Analysis of Variance Table
#> 
#> Response: y
#> 
#>            Df    Sum Sq  Mean Sq F value Pr(>F)    
#> Env        10 263940496 26394050  68.055  2e-08 ***
#> Rep(Env)   11   4266167   387833                   
#> Gen        59  71662431  1214617  12.248 <2e-16 ***
#> Gen:Env   590 201336476   341248   3.441 <2e-16 ***
#> Residuals 649  64359568    99167                   
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 
#> Grand mean 4061, CV 7.8%; of the sums of squares of environments, genotypes and interaction: 49.2%, 13.3%, 37.5%
fit$Summary
#>       Mean       CV Genotypes Environments Replicates  Env.pct  Gen.pct
#> 1 4060.757 7.754918        60           11          2 49.15648 13.34647
#>    GxE.pct
#> 1 37.49706
stab_interpret(
    x             = fit
  , higher_better = TRUE
  , top           = 5L
  )
#> Combined analysis of variance
#> 
#> Significant genotype-by-environment interaction (p < 0.001): genotype
#> performance depends on the environment, so stability matters for selection.
#> 
#> Findings:
#> - Environments differ significantly (p < 0.001) and account for 49.2% of the
#>   summed sums of squares of environments, genotypes and interaction.
#> - Genotypes differ significantly (p < 0.001; 13.3% of the sums of squares).
#> - The genotype-by-environment interaction is significant (p < 0.001; 37.5% of
#>   the sums of squares), larger than the genotype effect itself.
#> - The coefficient of variation is 7.8% (grand mean 4,061), a good precision
#>   for a field trial.
#> 
#> Recommendations:
#> - Because genotypes rank differently across environments, compare them with
#>   stability analyses (regression, AMMI, GGE biplot) rather than by their
#>   overall means alone.
#> - Check whether the interaction is crossover (changes of rank) with
#>   ge_means() or the which-won-where view of gge_biplot().
#> 
#> Cautions:
#> - The pooled error assumes similar error variances in all environments; check
#>   with indiv_anova().