Skip to contents

Stability analysis of genotypes (or treatments) tested in several environments, with the combined ANOVA and seven established methods:

  • Eberhart and Russell (1966) joint regression: \(b_i\), \(S^2_{di}\), tests of \(b_i = 1\) and \(S^2_{di} = 0\), and the Eberhart-Russell ANOVA

  • AMMI: ANOVA with Gollob's degrees of freedom for each IPCA, IPCA scores, AMMI stability value (ASV) and yield stability index

  • Finlay and Wilkinson (1963) regression on the environment mean

  • Shukla (1972) stability variance with its F-test

  • Wricke (1962) ecovalence

  • Coefficient of variation (Francis and Kannenberg, 1978)

  • Cultivar superiority index (Lin and Binns, 1988)

An integrated ranking averages the stability ranks of the seven methods.

Usage

stability_analysis(
  data,
  genotype,
  environment,
  replication,
  trait,
  method = "all",
  verbose = TRUE,
  alpha = 0.05,
  fw_log = FALSE
)

Arguments

data

Data frame with genotype, environment, replication and trait columns (one row per plot). Genotype x environment means (one row per combination) can be used with replication = NULL; tests that need the pooled error are then omitted.

genotype

Name of the genotype (or treatment) column.

environment

Name of the environment (location, year or season) column.

replication

Name of the replication column, or NULL.

trait

Name of the trait (response) column.

method

"all" (default) or one or more of "eberhart", "ammi", "finlay", "shukla", "wricke", "cv", "superiority".

verbose

Logical. If TRUE (default), prints the report.

alpha

Significance level for the tests. Default 0.05.

fw_log

Logical. If TRUE, the Finlay-Wilkinson regression uses log10-transformed means as in the original paper. Default FALSE (on the original scale, where the slope equals the Eberhart-Russell \(b_i\)).

Value

