Title: | Analysis of Augmented Randomised Complete Block Designs |
---|---|
Description: | Functions for analysis of data generated from experiments in augmented randomised complete block design according to Federer, W.T. (1961) <doi:10.2307/2527837>. Computes analysis of variance, adjusted means, descriptive statistics, genetic variability statistics etc. Further includes data visualization and report generation functions. |
Authors: | J. Aravind [aut, cre] , S. Mukesh Sankar [aut] , Dhammaprakash Pandhari Wankhede [aut] , Vikender Kaur [aut] , ICAR-NBGPR [cph] (www.nbpgr.ernet.in) |
Maintainer: | J. Aravind <[email protected]> |
License: | GPL-2 | GPL-3 |
Version: | 0.1.7.9000 |
Built: | 2024-11-09 05:55:20 UTC |
Source: | https://github.com/aravind-j/augmentedrcbd |
augmentedRCBD
is a function for analysis of variance of an augmented
randomised block design (Federer, 1956; Federer, 1961; Searle, 1965) and the
generation as well as comparison of the adjusted means of the
treatments/genotypes.
augmentedRCBD( block, treatment, y, checks = NULL, method.comp = c("lsd", "tukey", "none"), alpha = 0.05, group = TRUE, console = TRUE, simplify = FALSE, truncate.means = TRUE )
augmentedRCBD( block, treatment, y, checks = NULL, method.comp = c("lsd", "tukey", "none"), alpha = 0.05, group = TRUE, console = TRUE, simplify = FALSE, truncate.means = TRUE )
block |
Vector of blocks (as a factor). |
treatment |
Vector of treatments/genotypes (as a factor). |
y |
Numeric vector of response variable (Trait). |
checks |
Character vector of the checks present in |
method.comp |
Method for comparison of treatments ( |
alpha |
Type I error probability (Significance level) to be used for multiple comparisons. |
group |
If |
console |
If |
simplify |
If |
truncate.means |
If |
This function borrows code from DAU.test
function of agricolae
package (de Mendiburu et al., 2016) as well as from Appendix VIII of Mathur et
al., (2008).
A list of class augmentedRCBD
containing the following
components:
Details |
Details of the augmented design used. |
Means |
A data frame with the "Means", "Block", "SE", "Mix", "Max" and "Adjusted Means" for each "Treatment". |
ANOVA , Treatment Adjusted
|
An object of class |
ANOVA , Block Adjusted
|
An object of
class |
Block effects |
A vector of block effects. |
Treatment effects |
A vector of treatment effects. |
Std. Errors |
A data frame of standard error of difference
between various combinations along with critical difference and tukey's
honest significant difference (when |
Overall adjusted mean |
Overall adjusted mean. |
CV |
Coefficient of variation. |
Comparisons |
A data
frame of pairwise comparisons of treatments. This is computed only if
argument |
Groups |
A data frame with
compact letter display of pairwise comparisons of treatments. Means with at
least one letter common are not significantly different statistically. This
is computed only if argument |
warning |
A vector of warning messages (if any) captured during model fitting. |
Data should preferably be balanced i.e. all the check genotypes should be present in all the blocks. If not, a warning is issued.
There should not be any missing values.
The number of test genotypes can vary within a block.
In case the large number of treatments or genotypes, it is advisable to
avoid comparisons with the group = FALSE
argument as it will be
memory and processor intensive. Further it is advised to simplify output
with simplify = TRUE
in order to reduce output object size.
Federer WT (1956). “Augmented (or Hoonuiaku) designs.” The Hawaiian Planters' Record, LV(2), 191–208.
Federer WT (1956). “Augmented (or Hoonuiaku) Designs.” Technical Report BU-74-M, Cornell University, New York.
Federer WT (1961). “Augmented designs with one-way elimination of heterogeneity.” Biometrics, 17(3), 447–473.
Searle SR (1965). “Computing Formulae for Analyzing Augmented Randomized Complete Block Designs.” Technical Report BU-207-M, Cornell University, New York.
Mathur PN, Muralidharan K, Parthasarathy VA, Batugal P, Bonnot F (2008). Data Analysis Manual for Coconut Researchers-Bioversity Technical Bulletin No. 14. Bioversity International. ISBN 978-92-9043-736-9.
de Mendiburu F (2015). agricolae: Statistical Procedures for Agricultural Research. R package version 1.2-8.
DAU.test
,
ea1
,
emmeans
,
cld.emmGrid
,
aug.rcb
# Example data blk <- c(rep(1,7),rep(2,6),rep(3,7)) trt <- c(1, 2, 3, 4, 7, 11, 12, 1, 2, 3, 4, 5, 9, 1, 2, 3, 4, 8, 6, 10) y1 <- c(92, 79, 87, 81, 96, 89, 82, 79, 81, 81, 91, 79, 78, 83, 77, 78, 78, 70, 75, 74) y2 <- c(258, 224, 238, 278, 347, 300, 289, 260, 220, 237, 227, 281, 311, 250, 240, 268, 287, 226, 395, 450) data <- data.frame(blk, trt, y1, y2) # Convert block and treatment to factors data$blk <- as.factor(data$blk) data$trt <- as.factor(data$trt) # Results for variable y1 (checks inferred) out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Results for variable y2 (checks inferred) out2 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Results for variable y1 (checks specified) out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE, checks = c("1", "2", "3", "4")) # Results for variable y2 (checks specified) out2 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE, checks = c("1", "2", "3", "4")) ## Not run: # Error in case checks not replicated across all blocks # Check 1 and 4 not replicated in all 3 blocks trt <- c(1, 2, 3, 14, 7, 11, 12, 1, 2, 3, 4, 5, 9, 13, 2, 3, 4, 8, 6, 10) data$trt <- as.factor(trt) table(data$trt, data$blk) # Results for variable y1 (checks specified) out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE, checks = c("1", "2", "3", "4")) ## End(Not run) # Warning in case test treatments are replicated out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE, checks = c("2", "3"))
# Example data blk <- c(rep(1,7),rep(2,6),rep(3,7)) trt <- c(1, 2, 3, 4, 7, 11, 12, 1, 2, 3, 4, 5, 9, 1, 2, 3, 4, 8, 6, 10) y1 <- c(92, 79, 87, 81, 96, 89, 82, 79, 81, 81, 91, 79, 78, 83, 77, 78, 78, 70, 75, 74) y2 <- c(258, 224, 238, 278, 347, 300, 289, 260, 220, 237, 227, 281, 311, 250, 240, 268, 287, 226, 395, 450) data <- data.frame(blk, trt, y1, y2) # Convert block and treatment to factors data$blk <- as.factor(data$blk) data$trt <- as.factor(data$trt) # Results for variable y1 (checks inferred) out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Results for variable y2 (checks inferred) out2 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Results for variable y1 (checks specified) out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE, checks = c("1", "2", "3", "4")) # Results for variable y2 (checks specified) out2 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE, checks = c("1", "2", "3", "4")) ## Not run: # Error in case checks not replicated across all blocks # Check 1 and 4 not replicated in all 3 blocks trt <- c(1, 2, 3, 14, 7, 11, 12, 1, 2, 3, 4, 5, 9, 13, 2, 3, 4, 8, 6, 10) data$trt <- as.factor(trt) table(data$trt, data$blk) # Results for variable y1 (checks specified) out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE, checks = c("1", "2", "3", "4")) ## End(Not run) # Warning in case test treatments are replicated out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE, checks = c("2", "3"))
augmentedRCBD.bulk
is a wrapper around the functions
augmentedRCBD
, describe.augmentedRCBD
,
freqdist.augmentedRCBD
and gva.augmentedRCBD
. It will carry out
these analyses for multiple traits/characters from the input data as a data
frame object.
augmentedRCBD.bulk( data, block, treatment, traits, checks = NULL, alpha = 0.05, describe = TRUE, freqdist = TRUE, gva = TRUE, k = 2.063, check.col = "red", console = TRUE )
augmentedRCBD.bulk( data, block, treatment, traits, checks = NULL, alpha = 0.05, describe = TRUE, freqdist = TRUE, gva = TRUE, k = 2.063, check.col = "red", console = TRUE )
data |
The data as a data frame object. The data frame should possess columns specifying the block, treatment and multiple traits/characters. |
block |
Name of column specifying the blocks in the design as a character string. |
treatment |
Name of column specifying the treatments as a character string. |
traits |
Name of columns specifying the multiple traits/characters as a character vector. |
checks |
Character vector of the checks present in |
alpha |
Type I error probability (Significance level) to be used for multiple comparisons. |
describe |
If |
freqdist |
If |
gva |
If |
k |
The standardized selection differential or selection intensity
required for computation of Genetic advance. Default is 2.063 for 5%
selection proportion (see Details in
|
check.col |
The colour(s) to be used to highlight check values in the
plot as a character vector. Must be valid colour values in R (named
colours, hexadecimal representation, index of colours [ |
console |
If |
A list of class augmentedRCBD.bulk
containing the following
components:
Details |
Details of the augmented design used and the traits/characters. |
ANOVA , Treatment Adjusted
|
A data frame of mean sum of squares, p value and stastical significance of the specified traits from treatment adjusted ANOVA. |
ANOVA , Block
Adjusted
|
A data frame of mean sum of squares, p value and stastical significance of the specified traits from block adjusted ANOVA |
Means |
A data frame of the adjusted means of the treatments for the specified traits. |
Check statistics |
A list of data frames with check statistics such as number of replications, standard error, minimum and maximum value |
alpha |
Type I error probability (Significance level) used. |
Std. Errors |
A data frame of standard error of difference between various combinations for the specified traits. |
CD |
A data frame of critical difference (at the specified alpha) between various combinations for the specified traits. |
Overall adjusted mean |
A data frame of the overall adjusted mean for the specified traits. |
CV |
A data frame of the coefficient of variance for the specified traits. |
Descriptive statistics |
A data frame of descriptive statistics for the specified traits. |
Frequency distribution |
A list of ggplot2 plot grobs of the frequency distribution plots. |
k |
The standardized selection differential or selection intensity used for computaton of Genetic advance. |
Genetic variability analysis |
A data frame of genetic variability statistics for the specified traits. |
GVA plots |
A list of three ggplot2 objects with the plots for (a) Phenotypic and Genotypic CV, (b) Broad sense heritability and (c) Genetic advance over mean |
warnings |
A list of warning messages (if any) captured during model fitting, frequency distribution plotting and genetic variability analysis. |
In this case treatment comparisons/grouping by least significant
difference or Tukey's honest significant difference method is not computed.
Also the output object size is reduced using the simplify = TRUE
argument in the augmentedRCBD
function.
augmentedRCBD
,
describe.augmentedRCBD
,
freqdist.augmentedRCBD
,
gva.augmentedRCBD
# Example data blk <- c(rep(1,7),rep(2,6),rep(3,7)) trt <- c(1, 2, 3, 4, 7, 11, 12, 1, 2, 3, 4, 5, 9, 1, 2, 3, 4, 8, 6, 10) y1 <- c(92, 79, 87, 81, 96, 89, 82, 79, 81, 81, 91, 79, 78, 83, 77, 78, 78, 70, 75, 74) y2 <- c(258, 224, 238, 278, 347, 300, 289, 260, 220, 237, 227, 281, 311, 250, 240, 268, 287, 226, 395, 450) dataf <- data.frame(blk, trt, y1, y2) bout <- augmentedRCBD.bulk(data = dataf, block = "blk", treatment = "trt", traits = c("y1", "y2"), checks = NULL, alpha = 0.05, describe = TRUE, freqdist = TRUE, gva = TRUE, check.col = c("brown", "darkcyan", "forestgreen", "purple"), console = TRUE) # Frequency distribution plots lapply(bout$`Frequency distribution`, plot) # GVA plots bout$`GVA plots`
# Example data blk <- c(rep(1,7),rep(2,6),rep(3,7)) trt <- c(1, 2, 3, 4, 7, 11, 12, 1, 2, 3, 4, 5, 9, 1, 2, 3, 4, 8, 6, 10) y1 <- c(92, 79, 87, 81, 96, 89, 82, 79, 81, 81, 91, 79, 78, 83, 77, 78, 78, 70, 75, 74) y2 <- c(258, 224, 238, 278, 347, 300, 289, 260, 220, 237, 227, 281, 311, 250, 240, 268, 287, 226, 395, 450) dataf <- data.frame(blk, trt, y1, y2) bout <- augmentedRCBD.bulk(data = dataf, block = "blk", treatment = "trt", traits = c("y1", "y2"), checks = NULL, alpha = 0.05, describe = TRUE, freqdist = TRUE, gva = TRUE, check.col = c("brown", "darkcyan", "forestgreen", "purple"), console = TRUE) # Frequency distribution plots lapply(bout$`Frequency distribution`, plot) # GVA plots bout$`GVA plots`
augmentedRCBD
Outputdescribe.augmentedRCBD
computes descriptive statistics from the
adjusted means in an object of class augmentedRCBD
.
describe.augmentedRCBD(aug)
describe.augmentedRCBD(aug)
aug |
An object of class |
describe.augmentedRCBD
computes the following descriptive statistics
from the adjusted means in an object of class augmentedRCBD
.
Count
Mean
Standard deviation
Standard error
Minimum
Maximum
Skewness statistic along with p-value from D'Agostino test of skewness (D'Agostino, 1970).
Kurtosis statistic along with p-value from Anscombe-Glynn test of kurtosis (Anscombe and Glynn, 1983).
A list with the following descriptive statistics:
Count |
The number of treatments/genotypes. |
Mean |
The mean value. |
Std.Error |
The standard error. |
Std.Deviation |
The standard deviation. |
Min |
The minimum value |
Max |
The maximum value |
Skewness(statistic) |
The skewness estimator. |
Skewness(p.value) |
The p-value from D'Agostino test of skewness. |
Kurtosis(statistic) |
The kurtosis estimator. |
Kurtosis(p.value) |
The p-value from Anscombe-Glynn test of kurtosis. |
D'Agostino RB (1970). “Transformation to normality of the null distribution of g1.” Biometrika, 57(3), 679–681.
Anscombe FJ, Glynn WJ (1983). “Distribution of the kurtosis statistic b2 for normal samples.” Biometrika, 70(1), 227–234.
# Example data blk <- c(rep(1,7),rep(2,6),rep(3,7)) trt <- c(1, 2, 3, 4, 7, 11, 12, 1, 2, 3, 4, 5, 9, 1, 2, 3, 4, 8, 6, 10) y1 <- c(92, 79, 87, 81, 96, 89, 82, 79, 81, 81, 91, 79, 78, 83, 77, 78, 78, 70, 75, 74) y2 <- c(258, 224, 238, 278, 347, 300, 289, 260, 220, 237, 227, 281, 311, 250, 240, 268, 287, 226, 395, 450) data <- data.frame(blk, trt, y1, y2) # Convert block and treatment to factors data$blk <- as.factor(data$blk) data$trt <- as.factor(data$trt) # Results for variable y1 out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Results for variable y2 out2 <- augmentedRCBD(data$blk, data$trt, data$y2, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Descriptive statistics describe.augmentedRCBD(out1) describe.augmentedRCBD(out2)
# Example data blk <- c(rep(1,7),rep(2,6),rep(3,7)) trt <- c(1, 2, 3, 4, 7, 11, 12, 1, 2, 3, 4, 5, 9, 1, 2, 3, 4, 8, 6, 10) y1 <- c(92, 79, 87, 81, 96, 89, 82, 79, 81, 81, 91, 79, 78, 83, 77, 78, 78, 70, 75, 74) y2 <- c(258, 224, 238, 278, 347, 300, 289, 260, 220, 237, 227, 281, 311, 250, 240, 268, 287, 226, 395, 450) data <- data.frame(blk, trt, y1, y2) # Convert block and treatment to factors data$blk <- as.factor(data$blk) data$trt <- as.factor(data$trt) # Results for variable y1 out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Results for variable y2 out2 <- augmentedRCBD(data$blk, data$trt, data$y2, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Descriptive statistics describe.augmentedRCBD(out1) describe.augmentedRCBD(out2)
augmentedRCBD
Outputfreqdist.augmentedRCBD
plots frequency distribution from an object of
class augmentedRCBD
along with the corresponding normal curve and check
means with standard errors (if specified by argument highlight.check
).
freqdist.augmentedRCBD(aug, xlab, highlight.check = TRUE, check.col = "red")
freqdist.augmentedRCBD(aug, xlab, highlight.check = TRUE, check.col = "red")
aug |
An object of class |
xlab |
The text for x axis label as a character string. |
highlight.check |
If |
check.col |
The colour(s) to be used to highlight check values in the
plot as a character vector. Must be valid colour values in R (named colours,
hexadecimal representation, index of colours [ |
The frequency distribution plot as a ggplot2 plot grob.
# Example data blk <- c(rep(1,7),rep(2,6),rep(3,7)) trt <- c(1, 2, 3, 4, 7, 11, 12, 1, 2, 3, 4, 5, 9, 1, 2, 3, 4, 8, 6, 10) y1 <- c(92, 79, 87, 81, 96, 89, 82, 79, 81, 81, 91, 79, 78, 83, 77, 78, 78, 70, 75, 74) y2 <- c(258, 224, 238, 278, 347, 300, 289, 260, 220, 237, 227, 281, 311, 250, 240, 268, 287, 226, 395, 450) data <- data.frame(blk, trt, y1, y2) # Convert block and treatment to factors data$blk <- as.factor(data$blk) data$trt <- as.factor(data$trt) # Results for variable y1 out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Results for variable y2 out2 <- augmentedRCBD(data$blk, data$trt, data$y2, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Frequency distribution plots freq1 <- freqdist.augmentedRCBD(out1, xlab = "Trait 1") class(freq1) plot(freq1) freq2 <- freqdist.augmentedRCBD(out2, xlab = "Trait 2") plot(freq2) # Change check colours colset <- c("red3", "green4", "purple3", "darkorange3") freq1 <- freqdist.augmentedRCBD(out1, xlab = "Trait 1", check.col = colset) plot(freq1) freq2 <- freqdist.augmentedRCBD(out2, xlab = "Trait 2", check.col = colset) plot(freq2) # Without checks highlighted freq1 <- freqdist.augmentedRCBD(out1, xlab = "Trait 1", highlight.check = FALSE) plot(freq1) freq2 <- freqdist.augmentedRCBD(out2, xlab = "Trait 2", highlight.check = FALSE) plot(freq2)
# Example data blk <- c(rep(1,7),rep(2,6),rep(3,7)) trt <- c(1, 2, 3, 4, 7, 11, 12, 1, 2, 3, 4, 5, 9, 1, 2, 3, 4, 8, 6, 10) y1 <- c(92, 79, 87, 81, 96, 89, 82, 79, 81, 81, 91, 79, 78, 83, 77, 78, 78, 70, 75, 74) y2 <- c(258, 224, 238, 278, 347, 300, 289, 260, 220, 237, 227, 281, 311, 250, 240, 268, 287, 226, 395, 450) data <- data.frame(blk, trt, y1, y2) # Convert block and treatment to factors data$blk <- as.factor(data$blk) data$trt <- as.factor(data$trt) # Results for variable y1 out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Results for variable y2 out2 <- augmentedRCBD(data$blk, data$trt, data$y2, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Frequency distribution plots freq1 <- freqdist.augmentedRCBD(out1, xlab = "Trait 1") class(freq1) plot(freq1) freq2 <- freqdist.augmentedRCBD(out2, xlab = "Trait 2") plot(freq2) # Change check colours colset <- c("red3", "green4", "purple3", "darkorange3") freq1 <- freqdist.augmentedRCBD(out1, xlab = "Trait 1", check.col = colset) plot(freq1) freq2 <- freqdist.augmentedRCBD(out2, xlab = "Trait 2", check.col = colset) plot(freq2) # Without checks highlighted freq1 <- freqdist.augmentedRCBD(out1, xlab = "Trait 1", highlight.check = FALSE) plot(freq1) freq2 <- freqdist.augmentedRCBD(out2, xlab = "Trait 2", highlight.check = FALSE) plot(freq2)
augmentedRCBD
Outputgva.augmentedRCBD
performs genetic variability analysis on an object of
class augmentedRCBD
.
gva.augmentedRCBD(aug, k = 2.063)
gva.augmentedRCBD(aug, k = 2.063)
aug |
An object of class |
k |
The standardized selection differential or selection intensity. Default is 2.063 for 5% selection proportion (see Details). |
gva.augmentedRCBD
performs genetic variability analysis from the ANOVA
results in an object of class augmentedRCBD
and computes several
variability estimates.
The phenotypic, genotypic and environmental variance (\(\sigma^{2}_{p}\), \(\sigma^{2}_{g}\) and \(\sigma^{2}_{e}\) ) are obtained from the ANOVA tables according to the expected value of mean square described by Federer and Searle (1976) as follows:
\[\sigma^{2}_{g} = \sigma^{2}_{p} - \sigma^{2}_{e}\]Phenotypic and genotypic coefficients of variation (\(PCV\) and \(GCV\)) are estimated according to Burton (1951, 1952) as follows:
\[GCV = \frac{\sigma^{2}_{g}}{\sqrt{\overline{x}}} \times 100\]Where \(\overline{x}\) is the mean.
The estimates of \(PCV\) and \(GCV\) are categorised according to Sivasubramanian and Madhavamenon (1978) as follows:
CV (%) | Category |
x \( < \) 10 | Low |
10 \(\le\) x \( < \) 20 | Medium |
\(\ge\) 20 | High |
The broad-sense heritability (\(H^{2}\)) is calculated according to method of Lush (1940) as follows:
\[H^{2} = \frac{\sigma^{2}_{g}}{\sigma^{2}_{p}}\]The estimates of broad-sense heritability (\(H^{2}\)) are categorised according to Robinson (1966) as follows:
\(H^{2}\) | Category |
x \( < \) 30 | Low |
30 \(\le\) x \( < \) 60 | Medium |
\(\ge\) 60 | High |
Genetic advance (\(GA\)) is estimated and categorised according to Johnson et al., (1955) as follows:
\[GA = k \times \sigma_{g} \times \frac{H^{2}}{100}\]Where the constant \(k\) is the standardized selection differential or selection intensity. The value of \(k\) at 5% proportion selected is 2.063. Values of \(k\) at other selected proportions are available in Appendix Table A of Falconer and Mackay (1996).
Selection intensity (\(k\)) can also be computed in R as below:
If p
is the proportion of selected individuals, then deviation of
truncation point from mean (x
) and selection intensity (k
) are
as follows:
x = qnorm(1-p)
k = dnorm(qnorm(1 - p))/p
Using the same the Appendix Table A of Falconer and Mackay (1996) can be recreated as follows.
TableA <- data.frame(p = c(seq(0.01, 0.10, 0.01), NA, seq(0.10, 0.50, 0.02), NA, seq(1, 5, 0.2), NA, seq(5, 10, 0.5), NA, seq(10, 50, 1))) TableA$x <- qnorm(1-(TableA$p/100)) TableA$i <- dnorm(qnorm(1 - (TableA$p/100)))/(TableA$p/100)
Appendix Table A (Falconer and Mackay, 1996)
p% | x | i |
0.01 | 3.71901649 | 3.9584797 |
0.02 | 3.54008380 | 3.7892117 |
0.03 | 3.43161440 | 3.6869547 |
0.04 | 3.35279478 | 3.6128288 |
0.05 | 3.29052673 | 3.5543807 |
0.06 | 3.23888012 | 3.5059803 |
0.07 | 3.19465105 | 3.4645890 |
0.08 | 3.15590676 | 3.4283756 |
0.09 | 3.12138915 | 3.3961490 |
0.10 | 3.09023231 | 3.3670901 |
<> | <> | <> |
0.10 | 3.09023231 | 3.3670901 |
0.12 | 3.03567237 | 3.3162739 |
0.14 | 2.98888227 | 3.2727673 |
0.16 | 2.94784255 | 3.2346647 |
0.18 | 2.91123773 | 3.2007256 |
0.20 | 2.87816174 | 3.1700966 |
0.22 | 2.84796329 | 3.1421647 |
0.24 | 2.82015806 | 3.1164741 |
0.26 | 2.79437587 | 3.0926770 |
0.28 | 2.77032723 | 3.0705013 |
0.30 | 2.74778139 | 3.0497304 |
0.32 | 2.72655132 | 3.0301887 |
0.34 | 2.70648331 | 3.0117321 |
0.36 | 2.68744945 | 2.9942406 |
0.38 | 2.66934209 | 2.9776133 |
0.40 | 2.65206981 | 2.9617646 |
0.42 | 2.63555424 | 2.9466212 |
0.44 | 2.61972771 | 2.9321196 |
0.46 | 2.60453136 | 2.9182048 |
0.48 | 2.58991368 | 2.9048286 |
0.50 | 2.57582930 | 2.8919486 |
<> | <> | <> |
1.00 | 2.32634787 | 2.6652142 |
1.20 | 2.25712924 | 2.6028159 |
1.40 | 2.19728638 | 2.5490627 |
1.60 | 2.14441062 | 2.5017227 |
1.80 | 2.09692743 | 2.4593391 |
2.00 | 2.05374891 | 2.4209068 |
2.20 | 2.01409081 | 2.3857019 |
2.40 | 1.97736843 | 2.3531856 |
2.60 | 1.94313375 | 2.3229451 |
2.80 | 1.91103565 | 2.2946575 |
3.00 | 1.88079361 | 2.2680650 |
3.20 | 1.85217986 | 2.2429584 |
3.40 | 1.82500682 | 2.2191656 |
3.60 | 1.79911811 | 2.1965431 |
3.80 | 1.77438191 | 2.1749703 |
4.00 | 1.75068607 | 2.1543444 |
4.20 | 1.72793432 | 2.1345772 |
4.40 | 1.70604340 | 2.1155928 |
4.60 | 1.68494077 | 2.0973249 |
4.80 | 1.66456286 | 2.0797152 |
5.00 | 1.64485363 | 2.0627128 |
<> | <> | <> |
5.00 | 1.64485363 | 2.0627128 |
5.50 | 1.59819314 | 2.0225779 |
6.00 | 1.55477359 | 1.9853828 |
6.50 | 1.51410189 | 1.9506784 |
7.00 | 1.47579103 | 1.9181131 |
7.50 | 1.43953147 | 1.8874056 |
8.00 | 1.40507156 | 1.8583278 |
8.50 | 1.37220381 | 1.8306916 |
9.00 | 1.34075503 | 1.8043403 |
9.50 | 1.31057911 | 1.7791417 |
10.00 | 1.28155157 | 1.7549833 |
<> | <> | <> |
10.00 | 1.28155157 | 1.7549833 |
11.00 | 1.22652812 | 1.7094142 |
12.00 | 1.17498679 | 1.6670040 |
13.00 | 1.12639113 | 1.6272701 |
14.00 | 1.08031934 | 1.5898336 |
15.00 | 1.03643339 | 1.5543918 |
16.00 | 0.99445788 | 1.5206984 |
17.00 | 0.95416525 | 1.4885502 |
18.00 | 0.91536509 | 1.4577779 |
19.00 | 0.87789630 | 1.4282383 |
20.00 | 0.84162123 | 1.3998096 |
21.00 | 0.80642125 | 1.3723871 |
22.00 | 0.77219321 | 1.3458799 |
23.00 | 0.73884685 | 1.3202091 |
24.00 | 0.70630256 | 1.2953050 |
25.00 | 0.67448975 | 1.2711063 |
26.00 | 0.64334541 | 1.2475585 |
27.00 | 0.61281299 | 1.2246130 |
28.00 | 0.58284151 | 1.2022262 |
29.00 | 0.55338472 | 1.1803588 |
30.00 | 0.52440051 | 1.1589754 |
31.00 | 0.49585035 | 1.1380436 |
32.00 | 0.46769880 | 1.1175342 |
33.00 | 0.43991317 | 1.0974204 |
34.00 | 0.41246313 | 1.0776774 |
35.00 | 0.38532047 | 1.0582829 |
36.00 | 0.35845879 | 1.0392158 |
37.00 | 0.33185335 | 1.0204568 |
38.00 | 0.30548079 | 1.0019882 |
39.00 | 0.27931903 | 0.9837932 |
40.00 | 0.25334710 | 0.9658563 |
41.00 | 0.22754498 | 0.9481631 |
42.00 | 0.20189348 | 0.9306998 |
43.00 | 0.17637416 | 0.9134539 |
44.00 | 0.15096922 | 0.8964132 |
45.00 | 0.12566135 | 0.8795664 |
46.00 | 0.10043372 | 0.8629028 |
47.00 | 0.07526986 | 0.8464123 |
48.00 | 0.05015358 | 0.8300851 |
49.00 | 0.02506891 | 0.8139121 |
50.00 | 0.00000000 | 0.7978846 |
Where p% is the selected percentage of individuals from a population, x is the deviation of the point of truncation of selected individuals from population mean and i is the selection intensity.
Genetic advance as per cent of mean (\(GAM\)) are estimated and categorised according to Johnson et al., (1955) as follows:
\[GAM = \frac{GA}{\overline{x}} \times 100\]GAM | Category |
x \( < \) 10 | Low |
10 \(\le\) x \( < \) 20 | Medium |
\(\ge\) 20 | High |
A list with the following descriptive statistics:
Mean |
The mean value. |
PV |
Phenotyic variance. |
GV |
Genotyipc variance. |
EV |
Environmental variance. |
GCV |
Genotypic coefficient of variation |
GCV category |
The \(GCV\) category according to Sivasubramaniam and Madhavamenon (1973). |
PCV |
Phenotypic coefficient of variation |
PCV category |
The \(PCV\) category according to Sivasubramaniam and Madhavamenon (1973). |
ECV |
Environmental coefficient of variation |
hBS |
The broad-sense heritability (\(H^{2}\)) (Lush 1940). |
hBS category |
The \(H^{2}\) category according to Robinson (1966). |
GA |
Genetic advance (Johnson et al. 1955). |
GAM |
Genetic advance as per cent of mean (Johnson et al. 1955). |
GAM category |
The \(GAM\) category according to Johnson et al. (1955). |
Genetic variability analysis needs to be performed only if the sum of squares of "Treatment: Test" are significant.
Negative estimates of variance components if computed are not abnormal. For information on how to deal with these, refer Robinson (1955) and Dudley and Moll (1969).
Lush JL (1940). “Intra-sire correlations or regressions of offspring on dam as a method of estimating heritability of characteristics.” Proceedings of the American Society of Animal Nutrition, 1940(1), 293–301.
Burton GW (1951). “Quantitative inheritance in pearl millet (Pennisetum glaucum).” Agronomy Journal, 43(9), 409–417.
Burton GW (1952). “Qualitative inheritance in grasses. Vol. 1.” In Proceedings of the 6th International Grassland Congress, Pennsylvania State College, 17–23.
Johnson HW, Robinson HF, Comstock RE (1955). “Estimates of genetic and environmental variability in soybeans.” Agronomy journal, 47(7), 314–318.
Robinson HF, Comstock RE, Harvey PH (1955). “Genetic variances in open pollinated varieties of corn.” Genetics, 40(1), 45–60.
Robinson HF (1966). “Quantitative genetics in relation to breeding on centennial of Mendelism.” Indian Journal of Genetics and Plant Breeding, 171.
Dudley JW, Moll RH (1969). “Interpretation and use of estimates of heritability and genetic variances in plant breeding.” Crop Science, 9(3), 257–262.
Sivasubramaniam S, Madhavamenon P (1973). “Genotypic and phenotypic variability in rice.” The Madras Agricultural Journal, 60(9-13), 1093–1096.
Federer WT, Searle SR (1976). “Model Considerations and Variance Component Estimation in Augmented Completely Randomized and Randomized Complete Blocks Designs-Preliminary Version.” Technical Report BU-592-M, Cornell University, New York.
Falconer DS, Mackay TFC (1996). Introduction to Quantitative Genetics. Pearson/Prenctice Hall, New York, NY.
# Example data blk <- c(rep(1,7),rep(2,6),rep(3,7)) trt <- c(1, 2, 3, 4, 7, 11, 12, 1, 2, 3, 4, 5, 9, 1, 2, 3, 4, 8, 6, 10) y1 <- c(92, 79, 87, 81, 96, 89, 82, 79, 81, 81, 91, 79, 78, 83, 77, 78, 78, 70, 75, 74) y2 <- c(258, 224, 238, 278, 347, 300, 289, 260, 220, 237, 227, 281, 311, 250, 240, 268, 287, 226, 395, 450) data <- data.frame(blk, trt, y1, y2) # Convert block and treatment to factors data$blk <- as.factor(data$blk) data$trt <- as.factor(data$trt) # Results for variable y1 out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Results for variable y2 out2 <- augmentedRCBD(data$blk, data$trt, data$y2, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Genetic variability analysis gva.augmentedRCBD(out1) gva.augmentedRCBD(out2)
# Example data blk <- c(rep(1,7),rep(2,6),rep(3,7)) trt <- c(1, 2, 3, 4, 7, 11, 12, 1, 2, 3, 4, 5, 9, 1, 2, 3, 4, 8, 6, 10) y1 <- c(92, 79, 87, 81, 96, 89, 82, 79, 81, 81, 91, 79, 78, 83, 77, 78, 78, 70, 75, 74) y2 <- c(258, 224, 238, 278, 347, 300, 289, 260, 220, 237, 227, 281, 311, 250, 240, 268, 287, 226, 395, 450) data <- data.frame(blk, trt, y1, y2) # Convert block and treatment to factors data$blk <- as.factor(data$blk) data$trt <- as.factor(data$trt) # Results for variable y1 out1 <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Results for variable y2 out2 <- augmentedRCBD(data$blk, data$trt, data$y2, method.comp = "lsd", alpha = 0.05, group = TRUE, console = TRUE) # Genetic variability analysis gva.augmentedRCBD(out1) gva.augmentedRCBD(out2)
augmentedRCBD
objectprint.augmentedRCBD
prints to console the summary of an object of
class augmentedRCBD
including the augmented design details, ANOVA
(Treatment adjusted), ANOVA (Block adjusted), treatment means, coefficient of
variation, overall adjusted mean, critical differences and standard errors.
The treatment/genotype groups along with the grouping method are also printed
if they were computed.
## S3 method for class 'augmentedRCBD' print(x, ...)
## S3 method for class 'augmentedRCBD' print(x, ...)
x |
An object of class |
... |
Unused |
augmentedRCBD.bulk
objectprint.augmentedRCBD.bulk
prints to console the summary of an object of
class augmentedRCBD.bulk
including the augmented design details,
trait-wise mean sum of squares from ANOVA (Treatment adjusted) and ANOVA
(Block adjusted), adjusted means, coefficient of variation, overall adjusted
means critical differences, standard errors, descriptive statistics,
frequency distribution plots, genetic variability statistics and plots of
genetic variability parameters.
## S3 method for class 'augmentedRCBD.bulk' print(x, ...)
## S3 method for class 'augmentedRCBD.bulk' print(x, ...)
x |
An object of class |
... |
Unused |
augmentedRCBD
Outputreport.augmentedRCBD
generates a tidy report from an object of class
augmentedRCBD
as docx MS word file using the
officer
package or xlsx MS excel file using the
openxlsx
package.
report.augmentedRCBD( aug, target, file.type = c("word", "excel"), k = 2.063, check.col = "red" )
report.augmentedRCBD( aug, target, file.type = c("word", "excel"), k = 2.063, check.col = "red" )
aug |
An object of class |
target |
The path to the report file to be created. |
file.type |
The file type of the report. Either |
k |
The standardized selection differential or selection intensity
required for computation of Genetic advance. Default is 2.063 for 5%
selection proportion (see Details in
|
check.col |
The colour(s) to be used to highlight check values in the
plot as a character vector. Must be valid colour values in R (named
colours, hexadecimal representation, index of colours [ |
The raw values in the augmentedRCBD
object are rounded off to 2
digits in the word and excel reports. However, in case of excel report, the
raw values are present in the cell and are formatted to display only 2
digits.
So, if values such as adjusted means are being used of downstream analysis, export the raw values from within R or use the excel report.
This default rounding can be changed by setting the global options
augmentedRCBD.round.digits
. For example
setOption(augmentedRCBD.round.digits = 3)
sets the number of decimal
places for rounding to 3.
Values will not be rounded to zero, instead will be rounded to the nearest decimal place. F value, t ratio and p values are not rounded to less than 3 decimal places.
# Example data blk <- c(rep(1,7),rep(2,6),rep(3,7)) trt <- c(1, 2, 3, 4, 7, 11, 12, 1, 2, 3, 4, 5, 9, 1, 2, 3, 4, 8, 6, 10) y1 <- c(92, 79, 87, 81, 96, 89, 82, 79, 81, 81, 91, 79, 78, 83, 77, 78, 78, 70, 75, 74) y2 <- c(258, 224, 238, 278, 347, 300, 289, 260, 220, 237, 227, 281, 311, 250, 240, 268, 287, 226, 395, 450) data <- data.frame(blk, trt, y1, y2) # Convert block and treatment to factors data$blk <- as.factor(data$blk) data$trt <- as.factor(data$trt) # Results for variable y1 (checks inferred) out <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = FALSE) report.augmentedRCBD(aug = out, target = file.path(tempdir(), "augmentedRCBD output.docx"), file.type = "word", check.col = c("brown", "darkcyan", "forestgreen", "purple")) report.augmentedRCBD(aug = out, target = file.path(tempdir(), "augmentedRCBD output.xlsx"), file.type = "excel", check.col = c("brown", "darkcyan", "forestgreen", "purple"))
# Example data blk <- c(rep(1,7),rep(2,6),rep(3,7)) trt <- c(1, 2, 3, 4, 7, 11, 12, 1, 2, 3, 4, 5, 9, 1, 2, 3, 4, 8, 6, 10) y1 <- c(92, 79, 87, 81, 96, 89, 82, 79, 81, 81, 91, 79, 78, 83, 77, 78, 78, 70, 75, 74) y2 <- c(258, 224, 238, 278, 347, 300, 289, 260, 220, 237, 227, 281, 311, 250, 240, 268, 287, 226, 395, 450) data <- data.frame(blk, trt, y1, y2) # Convert block and treatment to factors data$blk <- as.factor(data$blk) data$trt <- as.factor(data$trt) # Results for variable y1 (checks inferred) out <- augmentedRCBD(data$blk, data$trt, data$y1, method.comp = "lsd", alpha = 0.05, group = TRUE, console = FALSE) report.augmentedRCBD(aug = out, target = file.path(tempdir(), "augmentedRCBD output.docx"), file.type = "word", check.col = c("brown", "darkcyan", "forestgreen", "purple")) report.augmentedRCBD(aug = out, target = file.path(tempdir(), "augmentedRCBD output.xlsx"), file.type = "excel", check.col = c("brown", "darkcyan", "forestgreen", "purple"))
augmentedRCBD.bulk
Outputreport.augmentedRCBD.bulk
generates a tidy report from an object of
class augmentedRCBD.bulk
as docx MS word file using the
officer
package or xlsx MS excel file using the
openxlsx
package.
report.augmentedRCBD.bulk(aug.bulk, target, file.type = c("word", "excel"))
report.augmentedRCBD.bulk(aug.bulk, target, file.type = c("word", "excel"))
aug.bulk |
An object of class |
target |
The path to the docx file to be created. |
file.type |
The file type of the report. Either |
The raw values in the augmentedRCBD
object are rounded off to 2
digits in the word and excel reports. However, in case of excel report, the
raw values are present in the cell and are formatted to display only 2
digits.
So, if values such as adjusted means are being used of downstream analysis, export the raw values from within R or use the excel report.
This default rounding can be changed by setting the global options
augmentedRCBD.round.digits
. For example
setOption(augmentedRCBD.round.digits = 3)
sets the number of decimal
places for rounding to 3.
Values will not be rounded to zero, instead will be rounded to the nearest decimal place.
# Example data blk <- c(rep(1,7),rep(2,6),rep(3,7)) trt <- c(1, 2, 3, 4, 7, 11, 12, 1, 2, 3, 4, 5, 9, 1, 2, 3, 4, 8, 6, 10) y1 <- c(92, 79, 87, 81, 96, 89, 82, 79, 81, 81, 91, 79, 78, 83, 77, 78, 78, 70, 75, 74) y2 <- c(258, 224, 238, 278, 347, 300, 289, 260, 220, 237, 227, 281, 311, 250, 240, 268, 287, 226, 395, 450) dataf <- data.frame(blk, trt, y1, y2) bout <- augmentedRCBD.bulk(data = dataf, block = "blk", treatment = "trt", traits = c("y1", "y2"), checks = NULL, alpha = 0.05, describe = TRUE, freqdist = TRUE, gva = TRUE, check.col = c("brown", "darkcyan", "forestgreen", "purple"), console = FALSE) report.augmentedRCBD.bulk(aug.bulk = bout, target = file.path(tempdir(), "augmentedRCBD bulk output.docx"), file.type = "word") report.augmentedRCBD.bulk(aug.bulk = bout, target = file.path(tempdir(), "augmentedRCBD bulk output.xlsx"), file.type = "excel")
# Example data blk <- c(rep(1,7),rep(2,6),rep(3,7)) trt <- c(1, 2, 3, 4, 7, 11, 12, 1, 2, 3, 4, 5, 9, 1, 2, 3, 4, 8, 6, 10) y1 <- c(92, 79, 87, 81, 96, 89, 82, 79, 81, 81, 91, 79, 78, 83, 77, 78, 78, 70, 75, 74) y2 <- c(258, 224, 238, 278, 347, 300, 289, 260, 220, 237, 227, 281, 311, 250, 240, 268, 287, 226, 395, 450) dataf <- data.frame(blk, trt, y1, y2) bout <- augmentedRCBD.bulk(data = dataf, block = "blk", treatment = "trt", traits = c("y1", "y2"), checks = NULL, alpha = 0.05, describe = TRUE, freqdist = TRUE, gva = TRUE, check.col = c("brown", "darkcyan", "forestgreen", "purple"), console = FALSE) report.augmentedRCBD.bulk(aug.bulk = bout, target = file.path(tempdir(), "augmentedRCBD bulk output.docx"), file.type = "word") report.augmentedRCBD.bulk(aug.bulk = bout, target = file.path(tempdir(), "augmentedRCBD bulk output.xlsx"), file.type = "excel")