waasb {metan}R Documentation

Weighted Average of Absolute Scores

Description

[Stable]

Compute the Weighted Average of Absolute Scores (Olivoto et al., 2019) for quantifying the stability of g genotypes conducted in e environments using linear mixed-effect models.

The weighted average of absolute scores is computed considering all Interaction Principal Component Axis (IPCA) from the Singular Value Decomposition (SVD) of the matrix of genotype-environment interaction (GEI) effects generated by a linear mixed-effect model, as follows: \[WAASB_i = \sum_{k = 1}^{p} |IPCA_{ik} \times EP_k|/ \sum_{k = 1}^{p}EP_k\]

where \(WAASB_i\) is the weighted average of absolute scores of the ith genotype; \(IPCA_{ik}\) is the score of the ith genotype in the kth Interaction Principal Component Axis (IPCA); and \(EP_k\) is the explained variance of the kth IPCA for k = 1,2,..,p, considering \(p = min(g - 1; e - 1)\).

The nature of the effects in the model is chosen with the argument random. By default, the experimental design considered in each environment is a randomized complete block design. If block is informed, a resolvable alpha-lattice design (Patterson and Williams, 1976) is implemented. The following six models can be fitted depending on the values of random and block arguments.

Usage

waasb(
  .data,
  env,
  gen,
  rep,
  resp,
  block = NULL,
  by = NULL,
  mresp = NULL,
  wresp = NULL,
  random = "gen",
  prob = 0.05,
  ind_anova = FALSE,
  verbose = TRUE,
  ...
)

Arguments

.data

The dataset containing the columns related to Environments, Genotypes, replication/block and response variable(s).

env

The name of the column that contains the levels of the environments.

gen

The name of the column that contains the levels of the genotypes.

rep

The name of the column that contains the levels of the replications/blocks.

resp

The response variable(s). To analyze multiple variables in a single procedure a vector of variables may be used. For example resp = c(var1, var2, var3).

block

Defaults to NULL. In this case, a randomized complete block design is considered. If block is informed, then an alpha-lattice design is employed considering block as random to make use of inter-block information, whereas the complete replicate effect is always taken as fixed, as no inter-replicate information was to be recovered (Mohring et al., 2015).

by

One variable (factor) to compute the function by. It is a shortcut to dplyr::group_by().This is especially useful, for example, when the researcher want to compute the indexes by mega-environments. In this case, an object of class waasb_grouped is returned. mtsi() can then be used to compute the mtsi index within each mega-environment.

mresp

The new maximum value after rescaling the response variable. By default, all variables in resp are rescaled so that de maximum value is 100 and the minimum value is 0 (i.e., mresp = NULL). It must be a character vector of the same length of resp if rescaling is assumed to be different across variables, e.g., if for the first variable smaller values are better and for the second one, higher values are better, then mresp = c("l, h") must be used. Character value of length 1 will be recycled with a warning message.

wresp

The weight for the response variable(s) for computing the WAASBY index. By default, all variables in resp have equal weights for mean performance and stability (i.e., wresp = 50). It must be a numeric vector of the same length of resp to assign different weights across variables, e.g., if for the first variable equal weights for mean performance and stability are assumed and for the second one, a higher weight for mean performance (e.g. 65) is assumed, then wresp = c(50, 65) must be used. Numeric value of length 1 will be recycled with a warning message.

random

The effects of the model assumed to be random. Defaults to random = "gen". See Details to see the random effects assumed depending on the experimental design of the trials.

prob

The probability for estimating confidence interval for BLUP's prediction.

ind_anova

Logical argument set to FALSE. If TRUE an within-environment ANOVA is performed.

verbose

Logical argument. If verbose = FALSE the code will run silently.

...

Arguments passed to the function impute_missing_val() for imputation of missing values in the matrix of BLUPs for genotype-environment interaction, thus allowing the computation of the WAASB index.

Value

An object of class waasb with the following items for each variable:

Author(s)

Tiago Olivoto tiagoolivoto@gmail.com

References

Olivoto, T., A.D.C. L\'ucio, J.A.G. da silva, V.S. Marchioro, V.Q. de Souza, and E. Jost. 2019. Mean performance and stability in multi-environment trials I: Combining features of AMMI and BLUP techniques. Agron. J. 111:2949-2960. doi:10.2134/agronj2019.03.0220

Mohring, J., E. Williams, and H.-P. Piepho. 2015. Inter-block information: to recover or not to recover it? TAG. Theor. Appl. Genet. 128:1541-54. doi:10.1007/s00122-015-2530-0

Patterson, H.D., and E.R. Williams. 1976. A new class of resolvable incomplete block designs. Biometrika 63:83-92.

See Also

mtsi() waas() get_model_data() plot_scores()

Examples


library(metan)
#===============================================================#
# Example 1: Analyzing all numeric variables assuming genotypes #
# as random effects with equal weights for mean performance and #
# stability                                                     #
#===============================================================#
model <- waasb(data_ge,
              env = ENV,
              gen = GEN,
              rep = REP,
              resp = everything())

# Genetic parameters
get_model_data(model, "genpar")



#===============================================================#
# Example 2: Analyzing variables that starts with "N"           #
# assuming environment as random effects with higher weight for #
# response variable (65) for the three traits.                  #
#===============================================================#

model2 <- waasb(data_ge2,
               env = ENV,
               gen = GEN,
               rep = REP,
               random = "env",
               resp = starts_with("N"),
               wresp = 65)


# Get the index WAASBY
get_model_data(model2, what = "WAASBY")


#===============================================================#
# Example 3: Analyzing GY and HM assuming a random-effect model.#
# Smaller values for HM and higher values for GY are better.    #
# To estimate WAASBY, higher weight for the GY (60%) and lower  #
# weight for HM (40%) are considered for mean performance.      #
#===============================================================#

model3 <- waasb(data_ge,
                env = ENV,
                gen = GEN,
                rep = REP,
                resp = c(GY, HM),
                random = "all",
                mresp = c("h, l"),
                wresp = c(60, 40))

# Plot the scores (response x WAASB)
plot_scores(model3, type = 3)



[Package metan version 1.18.0 Index]