Overview
stability analyses multi-environment trials of plant breeding (the same genotypes in several environments, in randomized complete blocks) to find genotypes that are high-yielding and stable:
-
indiv_anova(),add_anova(),er_anova(): analyses of variance in each environment, combined, and Eberhart and Russell’s; -
stab_reg(),stab_measures(),stab_par(),stab_kang(),stab_fox(): Finlay and Wilkinson’s regression, variance, ecovalence, Shukla’s stability variance with tests, Kang’s yield-stability statistic and rank-sum, Fox’s top-third count; -
stab_eskridge(),stab_reliability(),stab_superiority(),stab_huehn(): Eskridge’s safety-first indices, Annicchiarico’s reliability index, Lin and Binns’ superiority measure, Huehn’s nonparametric statistics with tests; -
ammi(),ammi_biplot(),stab_asv(),stab_masv(),stab_dist(): AMMI analysis, biplots and stability values (the MASV on any number of axes; the AMMI stability distance developed by the package author); -
gge_biplot(): the GGE biplot with the which-won-where, mean-stability and discrimination views, each in genotype-focused, symmetric or environment-focused scaling; -
ge_means(),ge_effects(): means, rankings and interaction effects; -
stab_interpret(): a plain-language interpretation of every result, specific to its method and computed from its numbers.
The package has been on CRAN since 2018. Version 1.0.0 keeps every function name, argument and result component, corrects several results of the earlier versions (see NEWS), adds plots, methods and the interpretation to every result, adds safety-first, superiority and nonparametric methods, and comes with ten vignettes in HTML and PDF. The companion package StabilityApp runs every analysis in a web browser.
Installation
install.packages("stability")
# development version
# install.packages("remotes")
remotes::install_github("myaseen208/stability")Quick start
library(stability)
fit <-
stab_reg(
.data = ge_data
, .y = Yield
, .rep = Rep
, .gen = Gen
, .env = Env
)
head(fit$StabIndvReg) Gen Mean Slope SE LCI UCI t.b1
1: 013BT034 4247.500 0.9539767 0.2181489 0.4604897 1.447464 -0.21097187
2: 122557 4062.364 1.5159430 0.1702936 1.1307122 1.901174 3.02972727
3: 122559 4258.591 0.9834026 0.3015181 0.3013213 1.665484 -0.05504595
4: 12B.2511 4414.409 1.6375025 0.2843871 0.9941741 2.280831 2.24167144
5: 12FJ26 4057.227 0.7025845 0.2633342 0.1068811 1.298288 -1.12942201
6: 14B.1030 3995.409 0.9951608 0.2598803 0.4072708 1.583051 -0.01862075
p.b1 R.Sqr RMSE SSE Delta p.Delta
1: 0.83760871 0.6799841 323.5306 942048.3 55088.39 2.670478e-02
2: 0.01425298 0.8980107 252.5577 574068.5 14201.74 2.406599e-01
3: 0.95730445 0.5416911 447.1733 1799675.3 150380.28 4.849012e-05
4: 0.05170192 0.7865003 421.7667 1600984.5 128303.52 2.261371e-04
5: 0.28792236 0.4416320 390.5438 1372720.0 102940.80 1.268556e-03
6: 0.98554993 0.6196686 385.4213 1336946.3 98965.95 1.653205e-03
stab_interpret(
x = fit
, higher_better = TRUE
, top = 5
)Finlay and Wilkinson's regression on the environment index
Slopes range from 0.09 to 1.71; 2 genotype(s) combine a mean above average
with a slope close to 1 (V14154 and PR119).
Findings:
- Widely adapted (mean above average, slope not different from 1, no
significant deviations): V14154 and PR119.
- Responsive to favourable environments (slope significantly above 1): DN126
and 122557.
- Better in poor environments (slope significantly below 1): BARDC1016.
- The regression explains on average 59% of the variation of a genotype over
environments; below 50% for 17 genotype(s), whose response is poorly
described by a line.
- Significant deviations from regression (unpredictable response): DN126,
V14170, PR115, 12B.2511, FAISALABAD08 and 50 more.
Recommendations:
- Read the slope together with the mean: a slope of 1 is desirable only for a
high-yielding genotype.
- Recommend responsive genotypes for favourable, high-input conditions.
- Recommend genotypes with low slopes where conditions are often poor.
Cautions:
- With few environments the confidence intervals of the slopes are wide.
gge_biplot(
.data = ge_data
, .y = Yield
, .rep = Rep
, .gen = Gen
, .env = Env
, .which = "which-won-where"
, .svp = "symmetric"
)
Learn more
- Vignettes:
browseVignettes("stability"), starting withstability_01_getting_started; each is available as HTML and as PDF. - Site: https://myaseen208.com/stability/
- Notation:
stab_notation() - Shiny application: the package StabilityApp