Skip to contents

indiv_anova() analyses each environment of a multi-environment trial on its own, as a randomized complete block experiment, and tests whether the error variances of the environments are homogeneous, which the pooled error of the combined analysis (add_anova) assumes.

Usage

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

# Default S3 method
indiv_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_indiv_anova", "stab_result", "list"): as in earlier versions, one component per environment, named "ANOVA", a dash and the environment (see names(x)), with the summary.aov table of that environment (lines Rep, Gen, Residuals); then two new components:

Summary

data frame, one row per environment: Env, Mean, CV (percent), MSE, Df.error, F.Gen, p.Gen.

Homogeneity

data frame: Bartlett's Chisq, Df, p.value, and Ratio (largest over smallest error mean square).

Methods: print(), summary(), plot() (environment means with their CV, which = "means"; error mean squares, which = "error"), stab_interpret().

Details

In environment \(j\) the model is \(y_{ik} = \mu + b_k + g_i + \varepsilon_{ik}\), with \(B - 1\) degrees of freedom for replicates, \(G - 1\) for genotypes and \(f_j = (G - 1)(B - 1)\) for the error \(s^2_j\). The coefficient of variation is \(100\,s_j/\bar{y}_{\cdot j}\). Bartlett's test of equal error variances is $$\chi^2 = \frac{f\ln\bar{s}^2 - \sum_j f_j\ln s^2_j}{1 + \frac{1}{3(E - 1)}\left(\sum_j \frac{1}{f_j} - \frac{1}{f}\right)}, \qquad f = \sum_j f_j,\; \bar{s}^2 = \frac{\sum_j f_j s^2_j}{f},$$ on \(E - 1\) degrees of freedom; the ratio of the largest to the smallest error mean square is also given (a ratio below about 3 is commonly taken as acceptable for pooling).

Change from the earlier version. The analysis in each environment now includes the replicates (a randomized complete block analysis); the earlier version fitted genotypes only, so its error contained the replicate variation and its \(F\) tests were too small.

References

Bartlett, M. S. (1937). Properties of sufficiency and statistical tests. Proceedings of the Royal Society of London, Series A, 160(901), 268–282. doi:10.1098/rspa.1937.0109

Gomez, K. A. and Gomez, A. A. (1984). Statistical Procedures for Agricultural Research, 2nd edition. John Wiley and Sons, New York.

Author

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

Examples

data(ge_data)
fit <-
  indiv_anova(
      .data = ge_data
    , .y    = Yield
    , .rep  = Rep
    , .gen  = Gen
    , .env  = Env
    )
fit$Summary
#>             Env     Mean       CV       MSE Df.error     F.Gen        p.Gen
#> 1           FSD 4629.308 3.310148  23481.57       59 32.859696 9.777146e-30
#> 2          FSDR 4063.192 7.219829  86057.45       59  2.761218 7.071620e-05
#> 3         Okara 3634.433 9.816853 127296.96       59  3.568674 1.206599e-06
#> 4      Sargodha 4605.117 7.929968 133359.54       59  4.878042 3.670660e-09
#> 5    Gujranwala 4014.283 9.678154 150938.88       59  4.700962 7.608923e-09
#> 6      KotNaina 3759.633 8.606654 104703.14       59  4.320895 3.845328e-08
#> 7           KSK 3469.967 8.509432  87187.01       59  3.477938 1.870247e-06
#> 8      Khanewal 4718.567 6.465435  93071.27       59  2.754444 7.328681e-05
#> 9       Sahiwal 4477.833 7.381166 109241.03       59  4.051051 1.274773e-07
#> 10      Bhakkar 3714.667 8.415070  97713.64       59  1.885585 8.069768e-03
#> 11 Bahawalnagar 3581.325 7.787843  77789.65       59  2.117464 2.279749e-03
fit$Homogeneity
#>      Chisq Df     p.value    Ratio
#> 1 53.65762 10 5.61929e-08 6.427973
plot(x = fit, which = c("means", "error")[1])