Skip to contents

stab_superiority() computes the cultivar superiority measure \(P_i\) of Lin and Binns (1988): the mean squared distance between a genotype and the best genotype of each environment. A small \(P_i\) marks a genotype that is close to the best everywhere, so the measure combines yield and stability in one number. It is split into a genotype part (distance of the genotype's mean from the mean of the best) and an interaction part.

Usage

stab_superiority(.data, .y, .rep, .gen, .env, higher_better = TRUE)

# Default S3 method
stab_superiority(.data, .y, .rep, .gen, .env, higher_better = TRUE)

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: not used (kept for compatibility); may be omitted.

.gen

genotype: a column of .data or a vector, as for .y.

.env

environment: a column of .data or a vector, as for .y.

higher_better

TRUE (default) when larger values of the trait are better.

Value

An object of class c("stab_superiority", "stab_result", "list"):

Superiority

data.table sorted by Pi: Gen, Mean, Pi, Pi.Gen (genetic part), Pi.GE (interaction part), rPi (rank, 1 = best).

Methods: print(), summary(), plot(), stab_interpret().

Details

With \(M_j = \max_i \bar{y}_{ij}\) the best mean of environment \(j\) (the smallest when higher_better = FALSE), $$P_i = \frac{\sum_j(\bar{y}_{ij} - M_j)^2}{2E} = \underbrace{\frac{E(\bar{y}_{i\cdot} - \bar{M})^2}{2E}}_{ \mathrm{genetic}} + \underbrace{\frac{\sum_j(\bar{y}_{ij} - \bar{y}_{i\cdot} - M_j + \bar{M})^2}{2E}}_{ \mathrm{interaction}},$$ with \(\bar{M}\) the mean of the \(M_j\). Genotypes with the smallest \(P_i\) are the most desirable; a large interaction part shows that a genotype is close to the best in some environments only.

References

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.

Author

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

Examples

data(ge_data)
fit <-
  stab_superiority(
      .data         = ge_data
    , .y            = Yield
    , .rep          = Rep
    , .gen          = Gen
    , .env          = Env
    , higher_better = TRUE
    )
head(fit$Superiority)
#>             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 = fit)