mtsi: Multi-trait stability index

View source: R/mtsi.R

mtsiR Documentation

Multi-trait stability index



Computes the multi-trait stability index proposed by Olivoto et al. (2019)


  index = "waasby",
  ideotype = NULL,
  SI = 15,
  mineval = 1,
  verbose = TRUE



An object of class waasb or waas.


If index = 'waasby' (default) both stability and mean performance are considered. If index = 'waasb' the multi-trait index will be computed considering the stability of genotypes only. More details can be seen in waasb() and waas() functions.


A vector of length nvar where nvar is the number of variables used to plan the ideotype. Use 'h' to indicate the traits in which higher values are desired or 'l' to indicate the variables in which lower values are desired. For example, ideotype = c("h, h, h, h, l") will consider that the ideotype has higher values for the first four traits and lower values for the last trait.


An integer (0-100). The selection intensity in percentage of the total number of genotypes.


The minimum value so that an eigenvector is retained in the factor analysis.


If verbose = TRUE (Default) then some results are shown in the console.


An object of class mtsi with the following items:

  • data The data used to compute the factor analysis.

  • cormat The correlation matrix among the environments.

  • PCA The eigenvalues and explained variance.

  • FA The factor analysis.

  • KMO The result for the Kaiser-Meyer-Olkin test.

  • MSA The measure of sampling adequacy for individual variable.

  • communalities The communalities.

  • communalities_mean The communalities' mean.

  • initial_loadings The initial loadings.

  • finish_loadings The final loadings after varimax rotation.

  • canonical_loadings The canonical loadings.

  • scores_gen The scores for genotypes in all retained factors.

  • scores_ide The scores for the ideotype in all retained factors.

  • MTSI The multi-trait stability index.

  • contri_fac The relative contribution of each factor on the MTSI value. The lower the contribution of a factor, the close of the ideotype the variables in such factor are.

  • contri_fac_rank, contri_fac_rank_sel The rank for the contribution of each factor for all genotypes and selected genotypes, respectively.

  • sel_dif_trait, sel_dif_stab, sel_dif_mps A data frame containing the selection differential (gains) for the traits, for the stability (WAASB index) WAASB, and for the mean performance and stability (WAASBY indexes). The following variables are shown.

    • VAR: the trait's name.

    • Factor: The factor that traits where grouped into.

    • Xo: The original population mean.

    • Xs: The mean of selected genotypes.

    • SD and SDperc: The selection differential and selection differential in percentage, respectively.

    • h2: The broad-sense heritability.

    • SG and SGperc: The selection gains and selection gains in percentage, respectively.

    • sense: The desired selection sense.

    • goal: selection gains match desired sense? 100 for yes and 0 for no.

  • stat_dif_var, stat_dif_stab, stat_dif_mps A data frame with the descriptive statistic for the selection gains for the traits, for the stability (WAASB index) WAASB, and for the mean performance and stability (WAASBY index). The following variables are shown.

    • sense: The desired selection sense.

    • variable: the trait's name.

    • min: the minimum value for the selection gain.

    • mean: the mean value for the selection gain.

    • ci: the confidence interval for the selection gain.

    • sd.amo: the standard deviation for the selection gain.

    • max: the maximum value for the selection gain.

    • sum: the sum of the selection gain.

  • sel_gen The selected genotypes.


Tiago Olivoto


Olivoto, T., A.D.C. L\'ucio, J.A.G. da silva, B.G. Sari, and M.I. Diel. 2019. Mean performance and stability in multi-environment trials II: Selection based on multiple traits. Agron. J. 111:2961-2969. doi: 10.2134/agronj2019.03.0220

See Also

mgidi(), waasb(), get_model_data()


# Based on stability only, for both GY and HM, higher is better
mtsi_model <-
    env = ENV,
    gen = GEN,
    rep = REP,
    resp = c(GY, HM))
mtsi_index <-
    mtsi(mtsi_model, index = 'waasb')

# Based on mean performance and stability (using pipe operator %>%)
# GY: higher is better
# HM: lower is better

mtsi_index2 <-
 data_ge %>%
 waasb(ENV, GEN, REP,
       resp = c(GY, HM),
       mresp = c("h, l")) %>%

metan documentation built on March 7, 2023, 5:34 p.m.