An object of class aridagri_stability containing anova (combined ANOVA, when replications are given), genotype_means, environment_means, ge_matrix and, depending on method, eberhart (with eberhart_anova), ammi (anova, components, stability, genotype_scores, environment_scores), finlay, shukla, wricke, cv_stability, superiority, integrated and concordance (Kendall's W among the seven stability rankings).

Details

Calculations use the genotype x environment table of means (\(g\) genotypes, \(e\) environments, \(r\) replications). The environmental index is \(I_j = \bar{y}_{.j} - \bar{y}_{..}\).

Eberhart-Russell. \(b_i = \sum_j y_{ij} I_j / \sum_j I_j^2\); \(S^2_{di} = \sum_j \delta^2_{ij}/(e - 2) - MSE/r\), where \(\delta_{ij}\) are deviations from the regression and MSE is the pooled error. \(b_i = 1\) is tested with \(t = (b_i - 1)/SE(b_i)\) on \(e - 2\) df, and \(S^2_{di} = 0\) with \(F = [\sum_j \delta^2_{ij}/(e-2)] / (MSE/r)\).

Shukla. \(\sigma^2_i = [g(g-1)W_i - \sum W] / [(e-1)(g-1)(g-2)]\), where \(W_i\) is Wricke's ecovalence \(\sum_j (\bar{y}_{ij} - \bar{y}_{i.} - \bar{y}_{.j} + \bar{y}_{..})^2\); tested with \(F = \sigma^2_i / (MSE/r)\) on \(e - 1\) and the error df. Values are on the scale of the means.

AMMI. The interaction matrix is decomposed by singular value decomposition. IPCA \(k\) has sum of squares \(r \lambda_k^2\) and \(g + e - 1 - 2k\) df (Gollob, 1968). Scores are \(u_{ik}\sqrt{\lambda_k}\). ASV = \(\sqrt{[(SS_1/SS_2) IPCA1]^2 + IPCA2^2}\) (Purchase et al., 2000) and the yield stability index is the sum of the ranks of mean (high = 1) and ASV.

Lin-Binns. \(P_i = \sum_j (y_{ij} - M_j)^2 / (2e)\), with \(M_j\) the highest mean in environment \(j\).

References

Eberhart, S.A. and Russell, W.A. (1966). Stability parameters for comparing varieties. Crop Science, 6(1), 36-40. doi:10.2135/cropsci1966.0011183X000600010011x

Finlay, K.W. and Wilkinson, G.N. (1963). The analysis of adaptation in a plant-breeding programme. Australian Journal of Agricultural Research, 14(6), 742-754. doi:10.1071/AR9630742

Shukla, G.K. (1972). Some statistical aspects of partitioning genotype-environmental components of variability. Heredity, 29(2), 237-245. doi:10.1038/hdy.1972.87

Wricke, G. (1962). Uber eine Methode zur Erfassung der okologischen Streubreite in Feldversuchen. Zeitschrift fur Pflanzenzuchtung, 47, 92-96.

Gollob, H.F. (1968). A statistical model which combines features of factor analytic and analysis of variance techniques. Psychometrika, 33(1), 73-115. doi:10.1007/BF02289676

Purchase, J.L., Hatting, H. and van Deventer, C.S. (2000). Genotype x environment interaction of winter wheat (Triticum aestivum L.) in South Africa: II. Stability analysis of yield performance. South African Journal of Plant and Soil, 17(3), 101-107. doi:10.1080/02571862.2000.10634878

Francis, T.R. and Kannenberg, L.W. (1978). Yield stability studies in short-season maize. I. A descriptive method for grouping genotypes. Canadian Journal of Plant Science, 58(4), 1029-1034. doi:10.4141/cjps78-157

Lin, C.S. and Binns, M.R. (1988). A superiority measure of cultivar performance for cultivar x location data. Canadian Journal of Plant Science, 68(1), 193-198. doi:10.4141/cjps88-018

Author

Lalit Kumar Rolaniya, Ram Lal Jat, Monika Punia, Raja Ram Choudhary, Hemant Poonia

Examples

data(pearlmillet_met)
st <- stability_analysis(pearlmillet_met, genotype = "genotype",
                         environment = "environment", replication = "rep",
                         trait = "grain_yield")
#> 
#> ======================================================================
#>  STABILITY ANALYSIS
#> ======================================================================
#>  Trait        : grain_yield
#>  Genotypes    : 10
#>  Environments : 6
#>  Replications : 3
#>  Grand mean   : 1850.89
#> 
#>  Combined analysis of variance
#>                  Source  Df      Sum Sq    Mean Sq F value Pr(>F)    
#>  Environment              5 21126520.38 4225304.08 198.051 0.0000 ***
#>  Rep(Environment)        12   256012.80   21334.40   2.042 0.0271   *
#>  Genotype                 9  1529257.11  169917.46  16.265 0.0000 ***
#>  Genotype x Environment  45  1479461.62   32876.92   3.147 0.0000 ***
#>  Pooled error           108  1128267.87   10446.92                   
#>  Total                  179 25519519.78                              
#>  Signif. codes: *** p < 0.001, ** p < 0.01, * p < 0.05, NS not significant
#> 
#>  Eberhart and Russell (1966)
#>  Genotype Mean     bi   SE_bi    p_bi    S2di   p_S2di     R2
#>     PM-04 2016 1.1880 0.14110 0.25330 10530.0 0.004411 0.9466
#>     PM-07 1972 1.2740 0.06970 0.01717   -60.9 0.420300 0.9882
#>     PM-01 1923 1.0490 0.05697 0.44160 -1196.0 0.623600 0.9883
#>     PM-02 1856 1.0370 0.12790 0.78790  8030.0 0.013470 0.9427
#>     PM-06 1841 0.8868 0.06148 0.13950  -820.5 0.550700 0.9811
#>     PM-09 1830 1.1690 0.06507 0.06032  -500.7 0.492800 0.9878
#>     PM-10 1827 1.1220 0.10760 0.31840  4666.0 0.059670 0.9646
#>     PM-03 1792 0.6853 0.09957 0.03415  3499.0 0.098940 0.9221
#>     PM-08 1757 0.8286 0.09566 0.14770  2962.0 0.124400 0.9494
#>     PM-05 1694 0.7608 0.05551 0.01255 -1313.0 0.647100 0.9792
#>  bi = 1 and non-significant S2di indicate average, stable response.
#> 
#>  AMMI analysis of variance
#>                  Source  Df      Sum Sq    Mean Sq F value Pr(>F)    
#>  Environment              5 21126520.38 4225304.08 198.051 0.0000 ***
#>  Rep(Environment)        12   256012.80   21334.40   2.042 0.0271   *
#>  Genotype                 9  1529257.11  169917.46  16.265 0.0000 ***
#>  Genotype x Environment  45  1479461.62   32876.92   3.147 0.0000 ***
#>    IPCA1                 13   823910.41   63377.72   6.067 0.0000 ***
#>    IPCA2                 11   329345.65   29940.51   2.866 0.0025  **
#>    IPCA3                  9   155354.79   17261.64   1.652 0.1096  NS
#>    IPCA4                  7   113089.95   16155.71   1.546 0.1594  NS
#>    IPCA5                  5    57760.82   11552.16   1.106 0.3617  NS
#>  Pooled error           108  1128267.87   10446.92                   
#>  Signif. codes: *** p < 0.001, ** p < 0.01, * p < 0.05, NS not significant
#> 
#>  AMMI stability value (ASV) and yield stability index (YSI)
#>  Genotype Mean Mean_Rank   IPCA1   IPCA2    ASV ASV_Rank YSI
#>     PM-01 1923         3 -2.2080  1.4590  5.712        1   4
#>     PM-02 1856         4  0.4647  9.3350  9.407        2   6
#>     PM-04 2016         1 -9.9670 -8.3640 26.300        9  10
#>     PM-07 1972         2 -9.8530  0.3348 24.650        8  10
#>     PM-06 1841         5  5.3100  2.9820 13.620        5  10
#>     PM-10 1827         7 -1.5470  9.3170 10.090        3  10
#>     PM-09 1830         6 -7.4320 -2.4650 18.760        6  12
#>     PM-08 1757         9  4.6960 -6.2630 13.310        4  13
#>     PM-05 1694        10  8.8890 -0.8317 22.250        7  17
#>     PM-03 1792         8 11.6500 -5.5050 29.650       10  18
#> 
#>  Shukla (1972) stability variance
#>  Genotype Mean Sigma2_i F_value   p_value Rank
#>     PM-01 1923     1332  0.3825 8.598e-01    1
#>     PM-06 1841     3546  1.0180 4.106e-01    2
#>     PM-09 1830     6634  1.9050 9.936e-02    3
#>     PM-10 1827     9419  2.7050 2.418e-02    4
#>     PM-08 1757    10240  2.9420 1.575e-02    5
#>     PM-02 1856    10380  2.9810 1.467e-02    6
#>     PM-05 1694    10880  3.1230 1.133e-02    7
#>     PM-07 1972    15230  4.3740 1.153e-03    8
#>     PM-04 2016    18880  5.4210 1.733e-04    9
#>     PM-03 1792    23050  6.6190 2.062e-05   10
#> 
#>  Integrated stability ranking (1 = most stable)
#>  Genotype Mean ER AMMI FW Shukla Wricke CV LB Rank
#>     PM-01 1923  2    1  2      1      1  5  3    1
#>     PM-06 1841  3    5  3      2      2  4  6    2
#>     PM-09 1830  4    6  5      3      3  9  4    3
#>     PM-02 1856  9    2  1      6      6  6  5    4
#>     PM-10 1827  8    3  4      4      4  8  7    5
#>     PM-08 1757  6    4  6      5      5  3  9    5
#>     PM-05 1694  1    7  8      7      7  2 10    7
#>     PM-07 1972  5    8  9      8      8 10  2    8
#>     PM-04 2016 10    9  7      9      9  7  1    9
#>     PM-03 1792  7   10 10     10     10  1  8   10
#>  Agreement among the seven rankings: Kendall's W = 0.346
#> 
#>  Full tables: $eberhart, $eberhart_anova, $finlay, $shukla, $wricke, $ammi, $cv_stability, $superiority
st$eberhart
#>    Genotype     Mean        bi      SE_bi  t_bi_eq_1       p_bi        S2di
#> 1     PM-04 2016.000 1.1880996 0.14108165  1.3332677 0.25330783 10534.45696
#> 2     PM-07 1971.778 1.2736153 0.06970257  3.9254693 0.01716838   -60.90468
#> 3     PM-01 1923.444 1.0486126 0.05697295  0.8532581 0.44159847 -1196.47687
#> 4     PM-02 1856.389 1.0367699 0.12785525  0.2875902 0.78794498  8029.50826
#> 5     PM-06 1840.556 0.8868424 0.06147967 -1.8405692 0.13950632  -820.54307
#> 6     PM-09 1829.944 1.1689030 0.06506821  2.5957840 0.06031524  -500.74246
#> 7     PM-10 1826.722 1.1224747 0.10756573  1.1386034 0.31843257  4665.75834
#> 8     PM-03 1792.222 0.6852660 0.09956594 -3.1610615 0.03414925  3498.86293
#> 9     PM-08 1757.389 0.8286463 0.09566438 -1.7911966 0.14774463  2962.45905
#> 10    PM-05 1694.444 0.7607702 0.05550523 -4.3100417 0.01254563 -1312.73413
#>         p_S2di        R2               Response Stable
#> 1  0.004410734 0.9466092       average (bi = 1)  FALSE
#> 2  0.420305801 0.9881612 above average (bi > 1)   TRUE
#> 3  0.623619365 0.9883300       average (bi = 1)   TRUE
#> 4  0.013473999 0.9426563       average (bi = 1)  FALSE
#> 5  0.550702395 0.9811392       average (bi = 1)   TRUE
#> 6  0.492837445 0.9877569       average (bi = 1)   TRUE
#> 7  0.059666052 0.9645686       average (bi = 1)   TRUE
#> 8  0.098943369 0.9221324 below average (bi < 1)   TRUE
#> 9  0.124425636 0.9493866       average (bi = 1)   TRUE
#> 10 0.647062473 0.9791517 below average (bi < 1)   TRUE
st$ammi$anova
#>                         Df      Sum Sq    Mean Sq    F value       Pr(>F)
#> Environment              5 21126520.38 4225304.08 198.051226 4.253250e-11
#> Rep(Environment)        12   256012.80   21334.40   2.042170 2.705284e-02
#> Genotype                 9  1529257.11  169917.46  16.264830 1.408097e-16
#> Genotype x Environment  45  1479461.62   32876.92   3.147043 6.349451e-07
#>   IPCA1                 13   823910.41   63377.72   6.066639 2.245488e-08
#>   IPCA2                 11   329345.65   29940.51   2.865964 2.457518e-03
#>   IPCA3                  9   155354.79   17261.64   1.652318 1.095895e-01
#>   IPCA4                  7   113089.95   16155.71   1.546456 1.594051e-01
#>   IPCA5                  5    57760.82   11552.16   1.105796 3.616571e-01
#> Pooled error           108  1128267.87   10446.92         NA           NA