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
.datagiven by name (.y = Yieldor.y = "Yield") or a numeric vector of lengthnrow(.data).- .rep
replicate (block within environment): a column of
.dataor a vector, as for.y.- .gen
genotype: a column of
.dataor a vector, as for.y.- .env
environment: a column of
.dataor a vector, as for.y.
Value
An object of class c("stab_add_anova", "stab_result", "list") with the component of earlier
versions:
anovaanalysis of variance (class
anova) with rowsEnv,Rep(Env),Gen,Gen:Env,Residualsand columnsDf,Sum Sq,Mean Sq,F value,Pr(>F).
and a new one:
Summarydata 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.
See also
indiv_anova, er_anova, stab_interpret
Other stability analyses:
ammi(),
ammi_biplot(),
er_anova(),
ge_effects(),
ge_means(),
gge_biplot(),
indiv_anova(),
stab_asv(),
stab_dist(),
stab_eskridge(),
stab_fox(),
stab_huehn(),
stab_kang(),
stab_masv(),
stab_measures(),
stab_par(),
stab_reg(),
stab_reliability(),
stab_superiority()
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().