reg <-
stab_reg(
.data = ge_data
, .y = Yield
, .rep = Rep
, .gen = Gen
, .env = Env
)
plot(x = reg, which = "lines")Regression and variance-based stability
2026-11-05
Source:vignettes/stability_05_regression_variance.qmd
\[ \newcommand{\mY}{\mathbf{Y}} \newcommand{\mZ}{\mathbf{Z}} \newcommand{\mX}{\mathbf{X}} \newcommand{\mU}{\mathbf{U}} \newcommand{\mV}{\mathbf{V}} \newcommand{\mD}{\mathbf{D}} \newcommand{\vg}{\boldsymbol{\gamma}} \newcommand{\vd}{\boldsymbol{\delta}} \newcommand{\ybar}{\bar{y}} \newcommand{\vgs}{\mathbf{g}} \newcommand{\ves}{\mathbf{e}} \newcommand{\va}{\mathbf{a}} \newcommand{\vx}{\mathbf{x}} \]
1 Abstract
Finlay and Wilkinson’s regression, the variance measures, Shukla’s tests with Kang’s yield-stability statistic, Kang’s rank-sum and Fox’s top-third count.
2 Regression on the environment index
The red line has slope 1. Lines steeper than it belong to genotypes that profit more than the average from good environments.
3 Variance measures
sm <-
stab_measures(
.data = ge_data
, .y = Yield
, .gen = Gen
, .env = Env
)
head(x = sm$StabMeasures[order(Ecov)], n = 6) Gen Mean GenSS Var CV Ecov ShuklaVar
<char> <num> <num> <num> <num> <num> <num>
1: NIBGE GANDUM4 3586.545 2087692 208769.2 12.739632 397444.3 38173.13
2: V14154 4364.727 1427137 142713.7 8.655173 590274.7 58121.11
3: TWS12155 4050.000 3217917 321791.7 14.006589 666358.8 65991.87
4: PR119 4156.727 3378862 337886.2 13.984073 686850.1 68111.66
5: TWS12464 4136.455 3399688 339968.8 14.095850 877015.1 87783.90
6: V14225 4194.182 3048761 304876.1 13.164804 928009.3 93059.17
plot(x = sm, which = "ecov")
stab_interpret(
x = sm
, higher_better = TRUE
, top = 5
)Variance-based stability measures
17 genotype(s) have a mean above average and an ecovalence below the median:
PR115, V14154, V14168, LOCAL CHECK, 013BT034 and 12 more.
Findings:
- Smallest ecovalence (smallest share of the interaction): NIBGE GANDUM4,
V14154, TWS12155, PR119 and TWS12464.
- Smallest variance over environments (static stability): BARDC1016, V14154,
V12066, NR448 and NR443.
- Rank correlations of the mean with the variance, ecovalence and stability
variance: 0.36, 0.03, 0.03.
Recommendations:
- Prefer the dynamic measures (ecovalence, stability variance) for selection:
they compare each genotype with the average response, not with constancy.
- Rank the genotypes on mean and stability together with stab_kang() or
stab_par().
Cautions:
- The measures are on the scale of the means; tests of Shukla's variance are
in stab_par().
4 Shukla’s tests and Kang’s yield-stability statistic
sp <-
stab_par(
.data = ge_data
, .y = Yield
, .rep = Rep
, .gen = Gen
, .env = Env
, alpha = 0.1
, .envCov = NULL
)
sp$ANOVA Df Sum Sq Mean Sq F value Pr(>F)
Total 659 536939402
Gen 59 71662431 1214617 3.7143 3.937e-16 ***
Env 10 263940496 26394050 266.1568 < 2.2e-16 ***
Gen x Env 590 201336476 341248 3.4411 < 2.2e-16 ***
Heterogeneity 59 27695329 469412 1.4355 0.02256 *
Residual 531 173641147 327008 3.2975 < 2.2e-16 ***
Pooled error 649 64359568 99167
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
head(x = sp$SimultSel, n = 10) Gen Mean Rank Adjustment Adj.Rank Sigma Stab.Rating YSi
<char> <num> <int> <int> <int> <num> <int> <int>
1: V14154 4364.727 56 2 58 58121.11 0 58
2: DN126 4480.864 60 3 63 231116.61 -8 55
3: V14170 4463.818 59 3 62 199533.08 -8 54
4: PR115 4444.273 58 3 61 122904.01 -8 53
5: 12B.2511 4414.409 57 2 59 255149.62 -8 51
6: FAISALABAD08 4360.591 55 2 57 257374.96 -8 49
7: V14168 4342.045 54 2 56 152743.33 -8 48
8: 013BT034 4247.500 50 2 52 94993.42 -4 48
9: NR491 4319.500 53 2 55 213377.77 -8 47
10: LOCAL CHECK 4280.136 52 2 54 142540.51 -8 46
Select
<char>
1: +
2: +
3: +
4: +
5: +
6: +
7: +
8: +
9: +
10: +
plot(x = sp, which = "ys")
stab_interpret(
x = sp
, higher_better = TRUE
, top = 5
)Shukla's stability variance and Kang's yield-stability statistic
Kang's statistic selects 31 of 60 genotypes; the best are V14154, DN126,
V14170, PR115 and 12B.2511.
Findings:
- Shukla's stability variance is significant for 55 of 60 genotypes
(unstable): 013BT034, 122557, 122559, 12B.2511, 12FJ26 and 50 more.
- The linear regression on the environment index explains a significant part
of the interaction (heterogeneity, p = 0.023); the remaining interaction is
significant (p < 0.001).
- Means are compared with an LSD of 186.4; genotypes more than one or two LSD
above the grand mean gain 2 or 3 points.
Recommendations:
- Select from V14154, DN126, V14170, PR115 and 12B.2511: they combine yield
with stability, weighted as Kang proposed.
- Genotypes with significant stability variance should be recommended only
for the environments where they did well (see ge_means()).
Cautions:
- Kang's weights (stability ratings -2, -4, -8) are a convention; changing
alpha changes which genotypes lose points.
5 Rank methods
kg <-
stab_kang(
.data = ge_data
, .y = Yield
, .rep = Rep
, .gen = Gen
, .env = Env
)
head(x = kg$Kang, n = 6) Gen Mean ShuklaVar rMean rShukaVar rStab
<char> <num> <num> <int> <int> <int>
1: V14154 4364.727 58121.11 5 2 7
2: 013BT034 4247.500 94993.42 11 8 19
3: PR115 4444.273 122904.01 3 17 20
4: MSH3 4247.045 110234.85 12 11 23
5: V14225 4194.182 93059.17 21 6 27
6: PR119 4156.727 68111.66 24 4 28
fx <-
stab_fox(
.data = ge_data
, .y = Yield
, .rep = Rep
, .gen = Gen
, .env = Env
)
head(x = fx$Fox, n = 6) Gen Mean TOP TOP.pct
<char> <num> <int> <num>
1: DN126 4480.864 9 81.81818
2: V14170 4463.818 8 72.72727
3: V14154 4364.727 8 72.72727
4: PR115 4444.273 7 63.63636
5: NR491 4319.500 7 63.63636
6: 013BT034 4247.500 7 63.63636
6 Safety-first and superiority
Eskridge (1990) treats the choice of a cultivar as a decision under risk: the breeder accepts a small probability \(\alpha\) of a disastrously low yield and prefers the genotype with the largest lower confidence limit, \[\ybar_{i\cdot} - Z_{1-\alpha}\,\sigma_i,\] where \(\sigma_i\) is the standard deviation of the genotype’s yield under one of four definitions of stability. EV uses the variance over environments, FW the departure of Finlay and Wilkinson’s slope from 1, SH Shukla’s stability variance, and ER the slope with Eberhart and Russell’s deviations. A small \(\alpha\) weighs stability heavily, and \(\alpha = 0.5\) gives the mean.
es <-
stab_eskridge(
.data = ge_data
, .y = Yield
, .rep = Rep
, .gen = Gen
, .env = Env
, alpha = 0.05
)
head(x = es$Eskridge, n = 6) Gen Mean EV FW SH ER rMean rEV rFW
<char> <num> <num> <num> <num> <num> <int> <int> <int>
1: V14154 4364.727 3743.343 4136.892 3501.802 3957.406 5 1 11
2: PR115 4444.273 3604.917 4308.500 3485.151 3842.936 3 2 2
3: 013BT034 4247.500 3355.062 4213.649 3328.587 3714.264 11 5 5
4: PR119 4156.727 3200.607 4074.380 3278.279 3703.990 24 16 16
5: V14170 4463.818 3256.493 4258.024 3402.104 3702.917 2 13 3
6: DN126 4480.864 3047.967 3958.065 3379.643 3693.828 1 29 23
rSH rER
<int> <int>
1: 1 1
2: 2 2
3: 6 3
4: 12 4
5: 3 5
6: 4 6
round(x = es$RankCor, digits = 2) Mean EV FW SH ER
Mean 1.00 0.48 0.63 0.76 0.65
EV 0.48 1.00 0.49 0.52 0.51
FW 0.63 0.49 1.00 0.67 0.62
SH 0.76 0.52 0.67 1.00 0.89
ER 0.65 0.51 0.62 0.89 1.00
plot(x = es, which = "ranks")
stab_interpret(
x = es
, higher_better = TRUE
, top = 5
)Eskridge's safety-first indices
With alpha = 0.05 (z = 1.64), the safest choices on ER are V14154, PR115 and
013BT034; the highest mean, DN126, ranks 6 on ER.
Findings:
- Best genotype on each index: Mean DN126, EV V14154, FW V14168, SH V14154,
ER V14154.
- Among the 5 best on every one of the four indices: PR115.
- Kendall's correlation of the mean with EV, FW, SH and ER: 0.48, 0.63, 0.76,
0.65; a low value means that stability changes the choice.
- EV penalizes any variation over environments (it favours genotypes that do
not respond to good environments); FW penalizes a slope different from 1;
SH the share of the interaction; ER both slope and unpredictable
deviations.
Recommendations:
- When the regression on the environment index describes the responses well
(see er_anova()), select on ER: V14154, PR115 and 013BT034.
- When farmers cannot afford a poor yield (subsistence farming), use a small
alpha (0.05 or 0.10); for commercial growers who can average over seasons,
alpha near 0.25 or the mean itself.
Cautions:
- The indices assume that yields of a genotype over environments are roughly
normal; with few environments the variances are imprecise.
Annicchiarico’s (1992) reliability index is the same idea on the relative scale (percent of the environment means), so that poor and rich environments weigh alike. Lin and Binns’ (1988) superiority measure is the mean squared distance from the best genotype of every environment.
rl <-
stab_reliability(
.data = ge_data
, .y = Yield
, .rep = Rep
, .gen = Gen
, .env = Env
, alpha = 0.25
, higher_better = TRUE
)
head(x = rl$Reliability, n = 6) Gen Mean Rel.Mean Rel.SD Index rIndex
<char> <num> <num> <num> <num> <int>
1: PR115 4444.273 109.7725 8.936579 103.7449 1
2: V14154 4364.727 107.9437 6.476023 103.5757 2
3: V14170 4463.818 109.7141 10.399731 102.6996 3
4: DN126 4480.864 109.5738 12.062890 101.4375 4
5: V14168 4342.045 107.0181 9.149658 100.8468 5
6: 12B.2511 4414.409 108.0327 11.363673 100.3680 6
su <-
stab_superiority(
.data = ge_data
, .y = Yield
, .rep = Rep
, .gen = Gen
, .env = Env
, higher_better = TRUE
)
head(x = su$Superiority, n = 6) Gen Mean Pi Pi.Gen Pi.GE rPi
<char> <num> <num> <num> <num> <int>
1: PR115 4444.273 244805.8 174721.1 70084.71 1
2: 12B.2511 4414.409 259870.6 192820.5 67050.09 2
3: DN126 4480.864 263678.2 153760.3 109917.92 3
4: FAISALABAD08 4360.591 284017.6 227689.8 56327.80 4
5: V14154 4364.727 299476.0 224907.1 74568.92 5
6: V14168 4342.045 315412.2 240376.6 75035.64 6
plot(x = su)7 Nonparametric stability
Huehn’s (1979) \(S^{(1)}\) and \(S^{(2)}\) use only the ranks of the genotypes in each environment, after the genotype effect is removed. A stable genotype keeps its rank. Nassar and Huehn (1987) give tests for each genotype and for the whole set.
hu <-
stab_huehn(
.data = ge_data
, .y = Yield
, .rep = Rep
, .gen = Gen
, .env = Env
)
head(x = hu$Huehn, n = 6) Gen Mean MeanRank S1 Z1 p.Z1 S2
<char> <num> <num> <num> <num> <num> <num>
1: NIBGE GANDUM4 3586.545 30.45455 12.50909 0.77084781 0.3799549 112.8727
2: WBG14 3765.455 31.09091 16.32727 0.18501481 0.6670985 201.0909
3: PR119 4156.727 28.90909 16.83636 0.13721149 0.7110691 220.4909
4: V14154 4364.727 29.63636 16.94545 0.12789571 0.7206239 214.4545
5: TWS12245 4100.455 28.54545 16.98182 0.12486322 0.7238186 216.0727
6: DN117 4045.409 31.27273 17.52727 0.08374189 0.7722891 225.2182
Z2 p.Z2 rS1 rS2
<num> <num> <int> <int>
1: 4.2812291 0.03853547 1 1
2: 1.1951475 0.27429370 2 2
3: 0.7719762 0.37960639 3 5
4: 0.8937757 0.34445618 4 3
5: 0.8602497 0.35366882 5 4
6: 0.6828177 0.40861814 6 7
hu$Tests Statistic Chisq Df p.value Expected Variance
1 S1 6.525828 60 1.0000000 19.99444 72.68687
2 S2 46.577429 60 0.8977291 299.91667 8171.82033
stab_interpret(
x = hu
, higher_better = TRUE
, top = 5
)Huehn's nonparametric stability
Genotypes do not differ significantly in stability (S1: p = 1.000; S2: p =
0.898); the most stable ranks belong to NIBGE GANDUM4, WBG14 and PR119.
Findings:
- Significantly unstable on S1 (ranks shift more than expected): none.
- Significantly unstable on S2: BARDC1016.
- Mean above average and S1 in the better half: PR119, V14154, TWS12245,
013BT034, V14225 and 12 more.
Recommendations:
- Genotypes with high means and small S1 (PR119, V14154 and TWS12245) keep
their position across environments.
Cautions:
- The ranks are computed after removing the genotype effect, so S1 and S2
measure stability only; read them with the mean. The chi-square tests are
approximate for few genotypes.
8 Summary
The regression describes how genotypes respond, and the variance measures how much interaction each carries. Kang’s statistics turn yield and stability into one selection rule. Eskridge’s indices make the weight given to stability explicit through the risk \(\alpha\) the grower accepts.
9 References
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.
Eberhart, S. A. and Russell, W. A. (1966). Stability parameters for comparing varieties. Crop Science, 6(1), 36–40.
Wricke, G. (1962). Uber eine Methode zur Erfassung der okologischen Streubreite in Feldversuchen. Zeitschrift fur Pflanzenzuchtung, 47, 92–96.
Shukla, G. K. (1972). Some statistical aspects of partitioning genotype-environmental components of variability. Heredity, 29(2), 237–245.
Kang, M. S. and Pham, H. N. (1991). Simultaneous selection for high yielding and stable crop genotypes. Agronomy Journal, 83(1), 161–165.
Kang, M. S. (1988). A rank-sum method for selecting high-yielding, stable corn genotypes. Cereal Research Communications, 16(1–2), 113–115.
Eskridge, K. M. (1990). Selection of stable cultivars using a safety-first rule. Crop Science, 30(2), 369–374.
Annicchiarico, P. (1992). Cultivar adaptation and recommendation from alfalfa trials in Northern Italy. Journal of Genetics and Breeding, 46, 269–278.
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.
Huehn, M. (1979). Beitrage zur Erfassung der phanotypischen Stabilitat I. EDV in Medizin und Biologie, 10, 112–117.
Nassar, R. and Huehn, M. (1987). Studies on estimation of phenotypic stability: tests of significance for nonparametric measures of phenotypic stability. Biometrics, 43(1), 45–53.
Fox, P. N., Skovmand, B., Thompson, B. K., Braun, H. J. and Cormier, R. (1990). Yield and adaptation of hexaploid spring triticale. Euphytica, 47(1), 57–64.