Skip to contents

stab_dist() measures the stability of every genotype by the distance of its point from the origin in the space of the first .m AMMI interaction axes, and combines its rank with the rank of the mean. The measure was developed by the author of the package (Muhammad Yaseen) for this package: unlike the ASV and the MASV it weighs the axes through the scores alone, so that no axis is up-weighted by the ratio of its sum of squares to that of the next axis.

Usage

stab_dist(.data, .y, .rep, .gen, .env, .m = 2L)

# Default S3 method
stab_dist(.data, .y, .rep, .gen, .env, .m = 2L)

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.

.m

number of interaction axes (default 2).

Value

An object of class c("stab_dist", "stab_result", "list") with the component of earlier versions:

stabDist

data.table sorted by YSIDist: Gen, Mean, Dist, rMean, rDist, YSIDist.

Methods: print(), summary(), plot() (which = c("ranks", "mean")), stab_interpret().

Details

With the AMMI genotype scores \(PC_{in} = \gamma_{in}\sqrt{\lambda_n}\) (ammi), $$D_i = \sqrt{\sum_{n=1}^{m} PC_{in}^2}, \qquad YSI^{D}_i = R(D_i) + R(\bar{y}_{i\cdot}),$$ with ranks as in stab_asv. A genotype near the origin contributes little to the interaction. Each axis enters with the weight \(\lambda_n\), since \(D_i^2 = \sum_n \lambda_n\gamma_{in}^2\); the axes beyond .m, mostly noise, are left out. Choose .m as the number of significant axes in ammi().

Change from the earlier version. The distances were paired with other genotypes' means unless the data were sorted by genotype.

References

Gauch, H. G. (1992). Statistical Analysis of Regional Yield Trials: AMMI Analysis of Factorial Designs. Elsevier, Amsterdam.

Author

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

Examples

data(ge_data)
fit <-
  stab_dist(
      .data = ge_data
    , .y    = Yield
    , .rep  = Rep
    , .gen  = Gen
    , .env  = Env
    , .m    = 2
    )
head(fit$stabDist)
#>            Gen     Mean      Dist rMean rDist YSIDist
#>         <char>    <num>     <num> <int> <int>   <int>
#> 1:       PR115 4444.273 0.9901142     3     2       5
#> 2:      V14154 4364.727 2.6539305     5     5      10
#> 3:        MSH3 4247.045 1.7578654    12     3      15
#> 4:      V14168 4342.045 4.9543368     7    11      18
#> 5:       PR119 4156.727 0.6026240    24     1      25
#> 6: LOCAL CHECK 4280.136 7.6480193     9    19      28